OPC UA赋能稳健IIoT边缘开发:树莓派实现安全实时数据流
编者按:IIoT通过分层架构采集多源传感器数据、可靠安全传至云端、执行分析产出洞察与效能。《工业互联网应用开发》详细剖析架构与满足策略。
改编自《工业互联网应用开发》,作者Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli。
第3章 IIoT边缘开发(续)
工业M2M协议——OPC UA
本节构建简易IoT应用:用OPC UA协议通过树莓派网关将传感器模拟器数据发送至接收设备(PC或云)。

传感器模拟器到接收设备的数据流
OPC UA类似Modbus但支持更多数据类型、无严重限制、并提供安全、压缩、低延迟。由OPC基金会开发为工业M2M通信协议。OPC UA(统一架构)是开放平台通信(OPC)改进版,重大变化之一是新协议免费无限制使用。
OPC UA协议规格速览
| 关键项 | 数值 |
|---|---|
| 开源 | 是 |
| OSI层 | 传输层或应用层 |
| 数据类型 | 整数、浮点、字符串、布尔、日期、时间等 |
| 局限 | 不适合复杂架构 |
| 可用操作 | 读/写/监控/查询变量 |
| 延迟 | 低 |
| 用途 | IIoT |
| 安全 | 是 |
| 压缩 | 是 |
表5:OPC UA协议规格
所需软硬件
软件:Node.js 6+、PostgreSQL、Cloud Foundry CLI、request包、node-opcua包、async包、Docker
硬件:树莓派3 Model B、2A/5V电源、8GB+ microSD卡、以太网线
SD卡准备
- 下载最新Raspbian Lite镜像(官网)
- 用Etcher(balena.io/etcher)烧录
- 启用SSH:
cd /Volumes/boot && touch ssh - 启用Wi-Fi:创建
conf含network={ ssid="YOUR_SSID" psk="YOUR_WIFI_PASSWORD" } - 创建
/home/pi/hub - 写入
package.json(依赖async ^2.4.0、node-opcua 0.0.64、request ^2.81.0) - 实现
index.js:OPC UA客户端连接传感器、读写变量、订阅变化、经HTTP转发至接收端(替换REMOTE-SERVER-ADDRESS.com与REMOTE-SENSOR-ADDRESS) - 创建
Dockerfile:FROM hypriot/rpi-node:boron-onbuild - 创建
/home/pi/sensor - 写入传感器
package.json(依赖node-opcua 0.0.64) - 实现传感器
index.js:OPC UA服务器模拟变量值变化 - 配置传感器
index.js开头的min/max值 - 创建传感器
Dockerfile(同hub)
构建镜像、推送注册表、树莓派运行容器,确保hub与sensor容器本地网络互通。部署后传感器模拟器通过OPC UA向hub发布数据,hub转发至云端点。
物联网技术