021_STM32程序移植之_ESP8266连接onenet

发布时间:2024-08-16  

本次教程是使用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 }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    的STM32F103C8T6单片机是一款基于Cortex-M3内核STM32系统的32位微控制器。该单片机支持的程序下载方式包括串口下载和下载器下载。串口下载需要先更改硬件boot引脚连接方式,然后修改单片机的启动地址,即可通过串口下载程序......
    地址(.exe): MQTT客户端_v2.4(协议3.1.1).exe_stc15单片机+esp8266+腾讯连连小程序(三)-桌面系统文档类资源-CSDN下载 这个MQTT客户端采用QT开发......
    器和开发板,开发板上电,直接点击下载按钮,也可以使用快捷键Ctrl+Alt+D下载 下载程序 底部可以看到下载信息,从LOG来看,下载的程序文件是Bin文件,比较,擦除,编程,验证,复位整个流程耗时13s左右......
    ESP8266自动下载电路设计方案;前言 使用过51单片机的朋友会清楚:51单片机在烧写程序的时候需要断一下电再上电;使用过STM32单片机的朋友会清楚:烧写程序时需要设置Boot模式......
    单片机量产程序下载的常用方法;今天给大家分享几种下载程序的方法,看看你见过几种。 通过【IDE】下载程序 通过IDE下载程序,就是将单片机(板子)用烧写器直接电脑,用IDE(比如:Keil)直接下载程序......
    取代码,请单击此处。现在,单击“导入此程序”(蓝色按钮)以将其导入到编译器。 此代码将仅从可变电阻器读取模拟值,并在每次启动时将其发送到我们的Thingspeak频道( 现在,编译并将.bin文件下载......
    STM32单片机ISP下载的方法解析;STM32支持仿真器和串口下载程序。将要介绍的内容,属于串口下载,即我们通常说的ISP下载。 手动ISP下载程序,我们已经知道了,控制BOOT0引脚......
    如何让STM32单片机实现自动ISP下载;STM32支持仿真器和串口下载程序。将要介绍的内容,属于串口下载,即我们通常说的ISP下载。 手动ISP下载程序,我们已经知道了,控制BOOT0引脚......
    stm32单片机休眠模式后无法下载程序怎么办;利用stm32单片机的休眠模式,使单片机间歇的休眠从而实现低功耗的目的。往往会出现进入休眠后无法唤醒,导致下一次程序烧不进去。通常的解决办法是:一般......
    OMRON欧姆龙PLC如何实现远程上下载程序?;欧姆龙(omron),是日系PLC当中市场占有率仅次于三菱的一款强大品牌,其兼具了三菱在运动控制以及西门子在总线控制上的优势,在中......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>