OTA为OverTheAir的缩写,意思就是空中更新程序代码,个人认为这个IoT产业非常重要的一环,毕竟当你的装置从实验室走到实际场域后,一定会遇到很多问题。如果场域分散在很多不同的地方,光程序改版就会让你疲于奔波,带着USB线到处更新你的ESP32,想想就很累。如果今天你的装置支持OTA,那你在家里就可以直接更新客户端装置的程序,是不是很方便。
OTA并非是ESP32的专属功能,很多Arduino系列也都支持,以目前笔者所观察到的OTA目前来说主要分成以下四种模式
1.Basic OTA:在Arduino IDE中形成一个虚拟的Port,选择该Port即可上传新的程序代码
2.OTAWebUpload:ESP32会变成一台Webserver,透过ESP32的网页上传ArduinoIDE编译过得bin(binary)檔
3.HTTP Update:将编译好的bin档放在一个公开的网站上,让ESP32主动下载
4.Stream Update:透过MQTT将编译好的bin档直接上传到ESP32中
除了4之外,目前我都实做过,本篇先从最简单的1. Basic OTA开始吧。
Basic OTA
Basic OTA是内建的功能,只要档案/范例ArduinoOTA/BasicOTA就可以找到,范例程序这里就不列出。
上传时选择Partition Scheme为Default 4MB wiht spiffs(1.2MM APP/1.5M SPIFFS)
修改好程序最上面的WiFi设定后,上传即可。
BasicOTA由于笔者很少用,程序内容我就不一一说明。
程序上传后,如果网络有连上,理论上就可以在ArduinoIDE中找到装置。
找到的画面会向下面这样,在原本串行端口下方会出现一个ESP32虚拟的Port,后方则为ESP32的IP。
注意事项
经过反复测试,需要注意以下状况:
1.计算机与ESP32必须使用同一个局域网络,切必须关闭防火墙
2.无法使用手机AP分享网络:我将计算机及ESP32都选用手机分享的网络,但是无论如何测试就是找不到…..
3.计算机可能需要重新启动
4.结论就是这种模式似乎不是很稳定(也可能是我家网络的问题吧….)
不过网络程序代码更新,只要选择上面的虚拟Port不用再插USB就可以更新了。
这里再附注两点说明一下
1.delay问题:当使用OTA时,太长的delay就会导致送出需求时没被ESP32收到,因此建议程序有delay的地方修改为检测时间,与之前介绍MQTT时类似,其方式如下:
2.为了能持续使用OTA功能,新一版的程序代码也必须包含OTA功能,否则这版烧上去,就没有OTA了
审核编辑:汤梓红
-
OTA
+关注
关注
7文章
544浏览量
34779 -
BASIC
+关注
关注
0文章
28浏览量
12297 -
ESP32
+关注
关注
13文章
904浏览量
16252
原文标题:ESP32 OTA无线更新系列——Basic OTA
文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何从ESP32中删除OTA?
请问esp32 ota升级如何获取更新进度?
乐鑫ESP32空中下载(OTA)解决方案实操
OTA升级失败的原因?
求助,esp32 ota升级如何获取更新进度?
在ESP32中使用esp_ota_write()来写flash出现5379是啥意思?
MQTT和HTTP OTA同时使用,加了指令后就不能OTA了是什么原因?
MQTT和HTTP OTA同时使用就不能OTA了怎么解决?
esp32 OTA升级确定运行分区时重启的原因?
如何使用GSM网络的ESP32 OTA更新?
通过OTA从Google Drive下载文件来更新ESP32,OTA更新时退出是为什么?
如何使用Arduino IDE对ESP32进行无线编程
![如何使用Arduino IDE对<b class='flag-5'>ESP32</b>进行<b class='flag-5'>无线</b>编程](https://file.elecfans.com/web2/M00/5D/DE/poYBAGL0spmAU90WAARudAMm4Yg724.png)
评论