![7f4a1a81ed901a733fe00a2c45785e0c.png](https://i-blog.csdnimg.cn/blog_migrate/b33db2bafcaa7ecb275a094b735ef537.jpeg)
摘 要: 物联网已经广泛地应用到各个领域,作为物联网的重要组成部分,物联网云平台、嵌入式终端设备以及无线通信技术对物联网起着至关重要的作用。本文旨在搭建一个基于OneNET云平台的嵌入式物联网络,以STM32嵌入式开发板为终端控制设备,选取ESP8266WIFI模块作为通信模块,然后根据OneNET物联网云平台提供的协议来完成系统的设计。实现数据采集以及上传到云平台等功能。本文对STM32开发板,ESP8266WIFI模块、其他传感器和OneNET移动物联网平台相关功能和实现过程进行介绍,最后对相关硬件资源和整体功能进行了调试。
关键词: 物联网; 嵌入式; OneNET云平台;
随着经济的日益发展和生活水平的不断提高,人们已经从物质的满足转向对生活品质的追求。而物联网的发展迎合了人们的需要,比如智能电视,智能冰箱等等,人们可以在手机或者电脑等远程端直接对终端设备进行控制和自动化管理,从而打破了地域的限制,节省了大量时间。目前,物联网已经广泛地应用到各个领域,作为物联网的重要组成部分,物联网云平台、嵌入式终端设备以及无线通信技术对物联网起着至关重要的作用。
1 、系统总体设计
系统先在One NET云平台上创建属于自己的公开协议产品,并添加设备、数据流模板和独立应用。然后选择性能较好的STM32F107VCT6嵌入式开发板作为控制设备,采用Wifi的数据通信方式,将控制设备接入到云平台创建好的产品。在此基础上,将开发板上传感器采集的数据上传到One NET平台,并设置报警部分。同时通过在产品的独立应用里添加的“开关”控件控制开发板上的LED灯。通过独立应用里的柱状图、曲线图等有效工具进行实时展示。
2 、平台设计及通讯方式
系统设计选择One NET云平台,由于One NET云平台提供丰富的硬件开发工具,API接口以及多种通信协议。One NET云平台支持以太网、WIFI、GPRS三种通信方式,本次设计,相较于以太网和GPRS,使用WIFI会更方便,所以系统采用ESP8266WIFI模块,开发板通过控制该模块实现与云平台的通信。
设计采用HTTP协议作为硬件设备接入云平台的通信协议,并用到了POST和GET两种方法,STM32F107VCT6开发板将获取到的数据打包并按照JSON格式进行转换,然后通过POST方法将数据上传到云平台,在云平台中相应的数据流模板上就会出现数据流。同时,开发板控制ESP8266模块向平台不断发送GET请求,以此来获取平台上“开关”按钮的状态,从而实现控制LED灯的亮、灭(图1)。
3 、主要硬件连接与技术特点
3.1、 STM32F107VCT6开发板是整个系统的关键部分之一,它的功能完善,综合性高。主控芯片是基于ARM Cortex-M3内核的STM32F107VCT6,具有低能耗、处理速度快等优势,并且在处理能力以及其他方面已经渐渐超越了ARM7,同时编程难度也有了一定程度的降低,程序显得更加简洁。该芯片增加了全速的USB接口和以太网接口,工作频率为72MHZ,内部汇集了大量高性能的标准接口,能够使用多种应用,兼容性好。
3.2、 ESP8266WIFI模块基于乐鑫公司开发的ESP8266芯片,该芯片集成了Tensilica L106MHZ的32位微型MCU,内置了TCP/IP协议栈。同时,它还拥有板载天线、内置10bit高精度ADC以及主频支持80MHZ和160MHZ等特点。
3.3、 ESP8266-01模块与STM32F107VCT6开发板的连接,由于STM32F107VCT6开发板上有ESP8266WIFI模块的接口,所以在实际操作的时候,直接将模块插到板子上即可。ESP8266-01模块与STM32F107VCT6开发板采用异步通信方式,在通信过程中,开发板通过AT指令对ESP8266-01模块进行控制,并使其连接上网络。
3.4、 DHT11温湿度传感器与开发板连接,DHT11温湿度传感器为三针单排引脚封装,三个引脚分别为VCC,DATA(数字接口),GND。传感器的DATA接口要接到开发板的PC13口,另外两个引脚VCC和GND分别接到开发板的VCC和GND即可。该传感器的工作电压在3.3V-5V之间。由于该传感器的内部自带A/D直接输出数字量,所以在实际操作的过程中,并不需要外接其他部分。
图1 通讯方式
![21db745f39ceea151cb74c0fab41ce8f.png](https://i-blog.csdnimg.cn/blog_migrate/022b6cf07a618c22a1a33f760b13b47a.jpeg)
3.5、光敏电阻传感器与开发板连接,采用的是四线制的灵敏型光敏电阻传感器,工作电压在3.3V-5V之间,四个引脚分别为VCC、GND、DO(开关量输出)和AO(模拟量输出)。在实际接线过程中,将传感器的VCC引脚接到开发板的3.3V的VCC,将传感器的GND引脚与开发板上3.3V的GND引脚相连,然后将传感器的DO口接到开发板的PA6口,AO口不接。接线完成后,给开发板上电,传感器就可以进行光照采集了。
4 、系统调试
4.1 、数据流模板调试
由于本系统采用的是HTTP协议,所以不论是上报数据还是获取数据,报文的内容格式都要用JSON格式。本次测试使用POST方法向平台发送数据。除了报文的格式要正确外,内容里要填写对应的设备ID和产品的API-Key。需要强调的是,Centent-Length(发送的内容)要计算清楚,如果填错了,显示的结果会报错。另外,在报文内容的最后一行结束后,需要换行。报文如图2所示:
图2 POST报文
![e78d64e76dc9e3bd37ab3f234d9026cd.png](https://i-blog.csdnimg.cn/blog_migrate/6a107572420fbac9fb5667b64bb18507.jpeg)
4.2 、ESP8266-01模块测试
首先通过USB转TTL模块将ESP8266-01模块接入PC端,正常情况下,ESP8266-01模块的TXD引脚接USB转TTL模块的RXD引脚,RXD引脚接USB转TTL模块的TXD引脚,其余引脚正常接即可。在接线完成后,要尽量保证电压稳定,既不可太大,又不可太小。供电不足,会导致返回结果为乱码。调测采用的测试软件是sscom5.13.1串口调试助手。在给模块供电后,打开串口调试助手。首先看COM端口,检查模块有没有连接上,然后查看波特率,一般为115200。接下来,在输入栏输入AT指令AT+RST(ESP8266-01模块复位),点击回车换行后,发送指令,串口助手界面返回的结果最后会有“ready”,中间可能会出现一些乱码,但没什么影响。界面最后显示“ready”,表示模块能够正常工作。
4.3、 模块连接WIFI
在模块连接WIFI热点时,有时可能不会一次就连接上,会出现多次连接的情况。这时,串口调试助手会显示“WIFI连接失败,准备重启”,然后模块会自动重启,重新连接WIFI,直至连接成功。如图5.2.2所示。如果串口调试助手一直显示WIFI连接失败的话,可以给开发板重新上电,然后再次尝试连接。
4.4、 LED灯模块调试
系统可以对LED灯模块进行调测,本设计选用开发板上的LED等,在云平台产品的独立应用里查看“开关”按钮的状态,假设开关处于“ON”的状态,开发板接入云平台后,板子上面的LED灯是亮着的(这是上一次设备断开连接前的效果),此时,点击开关的“OFF”按钮,应用的界面会显示“发送成功”,表示信息被发送到平台的服务器,然后查看“开关”按钮关联的数据流模板,数据值由“1”降到了“0”,与此同时,ESP8266-01模块也在不断的发送GET请求,询问“开关”按钮的状态。
4.5、 传感器数据采集和上传
HT11模块上有一个小灯,灯亮表示模块正在正常工作。在给开发板供电后,数据就不断被采集,并上传到云平台。此时观察串口调试助手上的信息,温度和湿度的数据会依次上传。如果上传超时,串口调试助手会显示“ESP8266接收数据超时”。如果数据上传成功,数据流模板上的数据流就会更新。
参考文献
[1] 周童.嵌入式系统在物联网领域中的应用[J].电子技术与软件工程,2019(10):197.
[2] 朱西方.物联网技术发展及应用研究[J].山东工业技术,2017(8):151-151.
[3] 牟萍.云技术及物联网在高校公共资源管理中的应用[J].重庆师范大学学报(自然科学版),2017,34(03):96-102.
[4] 高良谋,马文甲.开放式创新:内涵、框架与中国情境[J].管理世界,2014(06):157-169.