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,如果您对这方面感兴趣,可以根据官方手册自行探索实现方式。
如果需要任何帮助,欢迎联系我们。