基于mixly2.0的update用户库(自制)(ESP32)
基于mixly2.0的update用户库(自制)(ESP32)
Hello,大家好!我最近在开发一款智能门锁,而它是基于ESP8266和ESP32的,而这两款模组可以连网从而获取网络上的一些信息和数据。据此,我打算使用ESP8266和ESP32的OTA更新功能(因为我所设计的门锁为了节省经费和增加项目的稳定性并没有加入下载电路)。
一开始我只是想用巴法云在mixly2.0中内置的OTA更新模块库,但又转念一想,如果它能获取固件的版本号并可以向小米等智能产品一样实现自动检查更新就好了,于是就有了今天的这篇文章和基于mixly2.0的update用户库(自制)。接下来,让我们一起来看一看吧!
但由于这个用户库不能同时兼容ESP32和ESP8266,所以我做了两个用户库以分别适用于ESP32和ESP8266。
这次我们来说说适用于ESP32的update1.31用户库
1、声明变量
subscribe_topic:订阅主题的topic(可与OTA的不一致,如果为同一个topic,则subscribe_topic与OTA_topic一致)
OTA_topic:OTA对应的主题
OTA_uid:OTA更新对应的UID(即私钥,填写OTA所在账户的UID)
OTA_url:去获取OTA固件详细信息的URL (不需要更改)
Version:当前程序的版本号
new_version:获取到的新版本号,不需要填写
otaurl:获取到的用于OTA的URL,不需要填写
2、WIFI自动重连
3、调用库文件
4、WIFI重置
wifiManager.resetSettings()用于WIFI信息重置
ESP.restart()用于ESP32的重启
5、主程序
程序逻辑:如果WIFI连接成功,则连接到巴法云的TCP服务(私钥需要登录巴法云来获取,此UID为订阅的主题所对应的账户UID,与OTA_uid区分,但如果OTA所在的账户与订阅的主题所对应的账户一致,则两UID一致),当连接到TCP服务后,程序会订阅我们所规定的topic(详见1、声明变量)。在这之后,程序会监听TCP的信息,当我们在巴法云发送update后,程序会检查版本情况,如有新版本,程序会进行更新;当我们在巴法云发送check后,程序只会获取新版本并通过串口打印出来。
6、初始化
在程序刚刚开始时,程序会尝试配网并联网
7、函数check_update
此函数为OTA的主函数,使用此函数前请先拖拽出Get_version函数(详见下一节)
8、函数Get_version
此函数目的为获取最新版本号,使用函数check_update前请先拖拽出本函数
9、定时自动更新
如有侵权,请联系删除。
未经允许,禁止转载,
如需使用,请注明出处