OTA為OverTheAir的縮寫(xiě),意思就是空中更新程序代碼,個(gè)人認(rèn)為這個(gè)IoT產(chǎn)業(yè)非常重要的一環(huán),畢竟當(dāng)你的裝置從實(shí)驗(yàn)室走到實(shí)際場(chǎng)域后,一定會(huì)遇到很多問(wèn)題。如果場(chǎng)域分散在很多不同的地方,光程序改版就會(huì)讓你疲于奔波,帶著USB線到處更新你的ESP32,想想就很累。如果今天你的裝置支持OTA,那你在家里就可以直接更新客戶端裝置的程序,是不是很方便。
OTA并非是ESP32的專屬功能,很多Arduino系列也都支持,以目前筆者所觀察到的OTA目前來(lái)說(shuō)主要分成以下四種模式
1.Basic OTA:在Arduino IDE中形成一個(gè)虛擬的Port,選擇該P(yáng)ort即可上傳新的程序代碼
2.OTAWebUpload:ESP32會(huì)變成一臺(tái)Webserver,透過(guò)ESP32的網(wǎng)頁(yè)上傳ArduinoIDE編譯過(guò)得bin(binary)檔
3.HTTP Update:將編譯好的bin檔放在一個(gè)公開(kāi)的網(wǎng)站上,讓ESP32主動(dòng)下載
4.Stream Update:透過(guò)MQTT將編譯好的bin檔直接上傳到ESP32中
除了4之外,目前我都實(shí)做過(guò),本篇先從最簡(jiǎn)單的1. Basic OTA開(kāi)始吧。
Basic OTA
Basic OTA是內(nèi)建的功能,只要檔案/范例ArduinoOTA/BasicOTA就可以找到,范例程序這里就不列出。
上傳時(shí)選擇Partition Scheme為Default 4MB wiht spiffs(1.2MM APP/1.5M SPIFFS)
修改好程序最上面的WiFi設(shè)定后,上傳即可。
BasicOTA由于筆者很少用,程序內(nèi)容我就不一一說(shuō)明。
程序上傳后,如果網(wǎng)絡(luò)有連上,理論上就可以在ArduinoIDE中找到裝置。
找到的畫(huà)面會(huì)向下面這樣,在原本串行端口下方會(huì)出現(xiàn)一個(gè)ESP32虛擬的Port,后方則為ESP32的IP。
注意事項(xiàng)
經(jīng)過(guò)反復(fù)測(cè)試,需要注意以下?tīng)顩r:
1.計(jì)算機(jī)與ESP32必須使用同一個(gè)局域網(wǎng)絡(luò),切必須關(guān)閉防火墻
2.無(wú)法使用手機(jī)AP分享網(wǎng)絡(luò):我將計(jì)算機(jī)及ESP32都選用手機(jī)分享的網(wǎng)絡(luò),但是無(wú)論如何測(cè)試就是找不到…..
3.計(jì)算機(jī)可能需要重新啟動(dòng)
4.結(jié)論就是這種模式似乎不是很穩(wěn)定(也可能是我家網(wǎng)絡(luò)的問(wèn)題吧….)
不過(guò)網(wǎng)絡(luò)程序代碼更新,只要選擇上面的虛擬Port不用再插USB就可以更新了。
這里再附注兩點(diǎn)說(shuō)明一下
1.delay問(wèn)題:當(dāng)使用OTA時(shí),太長(zhǎng)的delay就會(huì)導(dǎo)致送出需求時(shí)沒(méi)被ESP32收到,因此建議程序有delay的地方修改為檢測(cè)時(shí)間,與之前介紹MQTT時(shí)類(lèi)似,其方式如下:
2.為了能持續(xù)使用OTA功能,新一版的程序代碼也必須包含OTA功能,否則這版燒上去,就沒(méi)有OTA了
審核編輯:湯梓紅
-
OTA
+關(guān)注
關(guān)注
7文章
552瀏覽量
34984 -
BASIC
+關(guān)注
關(guān)注
0文章
35瀏覽量
12330 -
ESP32
+關(guān)注
關(guān)注
17文章
936瀏覽量
16669
原文標(biāo)題:ESP32 OTA無(wú)線更新系列——Basic OTA
文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論