借助NodeRed实现RevPi与阿里云物联网平台通信

Node-RED是构建物联网(IoT)应用程序的强大工具,它使用可视化的编程方法,允许开发人员将预定义的代码块(称为“节点”)连接在一起以执行任务。当连接在一起时,通常由输入节点,处理节点和输出节点组成的连接节点构成一个“流”。RevPi Core模块已经内置Node-RED运行环境,本文将介绍基于Node-RED如何实现RevPi Core模块与阿里云物联网平台的通信。

1、启动Node-RED

RevPi Core模块已经搭建好了Node-RED运行环境,并且额外包含适用于RevPi设备的节点,无需额外安装软件,直接启动运行即可。

首先通过putty远程连接RevPi,输入以下命令以启动Node-RED:sudo node-red-start

等待Node-RED启动后,通过在浏览器中输入RevPi的IP:1880进入Node-RED界面。

可以通过命令sudo systemctl enable nodered.service设置Nore-RED的开机自启动。

2、配置阿里云物联网平台

在物联网平台控制台点击设备管理->产品->创建产品

按照下图所示配置产品:

点击保存,并前往添加设备:

输入设备名称,可以自行选择,这里设定的是RevPi。

点击确认,并前往查看设备信息。

暂时不要关闭此设备信息页面,稍后还需要此页面的相关信息。

3、创建Node-RED流

这里将采用MQTT通信方式与阿里云物联网平台进行通信。首先建立如下图所示流:

时间戳(即inject节点)在这里仅起到触发作用,无需设置。

exec节点可执行系统命令,本文借助exec节点采集RevPi的CPU温度,并将其上传到云平台。对exec节点进行如下图所属配置:

其中命令框中输入:/usr/bin/vcgencmd measure_temp

4、mqtt out节点参数设定

mqtt out节点配置可以参考阿里云物联网平台文档“使用MQTT.fx接入物联网平台”,文档中采用的是MQTT.fx软件,但配置参数基本相同。

点击添加新的mqtt-broker节点,节点名称自行设定,本例设为AliIOT:

需要配置的参数包括连接和属性两种,下面依次看一下:

4.1、服务端

根据官方文档,Broker的地址格式为:

${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com

上面的ProductKey可以在设备信息中找到,RegionId可以参考网址:

https://help.aliyun.com/document_detail/40654.html#concept-h4v-j5k-xdb

完整示例:a1A96I6bXvh.iot-as-mqtt.cn-shanghai.aliyuncs.com

端口选择1883即可。

4.2、客户端ID

客户端ID的格式为:

${clientId}|securemode=3,signmethod=hmacsha1|

clientId用户可以自行设置,长度在64字符以内。本例中设置为RevPiNodeRED。

securemode为安全模式,TCP直连模式设置为securemode=3,TLS直连为securemode=2。本例选择安全模式为3。

signmethod为算法类型,支持hmacmd5和hmacsha1。本例选择hmacsha1。

完整示例:RevPiNodeRED|securemode=3,signmethod=hmacsha1|

4.3、用户名及密码

用户名的格式为:

${YourDeviceName}&${YourProductKey}

DeviceName和ProductKey均可在设备信息处找到,请自行对应填写。

完整示例:RevPi&a1A96I6bXvh

密码需要根据设备信息进行加密运算生成。可以借助password生成小工具,下载地址是:

https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip?file=88413c66e471bec826257781969d1bc7.zip

下载后解压,双击sign文件即可运行。

如图所示,如实填写相关信息,时间戳可省略,点击generate即可生成密码。另外还可以以手动方法生成密码,详细可参考阿里云物联网平台官方文档。

4.4、主题

将以上Broker相关信息填写完成后点击添加即可。

主题可以在产品->Test->Topic类列表->自定义Topic中选择具有发布权限的Topic,并根据设备名称进行更改。

当然,也可以自定义具有发布权限的主题。本例采用的主题为:

/a1A96I6bXvh/RevPi/user/update

mqtt out节点的QoS和保留选项设置可自行选择,配置完成后点击“完成”即可。然后点击“部署”按钮,将此流程部署到设备并运行。

5、通信测试

部署完成后,正常情况下mqtt out节点应显示“已连接”,若“未连接”或者一直在“连接中”,请检查相关配置是否有错。

点击时间戳,触发流程,即可将温度信息上传到云平台。

可以在阿里云物联网平台控制台的监控运维->日志服务下,选择Test产品即可在云端运行日志下查看到接收到的温度信息。

当然,也可以通过具有订阅权限的主题实现从云平台将信息发送到RevPi,如果您对这方面感兴趣,可以根据官方手册自行探索实现方式。

如果需要任何帮助,欢迎联系我们。