Special Technology
专题技术
DCW
47
数字通信世界
2019.12
随着计算机通讯技术不断的发展,物联网产业落地的前景也变得越来越明朗。尤其是随着5G 的投入使用,未来可以预见智能家居、智慧城市等产业将变成我们生活不可或缺的一部分。
在物联网如火如荼的大背景下,对处理海量数据以及高效传输势必带来更高的功耗。由于当下的能源技术难以取得突破发展,因此物联网系统的功耗将严重物联网产业的落地。因此如何降低物联网系统结构的功耗问题将是重中之重。
1 系统设计
1.1 M QTT 协议
在数据报文发送的应用层协议采用了消息队列遥测传输协议(MQTT ),MQTT 是一种传输层协议以TCP 协议为核心的应用层协议,基于发布/订阅模式的一种轻量级协议。这种协议应用之初便是为了传感器数据采集使用,可以做到使用极少的代码量以及极低的带宽便可接入网络,为物联网组件接入远程终端设备提供极大的便利。
采用MQTT 协议的最重要原因在于其在编程时具有高度抽象的特点,对于开发人员来说,这种基于发布/订阅的消息传输方式类似于广播消息。开发人员只需要在远程终端订阅特定传感器的主题消息,而传感器节点只需要将所有消息统一按照MQTT 协议打包发布即可,而服务器会根据各个客户端订阅的消息进行分发。相较于TCP 协议直接广播路由的方式相比,这种由MQTT 进行消息分发的机制具有更高的性能。
正如HTTP 在万维网应用中的地位一样,MQTT 协议能够像HTTP 协议为人们网络交流铺平道路一样将几十亿嵌入式、低成本数据采集设备连接到各类网络当中。1.2 E MQ
当下MQTT 服务器代理种类繁多,如基于C++的Mosquitto ,基于Java 的Moquette ,以及各大厂商的公有云平台,如阿里云的LMQ ,腾讯云的Iot-MQ 等。但在开源社区最活跃、功能最全的代理当属EMQ 。EMQ 是一个基于Erlang 语言的开源mqtt 服务器,功能全面,文档齐全。由于EMQ 在开源社区的高度
活跃性,因此也具备了更好的技术支持。1.3 传感器网络报文设计
由于在整个传感器组成的网络中只有一个或多个网关节点采用TCP/IP 协议与外部互联网通信。因此对于内部局域网需要一个统一的报文格式以区分网络中不同的传感器节点并将其消息转发。报文格式如表1所示:
表1 报文格式
报文总长度
传感器ID 编号1传感器ID 编号
2
目的网关地址
数据段
CRC 校验码
其中,传感器ID 编号1和传感器ID 编号2总共占报文段中
微服务网关设计两个字节,即整个网络中传感器数量可支持达到65536个,第一
个字节表示报文总长度只占一个字节,即整个报文段最多长度支持255个字节。数据段长度不限,只需满足整个报文长度小于256个字节即可,而CRC 校验码值指循环校验码,用于验证报文在通信过程中有没有发生误码的现象。
2 硬件选型
2.1 E SP8266
ESP8266集成了32位Tensilica 处理器、低噪放大器、天线开关、射频balun 、标准数字外设接口、功率放大器、过滤器和电源管理模块等,只需要很少的外围电路即可完成整个核心系统的设计,因此可以将所占PCB 空间降低。正是基于以上的特点,ESP8266是专为移动设备和可穿戴电子产品等物联网应用而设计的。2.2 N odeMcu
NodeMCU 是安信可基于ESP8266模组所设计的核心开发板。在PCB 设计时引出了所有ESP8266的IO 引脚功能,能够完整的实现ESP8266的所有功能。并且对于ESP8266传统采用C 语言编程的方式,NodeMcu 集成了Lua 语言,并对原来的IO 口引脚进行了重新定义,这种新的定义只是对IO 口进行重新映射编号,对原来的C 语言编程方式并没有影响。2.3 L ua 语言
NodeMcu 支持Lua 语言编程,虽然NodeMcu 本质是集成了ESP8266模组,可以绕过NodeMcu 的硬件封装而直接使用C 语言编程,但是Lua 语言作为一种完美嵌入C/C++语言的一种脚本语言,开发便捷以及高效等特点是C 语言无法相比较的。
3 结束语
本文提出了基于NodeMcu 使用Lua 语言编程设计的物联网
网关,并自定义了传感器网络中的报文格式,将网关组进传感器网络中,可以将局域网中的数据后,将数据报文上报给EMQ 服务器代理。更重要的是,在NodeMcu 中集成的Lua 语言固件已经封装了完整的MQTT 协议的应用接口,开发者可以快捷的调用Lua 语言固件接口,短短几行代码便可以完成MQTT 客户端创建,数据报文收发的回调函数的创建,因此具有开发效率高的特点。参考文献
[1] 陈建明,彭辉.超低功耗无线传感节点设计与实现[J].技术与市场,2016(11).[2] 邓雨欣,唐彰国,张健,等.基于MQTT 协议命令分组编码的隐蔽信道研究[J].计算机工程,2019,45 (11): 138–143.
[3] 谢琳,庄建.基于MQTT 协议的智慧农场智能化管理系统[J].单片机与嵌入式系统应用,2018(09).
[4] 范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016(09).
基于NodeMcu 和MQTT 协议的物联网网关设计
熊梦彪,高 誉,周龙丽,陈佳音,黄康辉
(西北民族大学数学与计算机科学学院,兰州 730124)
摘要:本文基于NodeMcu 模块结合了MQTT 协议设计了一种物联网网关节点的设计。该节点可作为各类传感器网络接入互联网的网关,使得传感网中的各个传感器节点可以采用较低功耗的局域网传输方案,如蓝牙、ZigBee 等。在整个网络中只有网关节点作为整个传感器网络的中转站使用Wi-Wi 与进行互联网通信,其整体系统功耗可得到显著降低。
关键词:NodeMcu 模块;MQTT 协议;节点doi :10.3969/J.ISSN.1672-7274.2019.12.022中图分类号:TN92,TP93 文献标示码:A 文章编码:1672-7274(2019)12-0047-01基金项目:西北民族大学国家级大学生创新创业训练计划资助项目,项目编号:201910742058。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论