背景
M2M(即Machine-to-Machine)是一种端对端通信技术。阿里云 IoT 企业物联网实例通过基于规则引擎的 Topic 转发功能,实现设备之间 M2M 通信。您不用担心高并发场景下的高并发、稳定性、低延时等技术难点,也不需要购买大量服务器去承载这些请求,您只需要根据自己的业务配置好转发规则即可。
今天,我们讲解在工业场景中 PLC 工控机和管理人员 App 的联动,此方案也同样适用于智能家居场景中温湿度传感器和空调联动,空气质量传感器和空气净化器联动等。
整体技术方案
基于阿里云 IoT 企业物联网实例的设备之间 M2M 通信整体技术方案如下:
设备 M2M 通信实战
1.创建产品,配置自定义Topic
首先,我们在物联网控制台创建手机App产品和PLC工控机,并添加自定义Topic。
然后,在产品下各注册一个设备。
2.配置规则引擎,Topic转发
2.1 PLC工控机上报数据流转App
完成设备接入后,我们在规则引擎-云产品流转创建新规则,PLC数据实时流转App。
① 数据源- PLC工控机数据上报
工控机上报数据 Topic:
/工控机/工控机id/user/data/up
Payload:
{
"toAppTopic":"/手机App/手机id/user/plc2App/data",
"t":56,
"h":68
}
② 数据目的地- 手机App订阅
手机App订阅 Topic:
/手机App/手机id/user/plc2App/data
③ 解析脚本
//通过 payload 函数,获取设备上报的消息内容,并按照JSON格式转换。
var data = payload("json");
// 目标Topic
var toAppTopic = data.toAppTopic;
// App 指令流转到 PLC设备
writeIotTopic(1009, toAppTopic, data)
当PLC工控机有数据上报后,消息上报和规则引擎流转日志,如下:
数据流转的消息轨迹
2.2 手机App推送控制指令到PLC工控机
接下来,我们在规则引擎-云产品流转创建新规则,App指令发送到PLC。
① 数据源- 手机下发控制指令
手机下发控制指令 Topic:
/手机App/手机id/user/app2plc/cmd
Payload:
{
"toPlcDeviceTopic":"/PLC工控机/工控机id/user/app/cmd",
"light":"on"
}
② 数据目的地- 工控机指令订阅
PLC工控机订阅 Topic:
/PLC工控机/工控机id/user/app/cmd
③ 解析脚本
//通过 payload 函数,获取设备上报的消息内容,并按照JSON格式转换。
var data = payload("json");
// 目标设备Topic
var toPlcDeviceTopic = data.toPlcDeviceTopic;
// App 指令流转到 PLC设备
writeIotTopic(1009, toPlcDeviceTopic, data)
当手机App下发控制指令后,流转日志,如下:
数据流转的消息轨迹如下
至此,我们基于阿里云 IoT 企业物联网平台完成了PLC工控机和手机App之间的实时消息通信,整个过程不需要业务服务器参与,保障了设备间消息实时和高效通信