node.js - 任务计划管理

标签 node.js reactjs react-native arduino esp32

我正在使用 React-Native 应用程序 - Node.js 服务器 - Arduino (ESP32) 制作一个宠物喂食器,但我不知道如何让它工作,所以它会在特定时间掉落食物。

我正在研究像node-schedule或cron这样的nodeJS库,但我无法弄清楚或者它们似乎不符合我的需求。

此时,当我按下应用程序中的按钮时,我可以让它掉落食物,但这会使其变得太简单(我想要手动和自动任务)。 我的目的是通过应用程序安排您的宠物进食的喂食时间,例如 9:00、15:00 和 21:00,并带有某种警报,同时还能够按需检查并编辑/删除选项。

请问我该怎么做有什么想法吗?

最佳答案

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

基本思想

你可以:

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

然后在喂食事件发生后:

  • 检查 Flash 是否有下一个喂食事件
  • 计算毫秒数
  • 设置 FreeRTOS 定时器来中断并触发喂食事件
  • 重复

资源:

Setting Local Time on Arduino using NTP

Using FreeRTOS timer interrupts on Arduino

关于node.js - 任务计划管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55461105/

相关文章:

javascript - 在时间效率方面,store(model) 和 class 中存储状态有什么区别?

react-native - 为什么我无法安装 React Native 测试库?

javascript - Sequelize,请求带有评级和标签的产品时出现问题

javascript - redux 的本地存储无法按预期工作

node.js - Marko JS 模板和 Express 中的全局变量

javascript - 文本文件转为 JSON,最后几行不包含在结果中

javascript - 在 React.createClass 中调用其他函数

firebase - 将 firebase 导入到 React-Native

javascript - 从 JSON 对象获取 key

javascript - Node Express 将变量从客户端传递到服务器