ESP32强大的WIFI功能,能够远程升级,岂不是更美,也是非常基本的功能,毕竟要面对无数的“物”点。
用开发一般系统的思路,在所有程序前面会有一段加载,然后加载会选择后续的跳转点,当OTA时,会将普通通信下来的数据重写进程序段,这样在再次重启的时候,将实现重跳转,也就是OTA功能。
ESP32在基本库里就有OTA功能,是一段WIFI配置功能,然后使用网页方式来实现上传,讲究!
先将这段程序用串口烧写进esp32。
然后进入网页页面:
http://esp32.local/serverIndex
选择上传,网页源码是在ota程序中用html写的,带AJAX功能,还贴心设置了背景颜色,讲究。
然后需要选择bin文件,bin,bin,bin,强调三遍,arduino的生成是.uno文件,所以需要对要生成的bin,选择项目-导出已编译的二进制文件。
这样就会在.uno旁边生成一个bin。
上传上去后,串口会看到上传进度,然后大概等个5s,不是32死了,是在重跳转,自动就到了新的程序段。、
我是用昨天的mqtt做的实验,由于mqtt中没有带这段ota程序,因此一旦烧写了新的程序,那么原来上传网页的程序不再存在,所以也不能再上传。
当然如果希望esp32在随时都有ota功能,那么就需要在编写时带上这段OTA程序。
网上有些用其他工具的,但是我觉得OTA功能是ESP32必须在代码段带的功能,引导区应该带不了wifi OTA这么大的段,所以这段程序不管用何种工具,都跑不掉,所以老老实实ctrl c /v是看似笨,实际简单的办法。
rst地方是自动重启的地方,是两个代码的分界。
还剩最后的COAP,留给明天。