esp32OTA远程⽆线升级,巴法云
第⼀步、编译⽣成.bin升级固件
本教程需要⽤到 arduino IDE的esp32开发环境,关于arduino IDE 的ESP32环境配置可参考:环境配置:
如果已安装好esp32 开发环境,继续:
使⽤arduino IDE软件,打开随便⼀个需要升级的程序,点击「项⽬」-「导出已编译的⼆进制⽂件」即可⽣成.bin固件,如下图。⽣成的固件在程序所在⽂件夹中如下图所⽰:
第⼆步、上传.bin固件到巴法云
在巴法云控制台,,随便新建个主题,例如主题 light002,如下图所⽰:
然后点击OTA,如下图所⽰:
进去后,点击上传固件,到刚刚⽣成的固件上传即可,上传后复制固件链接,如下图:
第三步、远程升级
唯⼀的要求:等待升级的esp32有⽹就⾏。
⽰例⼀:
最简单测试版本:
程序流程讲解:开机-->等待联⽹-->成功联⽹-->升级。
如下:
#include <WiFi.h>
#include <HTTPUpdate.h>
/******需要修改的地⽅****************/
#define wifi_name "newhtc" //WIFI名称,区分⼤⼩写,不要写错
#define wifi_password "qq123456" //WIFI密码
//固件链接,在巴法云控制台复制、粘贴到这⾥即可
String upUrl = "bin.bemfa/b/3BcN2Q1NGY4NWFmNDI5NzZlZTNjMjY5M2U2OTJhNmJiNTk=light002.bin";
/**********************************/
/**
* 主函数
*/
void setup() {
Serial.begin(115200); //波特率115200应急演练总结
WiFi.begin(wifi_name, wifi_password); //连接wifi
while (WiFi.status() != WL_CONNECTED) { //等待连接wifi
delay(500);
Serial.print(".");
}
合同终止协议
联想家用台式机火车票预定时间updateBin(); //开始升级
uv是什么}
欢乐颂大结局是什么/**
* 循环函数
*/
void loop() {
}
/**
* 固件升级函数
* 在需要升级的地⽅,加上这个函数即可,例如setup中加的updateBin();
* 原理:通过http请求获取远程固件,实现升级
*/
void updateBin(){
Serial.println("start update");
WiFiClient UpdateClient;
t_httpUpdate_return ret = httpUpdate.update(UpdateClient, upUrl);
switch(ret) {
case HTTP_UPDATE_FAILED: //当升级失败
Serial.println("[update] Update failed.");
break;
case HTTP_UPDATE_NO_UPDATES: //当⽆升级
Serial.println("[update] Update no Update.");
break;
case HTTP_UPDATE_OK: //当升级成功
Serial.println("[update] Update ok.");
break;
}
}
⽰例⼆:
采⽤远程指令控制是否升级,可先了解远程控制灯的程序,
例如通过app控制esp32开关灯:
app采⽤发送on、off的指令,当esp32收到on,执⾏开灯,当esp32收到off,执⾏关灯。如果开关灯没问题,我们当然也可以发⽣其他指令,我们可以随便假设个指令,让esp32收到该指令,执⾏固件升级即可。
例如收到指令update,执⾏升级函数
if(getMsg == "on"){ //如果收到指令on==打开灯
turnOnLed();
}else if(getMsg == "off"){ //如果收到指令off==关闭灯
turnOffLed();
}else if(getMsg == "update"){ //如果收到指令update
updateBin();//执⾏升级函数
}
⽰例⼆完整程序下载:
由于固件链接地址是不变的,所以就算重新上传了固件,也可以⼀直持续向上升级。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论