任务计划管理

时间:2019-04-01 18:04:26

标签: node.js reactjs react-native arduino esp32

我正在用React-Native应用-Node.js服务器-Arduino(ESP32)做宠物喂食器,但我不知道该如何使它工作,以便在特定时间掉食。

我一直在研究诸如node-schedule或cron之类的nodeJS库,但我无法弄清它们,或者它们似乎不符合我的需求。

这时,我可以在按下应用程序中的按钮时放下它,但这会使它变得太简单了(我既需要手动任务也需要自动化任务)。 我的目的是通过应用程序安排宠物的进食时间,例如在9:00、15:00和21:00,带有一些警报,同时还可以按需检查并编辑/删除选项。

请问有任何关于我该怎么做的想法?

1 个答案:

答案 0 :(得分:1)

您不必一定要从节点应用程序触发“放下食物”命令。我已经为连接到wifi的设备编写了固件,从NTP服务器更新其内部日期/时间,然后在指定的时间唤醒每个数据以连接到服务器并获取设置更新。我们的设备是电池供电的,因此它不仅一直保持与服务器的连接,而且我使用了ESP-IDF,但是代码很简单。我做了一些研究,您可以使用Arduino Core在ESP32上执行相同的过程。

基本思路

您可以:

  • 设置您希望在应用程序中进行馈送的时间,然后通过BLE或您的节点应用程序将这些时间发送到设备,并将其存储在Flash中
  • 计算直到下一次喂食的毫秒数
  • 将FreeRTOS计时器设置为在该毫秒数后中断以触发进食事件

随后发生喂食事件:

  • 在Flash中查看下一个喂养事件
  • 计算毫秒数
  • 设置FreeRTOS计时器以中断并触发进食事件
  • 重复

资源:

Setting Local Time on Arduino using NTP

Using FreeRTOS timer interrupts on Arduino