本教程旨在分析并解決在使用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。
更改后問題得以解決:
-
傳感器
+關注
關注
2562文章
52524瀏覽量
763395 -
數據
+關注
關注
8文章
7239瀏覽量
90961 -
機智云
+關注
關注
3文章
609瀏覽量
26734
發布評論請先 登錄
評論