IIoT 边缘开发 – 使用 Modbus
编者注:工业物联网 (IIoT) 承诺提供对工业运营的深入洞察,并提高互联机器和系统的效率。大规模 IIoT 应用程序依赖分层架构从各种传感器收集数据,将数据可靠、安全地移动到云中,并执行提供洞察力和效率所需的分析。在工业互联网应用程序开发中,作者详细介绍了 IIoT 架构,并讨论了满足与这些系统相关的广泛要求的方法。
改编自工业互联网应用开发,作者:Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli。
第 3 章 IIoT 边缘开发(续)
作者:Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli
工业 M2M 协议 – Modbus
在本节中,我们将尝试构建一个简单的 IoT 应用程序,用于使用 Raspberry Pi 集线器和 Modbus 协议将数据从传感器模拟器模块发送到接收器设备(PC 或云):
从传感器模拟器到接收器设备的数据流
对于硬件资源有限的设备,使用 Modbus 协议进行串行通信是有意义的。虽然简单,但它有几个功能不同的开放和专有实现。
请注意,此协议可用于传输层,但在我们的示例中,我们将使用 Modbus TCP,在应用程序级别工作。
在下表中,您可以找到该协议的更详细说明,以了解它是否适合您的需求:
键 价值 开源是*OSI 层传输或应用程序数据类型整数、浮点数、字符串、布尔限制• 不支持大型二进制对象• 主节点定期轮询每个设备是否有数据修改*
• 单个数据链路上最多可寻址 254 个设备*
• 只允许连续传输
可能的操作读写寄存器和线圈、诊断延迟高使用率短信、GPRS、有线、无线、网状通信SecurityNoCompressionNo表 4:Modbus 协议规范
标有 * 的值不适用于 Modbus 协议的所有实现。为了构建应用程序,我们需要以下内容:
所需软件:
Node.js 6+ (https:// /nodejs.org/en/download/ )
PostgreSQL (https://www.postgresql .org/下载/ )
Cloud Foundry CLI(https:// github.com/cloudfoundry/cli#downloads )
Request (https://www.npmjs .com/package/request )
Modbus (https://www.npmjs .com/package/modbus )
Docker (https://docs.docker .com/engine/installation/ )
所需硬件:
树莓派 3(B 型)
一个电源适配器(2A/5V)
一张 microSD 卡 (8 GB+) 和一个 SD 适配器
用于有线网络连接的以太网电缆
准备一张SD卡
要准备 SD 卡,请按照所述的操作顺序进行操作:
下载最新的 Raspbian LITE 图像(位于 https://raspberrypi.org/downloads/raspbian/ ).
将您的 SD 卡连接到计算机并使用 Etcher (https://io/ ) 来刷新 Raspbian .img 文件到 SD 卡。
启用 SSH:
cd /Volumes/boot
touch ssh
要启用 Wi-Fi,创建 conf 内容如下:
network={
ssid=”YOUR_SSID”
psk=”YOUR_WIFI_PASSWORD”
}
创建/home/pi/hub
创建/home/pi/hub/package.json 文件内容如下:
{
“名称”:“集线器”,
“版本”:“1.0.0”,
“说明”:“”,
“main”:“index.js”,“scripts”:{
“start”:“node index.js”,
“test”:“echo“错误:未指定测试” &&exit 1″
},
“作者”:“”,
“许可”:“ISC”,“依赖关系”:{
“modbus”:“0.0.16 ”,
“请求”:“^2.81.0”
}
}
创建/home/pi/hub/index.js 文件内容如下,替换 REMOTE-SERVER-ADDRESS.com 和 远程传感器地址 具有实际价值:
创建一个 /home/pi/hub/Dockerfile 文件内容如下:
FROM hypriot/rpi-node:boron-onbuild
RUN apt-get update &&apt-get install -y libmodbus5
创建/home/pi/sensor
创建/home/pi/sensor/package.json 文件内容如下:
{
“名称”:“传感器”,
“版本”:“1.0.0”,
“说明”:“”,
“main”:“index.js”,“scripts”:{
“start”:“node index.js”,
“test”:“echo“错误:未指定测试” &&exit 1″
},
“作者”:“”,
“许可”:“ISC”,“依赖关系”:{
“modbus”:“0.0.16 ”
}
}
创建/home/pi/sensor/index.js 文件内容如下,替换 REMOTE-HUB-ADDRESS.com 具有实际价值:
创建/home/pi/sensor/Dockerfile 文件内容如下:
FROM hypriot/rpi-node:boron-onbuild
RUN apt-get update &&apt-get install -y libmodbus5
物联网技术