ESP8266 ESP-12S模組除錯記錄
近期開發一個產品,成本、功耗的緣故,需要在ESP8266上開發程式,經歷一下過程,作為記錄,以免再走重複的彎路。
1. 硬體準備:購買USB轉TTL模組。一開始想把開發需要的材料做得簡單點,就定下了USB轉TTL + ESP-12S 共2個開發模組的方案,希望通過USB-TTL模組直接給ESP-12S供電,結果發現ESP-12S電流較大,或者USB-TTL模組的問題,一旦接入ESP12S就會導致USB模組不斷的重新載入驅動,無法使用。最後只能通過外部的電源給ESP-12S供電,才得以解決。
2. 硬體功能確認:參考http://wiki.ai-thinker.com/esp_download,對模組進行了程式設計,下載了IOT的BIN檔案,串列埠成功收到相應的提示資訊,硬體功能確認OK,下載功能確認OK。
3. 準備編寫自己的程式碼:下載esp8266_nonos_sdk_v1.5.4.7z,編譯通過,下載程式時提示錯誤。
卡在這裡沒法往下搞了。
搞了半天,重啟燒錄軟體,不再提示這個問題。坑
燒錄成功了,串列埠接收到1串亂碼,又卡住了。
於是又回去看了說明書,說是上電的時候波特率是74880bps,有點奇葩了。於是用安信可串列埠除錯軟體接上來一看。
OK
4. 按照sdk api說明,完成udp client的通訊。
5. 完成COAP協議的新增,成功傳送資料到伺服器。
6. 增加讀取SSID、IP地址、CHIP ID、RSSI,成功。
7. 增加溫溼度感測器SHT20,成功。
8. 增加ADC讀取電池電壓,成功,但是電壓不準,應該是電阻的精度不夠,等合適電阻回來之後重新除錯,或校準。
9. 原本溫溼度IO為GPIO2和GPIO14,變更為GPIO4和GPIO5之後,老是重啟,但是把溫溼度停止後還是重啟,不知道為啥,明天繼續除錯。[問題已經找到:LDO電源IC的輸出電壓為3.0V,處於臨界點,且LDO輸出沒有大電容,電壓不穩定導致復位]
10. 將溫溼度IO移動到IO4和IO5,軟體配置這兩個GPIO為上拉時,不停的復位,沒找到問題。只能外加上拉電阻了。
11. 完成休眠功能。
12. 完成按鍵喚醒,實際上就是按下復位系統。
12. 低功耗測試,待機電流為20uA,勉強滿足專案需求,電池gong供電可以維持1-2個月
遺漏問題:
1. os_sprintf()函式無法進行浮點數格式轉換,目前自己寫了個函式先用著。
以上,完成了ESP8266的除錯工作。