一种面向智慧工地应用的物联网网关设计与实现

(整期优先)网络出版时间:2020-10-14
/ 2

一种面向智慧工地应用的物联网网关设计与实现

邢瑞毅 1

上海电科智能系统股份有限公司 上海 200063

摘要:物联网系统架构由物联网云平台、IoT网关和用户浏览器组成。智慧工地应用了多种物联网技术,由IoT网关通过网络(有线或无线)将数据上传物联网云平台。IoT网关基本架构为内嵌RTOS实时操作系统,JSON解析库和MQTT协议栈的核心单片机,通过网络通讯模块的TCP透传功能和云端服务器交互数据,通过RS485或其他工业总线与现场设备或传感器交互数据。核心单片机选取STM32F401,用STM32CubeMX集成FREERTOS用MDK-ARM开发,加载JSON库Jasson,移植MQTT协议栈。制作IoT网关原型并连接环境传感器(Modbus-RTU)测试,其可以实现控制消息的下发和数据消息的上传。

关键词:物联网;智慧工地;IoT网关;MQTT

0 引言

物联网是一个通过信息技术将各种物体连接成网络,以帮助人们获取这些物体的信息的媒介[1]。智慧工地是在物联网智能化的基础上,通过技术不断创新的智能终端采集系统,实现了对各项数据的收集、归纳、分析以及预判[2],打破传统施工现场的束缚,提供高效的远程监管手段。

1 智慧工地的物联网框架体系

物联网系统架构由物联网云平台、IoT网关和用户浏览器三部分组成[3]。云平台基于其强大的计算和存储能力,对IoT网关传入的数据进行处理,并授权用户通过浏览器访问和管理物联网资源。

如图1所示,智慧工地应用了自动识别技术、传感技术、图像采集技术和定位跟踪技术等,由IoT网关通过网络(有线或无线)将数据上传物联网云平台。其相较于传统施工方式可大大提升施工现场、企业和政府的管理效率,保障质量安全等建设目标的实现,最终促进建筑业持续健康发展[4]

5f864c988776e_html_fa9fa09738448ea7.png

图1 智慧工地的物联网框架体系

2 IoT网关的架构设计

IoT网关作为设备和云平台之间的连接桥梁,实现对设备的控制操作,将设备的数据封装为统一的物联网平台数据格式[5],上传至云平台。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 ECMAScript 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据[6]

MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的。

5f864c988776e_html_87b89908c6b69209.png

图2 IoT网关基本架构

如图2所示,核心单片机内嵌RTOS实时操作系统、JSON解析库和MQTT协议栈,通过网络通讯模块的TCP透传功能和云端服务器交互数据,通过RS485或其他工业总线与现场设备或传感器交互数据。

3 通讯协议层的适配和实现

核心单片机选取STM32F4系列,使用STM32CubeMX集成FREERTOS并生成初始工程。

5f864c988776e_html_f7e90020a98fb752.png

图3 STM32CubeMX界面

开发工具采用MDK-ARM,加载JSON库Jasson。MDK包含了工业标准的Keil C编译器、宏汇编器调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目[7]

5f864c988776e_html_7223ce3ba7536776.png

图4 MDK-ARM界面

在MQTT官网mqtt.org上可下载官方的C语言协议栈源码和说明,参考修改库中的例程文件进行移植工作,根据硬件平台来修改发送/接收数据包的接口函数。

云端物联网平台MQTT报文格式:

IMEI为每个设备唯一的ID

1)数据发送

topic: jowoiot/toServer/v2/

qos: 0/1

payload demo:

{

"meta":{"expire":3600, "t": 1552553109000},

"data":[

{"k":"dev.point1","v":"1"},

{"k":"dev.point2","v":"1.3333"},

{"k":"point3","v":"341"}

]

}

5f864c988776e_html_3d6761a1857c2995.png

表1 MQTT报文变量说明

2)数据接收

topic: jowoiot/toEdge/

qos: 0/1

payload demo: 格式与数据发送相同,由设备端主动订阅内容。云端如果收到控制指令,会下发具体的payload,由设备端解析并执行。

 4 原型制作和测试

制作一个IoT网关原型并连接环境传感器(Modbus RTU)进行测试。先在物联网平台通过注册得到相应的设备ID、网关ID和用户秘钥。设置4G模块中平台网址、MQTT端口参数实现TCP连接。根据设备的RTU指令格式编写驱动层代码获取到设备数据,编写应用层代码将设备数据封装为物联网平台统一的数据格式。

5f864c988776e_html_1c74f18dbe698898.png5f864c988776e_html_ef3b98ee1bb8f5ac.jpg5f864c988776e_html_b9585f87ee7e4ad6.png

图5 原型组成

如图5所示IoT网关原型是一款以的自主开发原型板(核心单片机是STM32F4系列),连接气象传感器和激光扬尘传感器(RS485总线)。原型板具备以下功能:

  1. 一个USB-串口调试端口;

  2. 一个蓝牙-串口调试端口;

  3. 一个模块化网络端口,可兼容4G-串口模块或网口-串口模块;

  4. 工作电源支持9~36V直流宽压输入;

  5. 三个可独立设置波特率的UART端口,通过跳线选择TTL或RS485;

在单片机驱动层、协议层和应用层中编写代码。驱动层主要编写初始化配置函数、串口中断回调函数、MQTT接收/发送接口函数;协议层主要编写JSON数据解析/打包函数、MQTT连接函数、MQTT心跳包函数、MQTT数据接收/上传函数、RS485接收/发送函数、Modbus CRC校验函数;应用层主要编写单片机各基本功能管理、串口接收/发送管理、MQTT协议栈三个线程任务。

如图6所示,在物联网平台上对物模型和IoT设备进行配置。

5f864c988776e_html_f2fcb67c701001de.png

图6 物模型和设备配置

如图7所示,物联网平台正确显示了各个环境传感器的实时数据,IoT网关正常工作。

5f864c988776e_html_99f1101f780ec680.png

图7 实时数据展示

5 结语

本文介绍了智慧工地的物联网框架体系,提出了IoT网关的架构设计,提供了通讯协议层的适配和实现方法,制作了原型并进行实际测试。实际测试表明,IoT网关原型可以正常工作,可以实现对多数设备的接入,可以实现控制消息的下发和数据消息的上传。这种物联网网关设计可以满足智慧工地的物联网应用需求。

参考文献:

[1] 单娟. 全球物联网发展及中国物联网建设若干思考[J].电子学报,2016,38(7):2590—2599.

[2] 庄琳.物联网技术下的智慧工地的构建研究[J].信息与电脑(理论版),2019(09):165-167.

[3] 盛俊阳. 物联网设备接入管理平台关键技术研究与实现[D].北京工业大学,2019.

[4] 柴洪伟, 赵欣. 基于物联网技术的智慧工地系统设计及应用[J]. 工程建设与设计, 2019(A01):14-16.

[5] 田创,陈文艺.物联网平台接入网关研究[J].信息技术,2018(09):125-128+133.

[6] 宋青山.JSON数据格式在企业数据交换中的应用[J].天津冶金,2014(02):114-117.

[7] 刘莹,祝学云,范文.检测技术课程设计型实验系统研制[J].实验技术与管理,2015,32(06):137-138+145.