嵌入式物联网系统设计

2020-09-05 05:55
科学技术创新 2020年27期
关键词:开发板数据流串口

(江苏徐工信息技术股份有限公司,江苏 徐州221000)

随着经济的日益发展和生活水平的不断提高,人们已经从物质的满足转向对生活品质的追求。而物联网的发展迎合了人们的需要,比如智能电视,智能冰箱等等,人们可以在手机或者电脑等远程端直接对终端设备进行控制和自动化管理,从而打破了地域的限制,节省了大量时间。目前,物联网已经广泛地应用到各个领域,作为物联网的重要组成部分,物联网云平台、嵌入式终端设备以及无线通信技术对物联网起着至关重要的作用。

1 系统总体设计

系统先在OneNET 云平台上创建属于自己的公开协议产品,并添加设备、数据流模板和独立应用。然后选择性能较好的STM32F107VCT6 嵌入式开发板作为控制设备,采用Wifi 的数据通信方式,将控制设备接入到云平台创建好的产品。在此基础上,将开发板上传感器采集的数据上传到OneNET 平台,并设置报警部分。同时通过在产品的独立应用里添加的“开关”控件控制开发板上的LED 灯。通过独立应用里的柱状图、曲线图等有效工具进行实时展示。

2 平台设计及通讯方式

系统设计选择OneNET 云平台,由于OneNET 云平台提供丰富的硬件开发工具,API 接口以及多种通信协议。OneNET 云平台支持以太网、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 通讯方式

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 报文

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 接收数据超时”。如果数据上传成功,数据流模板上的数据流就会更新。

猜你喜欢
开发板数据流串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
汽车维修数据流基础(上)
基于STM32H7的FDCAN通信系统设计与实现∗
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
AADL端对端数据流一致性验证方法
船舶电子设备串口数据的软件共享方法
浅析单片机开发板的设计与制作