基于ESP8266WiFi模块和MQTT协议的物联网传感节点设计.docx

基于ESP8266WiFi模块和MQTT协议的物联网传感节点设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

基于ESP8266WiFi模块和MQTT协议的物联网传感节点设计

?

?

丘源经本钦李精华?

摘要:设计了一种基于ESP8266WiFi模块和MQTT协议的物联网传感节点,该节点具有数据采集、数据上报和远程控制功能。传感节点通过轻量级物联网MQTT协议与数据采集中心通信,数据采集中心能够自动识别和实时显示传感节点的采集数据。实验证明,所设计的传感器节点可靠、扩展性强、通用性好。

关键词:ESP8266;MQTT协议;物联网;传感器节点;远程控制;实时显示

:TP393:A:2095-1302(2019)06-00-03

0引言

随着物联网技术日趋成熟,物联网已被广泛应用在医疗、交通与物流、能源与公用事业、零售业等领域[1]。据思科公司(Cisco)思科视觉化网络指数显示,到2022年全球有超过半数设备和连接将会是机器对机器(M2M)的互联,比2017年增加34%。智能音箱、固定设备、移动设备及其他物件的连接数将从2017年的61亿增至2022年的146亿[2]。互联设备的数量和类型越来越多,应用环境日趋复杂,实现资源有限或带宽有限环境下的传感器联网和保证传感数据的可靠传输成为物联网技术应用应重点考虑的问题之一。

物联网传感节点作为物联网和物理世界交互的边界节点,负责信息的采集和简单处理,与将数据传输到应用层进行数据分析和处理[3]。传感器节点的通信方式主要分为近距离通信和远距离通信,传感器节点之间一般采用短距离无线通信,如蓝牙,ZigBee,WiFi等;传感器与物联网云服务器或应用服务器采用远距离通信,如固网、移动网络(2G/3G/4G)、NB-IoT网络等。无线网络连接类型(WiFi、移动网络)是主流。现在越来越多的应用场合要求传感器节点自带接入网关,即支持物联网网络接入服务。由于传感器节点资源有限,受CPU处理能力、内存等限制,通常在LwIP协议栈上采用轻量级物联网传输协议。目前,应用最广泛的物联网标准传输协议包括MQTT、CoAP。MQTT是一种在TCP/IP协议上的基于订阅/发布模式的轻量级传输协议,适用于引入第三方云平台的物联网应用。CoAP即约束应用协议,类似HTTP,是一种文档传输协议,也是一种基于请求/响应的客户端/服务器端轻量级UDP传输协议,适合将物联网应用嵌入到现有Web服务器中[4]。

本文基于ESP8266WiFi模块和MQTT协议设计了一种低成本物联网传感节点,以ESP8266嵌入式处理器为核心,采用AM2302传感器采集温湿度数据,进行简单处理后将传感数据通过MQTT协议发布到百度天工物联网云平台IoTHub。数据采集中心采用VisualC#实现,能自动识别传感节点和订购传感器的数据,可保存、处理和显示传感节点的温湿度数据。数据采集中心可通过云平台IoTHub下发命令,实现传感器节点参数配置并让传感节点执行指定操作(打开/关闭继电器)。传感器节点性能可靠,扩展性强,通用性好。

1系统总体结构系统由传感节点、数据采集中心和百度天工物联网云平台组成,如图1所示。传器节点由ESP8266和AM2302构成,实现温湿度的采集和上报;数据采集中心基于VisualC#开发,实现传感数据的接收、存储、分析和显示;百度天工物联网云平台IoTHub作为MQTT消息代理,负责主题订阅管理、消息转发和缓冲,实现传感节点与数据采集中心的信息交互。传感节点与数据采集中心的交互数据类型为JSON格式。

2传感节点设计传感节点负责采集感知对象相关信息,并通过相应的通信模块将数据通过MQTT消息代理推送到远端数据采集中心。

2.1硬件设计传感节点以ESP8266EXWiFi模块为核心,通过I/O外接传感器AM2302及其他设备。传感节点硬件框图如图2所示。

2.2软件设计

传感节点软件基于NodeMCU固件开发。NodeMCU固件使用Lua脚本语言编程,在乐鑫ESP8266Non-OSSDK上开发而来。NodeMCU固件封装了ESP8266硬件操作的应用编程接口函数API,同时还提供I2C,SPI,UART等外设总线驱动函数及OLED/TFT显示驱动、各种类型传感器驱动、网络协议库(TCP/UDP,HTTP,MQTT等),开发者无需了解底层硬件驱动即可快速开发应用。传感节点程序主要通过数据采集模块、MQTT客户端和网络连接模块实现。数据采集模块负责定时读取温湿度数据;MQTT客户端负责维护与MQTT消息代理IoTHub的连接、发布传感数据、接收并响应数据采集中心的命令;网络连接模块负责WiFi连接。系统软件主流程如图3所示。

2.2.1数据采集模块

数据采集模块创建了一个tmr定时器,周期调用dht库的read()函数读取温湿度数据,再使用string.format函数将温

文档评论(0)

134****7975 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档