欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用Raspberry Pi的Node-RED,连接传感器、 MQTT及云端通信详解

最编程 2024-02-17 12:02:39
...

要点

  1. 设置Raspberry Pi,Windows和Mac的Node-RED开发环境
  2. Node-RED灯控,温湿度控制
  3. 网络服务器数据库储存数据,绘制温湿度图表
  4. 从Node-RED调用Web API
  5. 使用Git控制Node-RED项目版本
  6. Node-RED创建和连接数据库
  7. Raspberry Pi使用Node-RED采集数据,使用MQTT
  8. Node-RED边缘设备发布数据,订阅和可视化服务器端Node-RED数据
  9. 自定义Node-RED库并发布

Node-RED示例

让我们首先看一些简单的示例,了解您可以使用 Node-RED 执行哪些操作。

示例1:使用 Node-RED 提醒您锻炼计划

节点从 Node-RED UI 中的节点选项板中拖动,并在流程画布上连接在一起。 从最左边的节点开始,我们从一个 openweather 节点开始,您可以将其配置为按设定的时间间隔检查任何主要城市的天气。 检查时,它将结果打包在一条消息中,该消息转发到下一个节点,在本例中为交换节点。 交换节点执行简单的测试,检查输入消息中的值,如果测试为真,则发送值为“1”的消息。 在我们的示例中,它被配置为测试温度值 (tempc),看看它是否为 15 摄氏度或更高。

当开关节点测试为 true 或“打开”时,它会向 fitbit 节点发送一条消息,该节点是流程中的下一个节点。 Fitbit 节点是另一个功能强大的预构建节点,您可以对其进行配置,以从 fitbit.com 门户获取 Fitbit 设备的统计数据。 Fitbit 节点将您设备的统计数据打包成一条消息,并将其转发到流程中的下一个节点。

下一个节点是另一个交换节点。 该程序已配置为检查您今天行走的步数是否小于 1000。它通过测试 Fitbit 数据字段summary.steps 是否小于 1000 来实现此目的。请记住,它刚刚获取了这些 来自 Fitbit 节点的消息中的统计数据,该节点又通过调用 fitbit.com 上的 Fitbit API 来获取这些数据。

如果您今天走了不到 1000 步,那么切换节点会生成一条消息,该消息通过流程传递到功能节点。 函数节点是一个通用的通用节点,允许您用 Javascript 编写自己的编程逻辑。 现在,您可以假设该节点只是创建一条新消息,其中包含电子邮件主题行和可以通过电子邮件发送的文本正文。

一旦在功能节点中创建此消息,它就会通过流程发送到最终节点,即电子邮件节点。 该节点将获取任何传入消息的正文并将其发送到节点初始化时配置的电子邮件帐户。 在这种情况下,您可以将其设置为向自己发送消息。

这是一个非常简单的流程,使用 Node-RED 预构建节点的功能来检查您当地的天气,如果天气相当温暖并且您今天没有走太多路,它会向您发送电子邮件提醒。

虽然该示例看起来很简单,只是检查天气和您的 Fitbit 活动,但您可以使用类似的流程来检查家庭设备、服务器场中的计算机、工厂中的设备等的状态,然后您可以使用 输出节点发送邮件、对后台软件进行 API 调用、控制现实世界的设备——事实上,选择是无穷无尽的。 Node-RED 是一款极其强大的工具,用于将输入和输出连接在一起,并提供许多节点(内置或由 Node-RED 社区开发)来执行一系列令人惊叹的任务。

示例2:Node-RED 内置 HTTP 节点构建简单的 Web 服务

我们在这个高级介绍中的最后一个例子是另一类流。 它展示了如何创建一个简单的 Web 服务,该服务通过查询一些真实世界的数据来响应浏览器发送的 HTTP 请求,然后将包含该数据的图形表示的网页返回给浏览器 – 本质上 Node-RED 正在被 用于通过几个节点提供 Web 服务器和简单服务。

继续使用上一个示例中介绍的 Fitbit 节点,此示例创建一个简单的 Web 服务,允许您查询当天的 Fitbit 统计数据,并使用漂亮的圆环图显示您通过锻炼“消耗”了多少卡路里 。

流程如下图所示,由4个节点组成。 第一个和最后一个节点是 http 输入和输出节点,它们一起侦听 HTTP 请求并发送 HTTP 响应。 此流程侦听来自任何来源的 HTTP 请求,但我们假设这里使用的是常规浏览器。 当它到达时,它会从 fitbit.com 查询您的 Fitbit 统计数据,然后使用模板节点构建 HTTP 页面,并将其传递到 http 输出节点,该节点将网页发送回浏览器。

上一篇: 简易动漫下载工具 - AnimeDownloader

下一篇: 玩转C++:探索位图、布隆过滤器与哈希分割的奥秘