目 录
一、前言
二、项目准备
三、设计思路
四、项目主要代码
五、项目成果
六、项目不足
一、前言:
继前一个项目《天问51单片机结合WIFI模块上传温度数据到TCP服务器》,本次项目是在此基础上做的一个提高。本次项目基于天问STC16开发板,结合ESP8266模块和板载NTC热敏电阻进行测试。将NTC的温度数据通过AT指令上传到巴法云平台。(巴法云平台网址:https://cloud.bemfa.com/user/index.html?r=https://cloud.bemfa.com/tcp/index.html)
二、项目准备
1.硬件材料:天问STC16F系列开发板、ESP-01S模组、STC-Link烧录器。
2.软件平台:天问BLOCK编程软件、巴法云平台、XCOM串口助手。
三、设计思路
本次项目以天问STC16单片机为核心,结合WIFI模块将NTC模块的温度数据上传到巴法云平台,其中主要涉及到AT指令、串口通信、TCP连接与MQTT通信。此前用网络调试助手进行过模拟测试,具体原理大同小异,AT指令几乎一样,只是连接云平台的IP地址、端口号不一样。
代码中采用定时器0中断进行超时接收,如果超过一定时间没有接收到串口数据,就认为接收数据结束。利用板子上串口四和WIFI模块相连,串口四接收中断函数判断接收的数据。
下面是项目用到的AT指令:
AT+RST //WiFi模块复位
ATE0 //关闭回显
AT+CWMODE=3 //模块设置成STA_AP模式
AT+CWJAP="User-name","Password" //连接AP的用户名、密码
AT+CIPSTART="TCP","bemfa.com",8344 //连接云平台服务器(ip地址、端口号)
AT+CIPMODE=1 //开启透传模式
AT+CIPSEND //发送数据
四、主要项目代码
代码经过多次修改(增加串口调试信息、修改AT指令等等),基本功能已实现(温度数据可以上传到巴法云平台)。定时2S刷新一次温度数据,通过串口四透传到云平台上。
巴法云平台能够接收和发送命令,它有推送订阅指令格式(详细请看官方文档),格式如下:
1、发送订阅指令 格式: cmd=1&uid=***UID***&topic=***Topic***
UID为云平台私钥,Topic为订阅的主题名,这个可以在云平台上创建。发送订阅指令之后,云平台就会显示设备在线,接着就可以下发命令控制下位机了。
2、推送数据指令格式: cmd=2&uid=***UID***&topic=***Topic***&msg=***data***
推送数据的指令和订阅格式差别不大,只是cmd后面编号为2,Topic后面加了个"&msg="用于发送数据。
五、项目成果
图5-1 下位机
图5-2 云平台
六、项目不足
本次项目只是实现了基础功能,云平台下发命令控制下位机的部分还在调试,仍有不足之处。相信会弄好的。下一期将给大家带来云平台连接微信小程序,小程序通过云平台控制下位机的相关内容。谢谢大家,有什么问题大家都可以探讨。