本次教程是使用STM32C8T6通过ESP8266-12F模块将数据传输到ONENET云端去,并且云端能够下发命令给单片机来实现云端控制。本次实验硬件设备:STM32C8T6最小系统,ESP8266-12F模块,wifi。下面是简单的设备传输结构图:
/********************************神奇的分割线********************************/
视频演示教程:https://v.qq.com/x/page/i0814q78no3.html
资料下载地址:https://download.csdn.net/download/xiaoguoge11/10858840
欢迎关注公众号:luxiaoguogege
/********************************神奇的分割线********************************/
/********************************神奇的分割线********************************/
实验中只是将定义的数据进行上传,具体的可以自己添加外部数据采集模块来实现数据的上传及控制。本次实验中查看到的资料网址:
OneNET -中国移动物联网开放平台:https://open.iot.10086.cn/
基于WIFI方式连接OneNET(ESP8266):https://open.iot.10086.cn/doc/art441.html#109
麒麟开发板代码、资料:https://open.iot.10086.cn/bbs/thread-863-1-1.html
机智云开发板使用方法:https://pan.baidu.com/s/1AQIpM4mJ5EimHEYCDM9McQ
/********************************神奇的分割线********************************/
/********************************神奇的分割线********************************/
关于解决连接久了之后设备断开连接玄学BUG问题,这位大佬解决了
基于STM32和ESP8266的LED灯状态上传与命令下发(附源码)
https://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=23845&extra=page%3D1%26filter%3Dtypeid%26typeid%3D13
额,这个是程序上传之后第二天发现的问题,所以我程序是有BUG的,具体的额解决方法可以参考上面连接大佬的分析,
因为时间是什么时候断的,具体为什么断这个因素太不明确了,懒得再分析浪费时间,所以提出简单粗暴的方法:
1. 每隔几分钟重新调用一次与云端连接函数,假如连接失败程序就会卡死在那里,那么我们就再重新初始化ESP8266再进行重连
在程序的main.c程序中替换成这个,也就是增加重连函数,这个只是暂时解决方法测试一早上esp8266重新初始化了30次左右,
但是还是能保证掉线自动连接,具体为什么断现在原因还不太明确,等以后有时间再慢慢分析
main.c程序
1 #include 'public.h'
2
3 int main()
4 {
5 int timeCount = 0; //发送间隔变量
6 int esp8266_rest = 0;
7 int connect_time = 0; /*连接时间*/
8 delay_init();
9 Usart1_Init(115200); //串口1,打印信息用
10 Usart2_Init(115200); //串口2,驱动ESP8266用
11 UsartPrintf(USART_DEBUG, ' Hardware init OKrn');
12
13 ESP8266_Init(); //初始化ESP8266
14
15 while(OneNet_DevLink()) //接入OneNET
16 delay_ms(500);
17
18 send_data.Data1 = 1;
19 send_data.Data2 = 1;
20 while(1)
21 {
22 if(++timeCount >= 500) //发送间隔5s
23 {
24 printf('向onenet平台发送数据:rn');
25 OneNet_SendData(); //发送数据
26
27 timeCount = 0;
28 ESP8266_Clear();
29 }
30 esp8266_rec(); /*主程序中调用来进行接收,数据处理不用这个,这个只是调用*/
31
32 if(connect_time++ >= 2000) //间隔20s就重新连接一次
33 {
34 printf('重新连接平台rn');
35 connect_time = 0;
36 while(OneNet_DevLink()) //接入OneNET
37 {
38 esp8266_rest++;
39 delay_ms(500);
40 if(esp8266_rest == 10)
41 {
42 send_data.Data1 += 1;
43 printf('重新连接平台第 %d 次',send_data.Data1);
44 esp8266_rest = 0;
45 ESP8266_Init(); //初始化ESP8266
46 }
47 }
48
49 }
50
51 delay_ms(10);
52 }
53 }
上一篇:022_STM32中断优先级分组解析
下一篇:018_STM32程序移植之_串口接收中文
推荐阅读最新更新时间:2024-11-08 11:29
设计资源 培训 开发板 精华推荐
- LTC1450L 并行输入、12 位轨至轨微功率 DAC 的典型应用
- 使用 ON Semiconductor 的 LV5747NTT 的参考设计
- TPS54361降压电源模块
- STWLC03 双模 Qi/PMA 无线电源接收器的典型应用
- LD29150PTR 1.5A超低压降稳压器典型应用电路
- LTC3119HFE 5V、500kHz 宽输入稳压器的典型应用电路
- OP184ESZ-REEL 具有限流功能的低压差稳压器的典型应用
- UMFT240XA-01,用于 FT240XQ 全速 USB 2.0 接口的 USB 转 4 位 SPI/FT1248 开发模块
- AD5341 并行接口、单电压输出、12 位 DAC 的典型应用
- 自制RGB彩色数码管
- 下载有礼|ADI 最新《模拟对话》合订本
- 免费申请Adafruit开发板 |处理器、传感器、LED、USB一体化设计板,功能强大!
- 泰克直播:带您了解您所不知道的示波器使用技巧
- TI直播:精讲“双向CLLLC谐振、双有源电桥(DAB)参考设计”
- 学习有礼:一场干货满满的电源管理之旅!
- 有奖直播:人机互动介面和机器视觉应用上的最佳助手--瑞萨电子 RZ/G, RZ/A 和 RZ/V SoC系列
- 金秋十月,我们跟金尔雅老师学MSP432
- 直播:TI及安富利带你快速通过新能源汽车安全系统认证 预报名、看直播赢好礼!
- 【DIY数控电源】入围方案及后续活动安排!
- 【0元得开发板,还能赢T12焊台,报名倒计时】Follow me,与得捷一起解锁开发板超能力!