用Wi-Fi連線方式更新ESP8266程式
from https://swf.com.tw/?p=1034
OTA(Over the Air programming)
OTA(Over the Air programming)
ArduinoOTA程式樣版
要完成本單元實作,電腦作業系統須事先安裝Python 2.7(非Python 3.x版,兩者語法不完全相容)。Arduinoi IDE請使用1.6.7以上版本(筆者採用1.8.2版),ESP8266平台套件2.0.0以上版本(筆者採用2.3.0版)。
Arduino IDE的ESP8266平台套件包含OTA範例程式,請先從IDE選擇你的控制板,再開啟BasicOTA範例:
- 從Arduino IDE的「工具→開發板」選單,選擇一款ESP8266控制板,例如,NodeMCU 1.0或WeMos D1 Mini。
- 從主功能表選擇「檔案→範例→ArduinoOTA→BasicOTA」範例檔。
ArduinoOTA採用UDP協定傳送檔案,所以程式開頭引用了WiFiUdp.h程式庫:
此範例程式將以STA模式連接Wi-Fi網路,請在setup()函式的這兩行敘述設定Wi-Fi網路名稱和密碼:
選擇性地設定ESP8266的埠號、主機名稱以及OTA連線密碼:
其餘程式碼不用改,從「工具→序列埠」選單確認控制板的埠號選擇正確後,上傳此程式到ESP8266控制板。
過一會兒,Arduino IDE的「序列埠」選單,將包含「網路連接埠」以及ESP8266控制板選項。
如果該選項遲遲沒有出現,請嘗試:
- 關閉Arduino IDE再重新啟動。
- 確認執行Arduino IDE的電腦和ESP8266控制板位在相同網域,也就是連接到同一個無線網路基地台。
- 確認有安裝好Python 2.7版,以Windows為例,在「命令提示字元」的任何路徑下,輸入”python -V”(V要大寫),系統將回報Python的版本。
OTA無線上傳Arduino程式檔
選擇好位於無線網路連接埠控制板之後,像平常一樣編譯與上傳程式碼,程式檔將透過Wi-Fi網路上傳到ESP8266控制板。由於此OTA連線程式有設定密碼,所以Arduino IDE將顯示如下的密碼輸入對話方塊:
若密碼輸入錯誤,Arduino IDE底下的訊息欄位將顯示Authentication Failed(驗證錯誤)的訊息:
若密碼輸入正確,則開始上傳程式檔。
底下是setup()函式當中,其他與ArduinoOTA程式庫相關的敘述:
最後是放在loop()函式裡面,負責聆聽OTA請求的敘述:
留言
張貼留言