机智云Airlink配网超时、数据上传延迟及更新不及时问题分析

描述


 

本教程旨在分析并解决在使用32单片机和ESP8266-01S接入机智云时可能遇到的配网超时、数据上传延迟及更新不及时的问题。通过将传感器采集的数据上传至机智云APP,同时实现远程控制LED灯等执行器,我们将探讨如何优化系统性能,确保设备稳定连接与数据实时更新。


 


Airlink配网超时


 




传感器
可能原因一


 

首先一定要确保ESP8266烧录有机智云的固件,我一开始就误认为ESP8266已经有固件了,但后续才发现是安信可的固件,判断ESP8266里是什么固件有个很好的区分办法,如果ESP8266闪烁频率很慢,就是安信可的,如果闪烁频率很快,就是机智云的。


 

关于如何烧录固件网上有很多的办法,作者就不再赘述,只是提醒一下大家一定要检查一下固件。


 




传感器


 


可能原因二

连接的WIFI一定要是2.4G频段的,5G是一定会失败的。大家可以在电脑的设置——网络和Internet——属性,查看WIFI的频段。


 




传感器


 


可能原因三


 

使用单片机配网时最好用按键启动ESP8266的配网,一开始我将配网模式函数放在初始化后面,每次复位或上电都会执行,但实际确实连不上。


 




传感器


 

一开始我认为按键没那么重要,但奈何尝试了很多方法都不行,最终才尝试了按键启动配网,没想到就成功了。


 




传感器


 

顺便提醒一下,如果手机APP上点击配网时让你"please switch to wifi environment" ,是因为你的手机没有开启定位哈。


 


不主动上传数据


 

问题描述:在历经千辛万苦终于配网成功后,打开APP界面发现数据全为0,当时的心情怎一个惨字了得。只有每次我改变其中一个布尔值后,数据才会更新。串口打印信息如下:


 




传感器


传感器


 


可能原因

不主动上报数据大概率就是定时器出了问题,建议大家详细排查定时器初始化或者配置有无问题。本人就犯了一个很马虎的错误,在定时器中断通道的配置中,将TIM3_IRQn错写成了USART3_IRQn,导致定时器其实一直无法进入中断,gizTimerMs()函数一直无法执行,自然无法主动上报数据。


 




传感器传感器


传感器传感器

将中断通道改正确后,就可以接收到实时数据啦,串口打印信息如下:


 




传感器传感器


 


数据更新慢传感器


 

问题描述:数据终于是可以实时上传了,但好像也没有那么“实时”,延迟非常高,离预想的效果还有点距离。


 

改进方法:在gizwits_protocol.h中找到#define REPORT_TIME_MAX 6000这条宏定义,这个定义决定了数值型变量上传的时间间隔,默认是6秒钟,将此处的6000改成500或者其他值,就可以使得数值型变量两次上传的间隔变短,及时更新至APP。


 




传感器传感器

更改后问题得以解决:




传感器传感器


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分