0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP32 OTA無(wú)線更新系列——Basic OTA

jf_cVC5iyAO ? 來(lái)源:易心Microbit編程 ? 作者:易心Microbit編程 ? 2022-12-16 16:47 ? 次閱讀

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就可以找到,范例程序這里就不列出。

2bf955ce-7d18-11ed-8abf-dac502259ad0.png

上傳時(shí)選擇Partition Scheme為Default 4MB wiht spiffs(1.2MM APP/1.5M SPIFFS)

2c35a39e-7d18-11ed-8abf-dac502259ad0.png

修改好程序最上面的WiFi設(shè)定后,上傳即可。

2c5fcde0-7d18-11ed-8abf-dac502259ad0.png

BasicOTA由于筆者很少用,程序內(nèi)容我就不一一說(shuō)明。

程序上傳后,如果網(wǎng)絡(luò)有連上,理論上就可以在ArduinoIDE中找到裝置。

2c8997d8-7d18-11ed-8abf-dac502259ad0.png

找到的畫(huà)面會(huì)向下面這樣,在原本串行端口下方會(huì)出現(xiàn)一個(gè)ESP32虛擬的Port,后方則為ESP32的IP。

2cac3b76-7d18-11ed-8abf-dac502259ad0.png

注意事項(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就可以更新了。

2cd28100-7d18-11ed-8abf-dac502259ad0.png

這里再附注兩點(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)似,其方式如下:

2cf52840-7d18-11ed-8abf-dac502259ad0.png

2.為了能持續(xù)使用OTA功能,新一版的程序代碼也必須包含OTA功能,否則這版燒上去,就沒(méi)有OTA了

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何從ESP32中刪除OTA

    通過(guò) Arduino IDE 和示例等對(duì) ESP32 Dev 32 模塊進(jìn)行了一些 OTA 測(cè)試,一切正常。 現(xiàn)在我們想恢復(fù)到正常的串行/USB 編程,雖然我們似乎可以編程一個(gè)新程序,但它只是恢復(fù)到現(xiàn)有的 OTA 程序。 有沒(méi)有
    發(fā)表于 01-31 07:37

    ESP32對(duì)Flash加密后能否使用OTA進(jìn)行后續(xù)的維護(hù)更新?

    ESP32對(duì)Flash加密后能否使用OTA進(jìn)行后續(xù)的維護(hù)更新
    發(fā)表于 06-07 08:21

    請(qǐng)問(wèn)esp32 ota升級(jí)如何獲取更新進(jìn)度?

    所用的是esp32-s2 idf:4.4調(diào)用esp_https_ota API進(jìn)行固件升級(jí),想獲取更新進(jìn)度,但不知道怎么實(shí)現(xiàn),有人做過(guò)或者有思路指點(diǎn)一下嗎?
    發(fā)表于 06-14 07:20

    請(qǐng)問(wèn)如何實(shí)現(xiàn)ESP32固件的OTA在線升級(jí)更新

    什么是OTA?ESP32OTA升級(jí)有哪幾種方式?如何實(shí)現(xiàn)ESP32固件的OTA在線升級(jí)更新?
    發(fā)表于 01-14 06:05

    樂(lè)鑫ESP32空中下載(OTA)解決方案實(shí)操

    OTA分區(qū),并利用otatool.py腳本在應(yīng)用仍在運(yùn)行時(shí)執(zhí)行固件更新。 PART02以ESP32模塊進(jìn)行OTA升級(jí)測(cè)試 有幾種不同的ESP32
    發(fā)表于 06-30 10:39

    OTA升級(jí)失敗的原因?

    硬件:esp32 dwodidf v4.4參照例子:native_ota_example寫(xiě)的ota程序,升級(jí)完成后,重啟進(jìn)入: const esp_partition_t *runni
    發(fā)表于 02-10 08:55

    求助,esp32 ota升級(jí)如何獲取更新進(jìn)度?

    所用的是esp32-s2idf:4.4調(diào)用esp_https_ota API進(jìn)行固件升級(jí),想獲取更新進(jìn)度,但不知道怎么實(shí)現(xiàn),有人做過(guò)或者有思路指點(diǎn)一下嗎?
    發(fā)表于 02-14 07:15

    ESP32中使用esp_ota_write()來(lái)寫(xiě)flash出現(xiàn)5379是啥意思?

    ESP32中,使用esp_ota_write()來(lái)寫(xiě)flash,并將返回值打印出來(lái)。卻出現(xiàn)了如下結(jié)果:[11:21:07.083] [0;31mE (108967) esp_ota
    發(fā)表于 02-15 06:11

    MQTT和HTTP OTA同時(shí)使用就不能OTA了怎么解決?

    我是用的IDF版本是4.4.2MQTT是拷貝"F:\ESP32-S3\idf\esp-idf\examples\protocols\mqtt\tcp"這個(gè)例程OTA是拷貝
    發(fā)表于 03-07 08:09

    esp32 OTA升級(jí)確定運(yùn)行分區(qū)時(shí)重啟的原因?

    硬件:esp32 dwodidf v4.4參照例子:native_ota_example寫(xiě)的ota程序,升級(jí)完成后,重啟進(jìn)入: const esp_partition_t *runni
    發(fā)表于 03-08 06:06

    esp32是否支持aws ota,有沒(méi)有實(shí)例參考?

    esp32 是否支持 aws ota ,有沒(méi)有實(shí)例參考,請(qǐng)大神們指導(dǎo)指導(dǎo)
    發(fā)表于 03-09 06:57

    如何使用GSM網(wǎng)絡(luò)的ESP32 OTA更新?

    大家好!我正在使用LilyGo T-Call SIM800 系列中的一些,這是一個(gè)基于 ESP32 和 SIM800L 的模塊,使用 GSM 網(wǎng)絡(luò)進(jìn)行互聯(lián)網(wǎng)連接。有了這些,我可以建立 MQTT 連接
    發(fā)表于 04-12 08:30

    通過(guò)OTA從Google Drive下載文件來(lái)更新ESP32,OTA更新時(shí)退出是為什么?

    我正在嘗試通過(guò) OTA 從我的 Google Drive 下載文件來(lái)更新我的 ESP32。當(dāng)我開(kāi)始 OTA 更新時(shí),系統(tǒng)開(kāi)始寫(xiě)入分區(qū),但隨后
    發(fā)表于 04-13 06:00

    如何使用Arduino IDE對(duì)ESP32進(jìn)行無(wú)線編程

    在本教程中,我們將使用Arduino IDE 中的 OTA Web Updater對(duì) ESP32 進(jìn)行無(wú)線OTA) 編程。
    發(fā)表于 08-11 15:42 ?5162次閱讀
    如何使用Arduino IDE對(duì)<b class='flag-5'>ESP32</b>進(jìn)行<b class='flag-5'>無(wú)線</b>編程

    支持 OTA 更新的MCU很多 為何 ESP32這么受歡迎?

    下載 (OTA) 更新以保持設(shè)備固件的更新。 關(guān)鍵是要看一下現(xiàn)有的平臺(tái),看看它們有哪些額外的工具和支持來(lái)支持 OTA 更新。這樣的支持可以大
    的頭像 發(fā)表于 11-01 20:30 ?2475次閱讀
    支持 <b class='flag-5'>OTA</b> <b class='flag-5'>更新</b>的MCU很多 為何 <b class='flag-5'>ESP32</b>這么受歡迎?