Управление расписанием задач - PullRequest
1 голос
/ 01 апреля 2019

Я делаю кормушку для домашних животных с приложением React-Native - сервером Node.js - Arduino (ESP32), но я не могу понять, как заставить его работать так, чтобы он бросал еду в определенное время.

Я искал библиотеки nodeJS, такие как расписание узлов или cron, но не могу понять, или они не соответствуют моим потребностям.

В этот момент я могу заставить его бросать еду, когда нажимаюкнопка в моем приложении, но это сделало бы ее слишком простой (я хочу как ручные, так и автоматизированные задачи).Мое намерение состоит в том, чтобы запланировать часы кормления для вашего питомца, например, в 9:00, в 15:00 и в 21:00 через приложение, с какими-то тревогами, а также с возможностью проверять их по требованию и редактировать /удалить параметры.

Есть идеи, как мне это сделать, пожалуйста?

1 Ответ

1 голос
/ 08 апреля 2019

Вам не обязательно запускать команду «drop food» из приложения узла.Я написал прошивку для устройства, которое подключается к Wi-Fi, обновляет его внутреннюю дату / время с NTP-сервера, а затем в определенное время просыпается каждый раз, когда данные подключаются к серверу и получают обновления настроек.Наше устройство работает от батареи, поэтому оно не просто постоянно подключено к серверу, и я использовал ESP-IDF, но код был достаточно прост.Я провел некоторое исследование, и вы можете сделать тот же процесс с ESP32, используя Arduino Core.

Базовая идея

Вы можете:

  • Установите время, когда вы хотите, чтобы подача происходила в приложении, которое затем отправляет это время на устройство через BLE или приложение вашего узла и сохраняет их во Flash
  • Рассчитайте количество миллисекунд до следующего кормления
  • Установка таймера FreeRTOS на прерывание через указанное количество миллисекунд для запуска события кормления

Затем после события кормления:

  • Проверьте Flash на следующеесобытие кормления
  • Вычисление количества миллисекунд
  • Установка таймера FreeRTOS для прерывания и запуска события кормления
  • Повтор

Ресурсы:

Установка местного времени на Arduino с использованием NTP

Использование прерываний таймера FreeRTOS на Arduino

...