目 录

一、前言

二、项目准备

三、设计思路

四、项目主要代码

五、项目成果

六、项目不足

一、前言:

      继前一个项目《天问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刷新一次温度数据,通过串口四透传到云平台上。

巴法云平台和python连接 巴法云app下载_云平台

   巴法云平台能够接收和发送命令,它有推送订阅指令格式(详细请看官方文档),格式如下:

        1、发送订阅指令 格式: cmd=1&uid=***UID***&topic=***Topic***

               UID为云平台私钥,Topic为订阅的主题名,这个可以在云平台上创建。发送订阅指令之后,云平台就会显示设备在线,接着就可以下发命令控制下位机了。

巴法云平台和python连接 巴法云app下载_巴法云平台和python连接_02

 

巴法云平台和python连接 巴法云app下载_嵌入式硬件_03

 

巴法云平台和python连接 巴法云app下载_巴法云平台和python连接_04

 

 2、推送数据指令格式: cmd=2&uid=***UID***&topic=***Topic***&msg=***data***

         推送数据的指令和订阅格式差别不大,只是cmd后面编号为2,Topic后面加了个"&msg="用于发送数据。

五、项目成果

巴法云平台和python连接 巴法云app下载_嵌入式硬件_05

图5-1   下位机

图5-2 云平台

六、项目不足

      本次项目只是实现了基础功能,云平台下发命令控制下位机的部分还在调试,仍有不足之处。相信会弄好的。下一期将给大家带来云平台连接微信小程序,小程序通过云平台控制下位机的相关内容。谢谢大家,有什么问题大家都可以探讨。