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文章
566浏览量
35119 -
BASIC
+关注
关注
0文章
35浏览量
12372 -
ESP32
+关注
关注
17文章
953浏览量
17030
原文标题:ESP32 OTA无线更新系列——Basic OTA
文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论