esp32 OTA远程无线升级

AI摘要

本教程详细介绍了如何使用ArduinoIDE为ESP32编译生成.bin固件,并通过巴法云进行远程固件上传及设备远程升级。首先,编译程序导出二进制文件,然后在巴法云创建主题并上传固件。最后,通过HTTPUpdate库实现设备接收到特定指令时自动升级固件。

第一步、编译生成.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 = "http://bin.bemfa.com/b/3BcN2Q1NGY4NWFmNDI5NzZlZTNjMjY5M2U2OTJhNmJiNTk=esp32bin.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();                              //开始升级
}

/**
 * 循环函数
 */
void loop() {

}



//当升级开始时,打印日志
void update_started() {
  Serial.println("CALLBACK:  HTTP update process started");
}

//当升级结束时,打印日志
void update_finished() {
  Serial.println("CALLBACK:  HTTP update process finished");
}

//当升级中,打印日志
void update_progress(int cur, int total) {
  Serial.printf("CALLBACK:  HTTP update process at %d of %d bytes...\n", cur, total);
}

//当升级失败时,打印日志
void update_error(int err) {
  Serial.printf("CALLBACK:  HTTP update fatal error code %d\n", err);
}

/**
 * 固件升级函数
 * 在需要升级的地方,加上这个函数即可,例如setup中加的updateBin(); 
 * 原理:通过http请求获取远程固件,实现升级
 */
void updateBin(){
  Serial.println("start update");    
  WiFiClient UpdateClient;
  
  //如果是旧版esp32 SDK,需要删除下面四行,旧版不支持,不然会报错
  httpUpdate.onStart(update_started);//当升级开始时
  httpUpdate.onEnd(update_finished);//当升级结束时
  httpUpdate.onProgress(update_progress);//当升级中
  httpUpdate.onError(update_error);//当升级失败时
  
  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();//执行升级函数
    }

示例二完整程序下载:点击下载

由于固件链接地址是不变的,所以就算重新上传了固件,也可以一直持续向上升级。

相关推荐

ESP8266读DHT11温湿度,开发微信小程序实时显示

ESP8266读DHT11温湿度,开发微信小程序实时显示第一、原理讲解第二、ESP8266读取DHT11第三、温湿度推送到云端第四、微信小程序开发第一、原理讲解原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步。app inventor 订阅这个主题,因为app inventor 制作的app 订阅了这个主题,就可收到来自这个主题的消息,也就是可以收到温湿度数值。app控制原理:esp8266订阅了一个主题,app往这个主题发消

巴法云 4万+

(开源)微信小程序控制esp8266

微信小程序控制esp8266第一、远程App控制或手动控制下载esp8266示例程序第二、微信小程序开发流程说明:首先要使esp8266能够联网,能联网就可以控制,使用示例程序,修改WIFI、密钥等信息即可联网控制。微信小程序控制是使用http协议完成,通过接口实现对ESP8266的控制。第一、远程App控制或手动控制下载esp8266示例程序下载地址: 点击下载本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转程序下

巴法云 5万+

esp32-cam图片上传巴法云,http协议传输post

esp32-cam图片上传,http协议传输1、ESP32-cam开发环境配置2 、程序下载连线3、 控制台查看图片4 、(附)发布订阅模式1、ESP32-cam开发环境配置本例程 是利用arduino IDE开发,关于arduino IDE 的esp32环境配置可参考:环境配置: 点击跳转安装好esp32 环境,开发板选择esp32 wrover module开发板,其他默认即可。2 、程序下载示例程序下载:点击下载需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。

巴法云 2万+

利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示

利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示原理讲解ESP8266读取各种传感器数值传感器数据推送到云端app inventor 制作app 接收实时数据关键程序讲解效果展示原理讲解原理简述:利用发布订阅模式。第一步,先ESP8266获取各种传感器数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步。app inventor 订阅这个主题...

巴法云 2万+

(开源)ESP8266改装小风扇,手机app远程控制+天猫精灵控制

ESP8266改装小风扇,app控制+天猫精灵控制材料准备拆解风扇第一 下载ESP8266示例(arduino ide 编程开发)第二 修改demo例程关于主题topic第三 app inventor 开发第四 天猫精灵控制材料准备USB风扇一个ESP8266一块3.3继电器一块拆解风扇第一次,没有经验,后面全给撬没了,引出电源线即可,由于操作的时候太暴力,直接引出了电机线。。。...

巴法云 1万+

(远程控制)App inventor 编写安卓app控制 ESP8266

App inventor 编写安卓app控制 ESP8266第一 下载ESP8266示例(arduino ide 编程开发)第二 修改demo例程第三 app inventor 开发原理简述:利用发布订阅模式,即:ESP8266 订阅了一个主题,再利用app inventor 编写得app 往这个主题发布消息,由于ESP8266 订阅了这个消息,所以就可以收到app发布得消息,从而执行相应得动作...

巴法云 3万+

利用天猫精灵控制ESP8266(NodeMCU开发板)arduino ide开发

利用天猫精灵控制NodeMCU(ESP8266)(ESP12F)第一 下载demo例程第二 修改demo例程第三 绑定天猫精灵第三 天猫精灵控制ESP8266第四 扩展操作使用微信小程序控制App inventor 编写安卓app控制第一 下载demo例程下载地址: 点击下载本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: ...

巴法云 1万+

巴法esp32蓝牙配网

巴法 App 蓝牙配网这套方案,对于 ESP32 开发板来说是比较友好的。它的核心并不在于协议有多复杂,而在于流程统一、状态明确、接入成本低。BLE 广播要规范GATT 的WRITE和NOTIFY要稳定JSON 命令格式要统一WiFi 联网状态要持续回传配网完成后要及时收尾如果你正在做巴法云智能硬件,尤其是灯、插座、开关、传感器这类 ESP32 设备,那么蓝牙配网是很值得优先采用的一种方式。ESP32 Arduino 蓝牙配网完整示例代码NimBLE 版本配网最小工程。

巴法云 1414

巴法云接入Home Assistant

巴法云 是一个流行的物联网云平台,提供了简单易用的设备接入方案。许多ESP8266、ESP32等开发板的智能家居项目都选择使用巴法云作为云端服务。Home Assistant 是目前最流行的开源智能家居平台之一,支持数千种智能设备的接入。它提供了统一的控制界面、强大的自动化功能和完善的生态系统。

巴法云 5925

ESP32-C6接入巴法云,Arduino方式

配网时,会自动把用户私钥发送到esp32-c6开发板,设备拿到用户私钥,会自动创建主题,该程序可配合TCP协议或MQTT协议进行远程控制。,表示开发板已经进入配网模式,即可进行配网测试,可以下载巴法app进行配网。注意:如果是旧版ESP32的SDK,可能没有esp32-c6的开发板选项,需要安装新版的SDK库,新版下载地址可见上面第二步。如需重新配网,可连续重启5次,可清除配网信息,或在需要清除配网信息的地方,调用函数:restoreFactory()大约等待几分钟即可安装成功,电脑性能越好,安装越快。

巴法云 1万+

手机app控制esp32-cam拍照上传,tcp和mqtt协议

1、示例说明往期课程:第一讲:esp32-cam图片上传第二讲:esp32-cam图片上传,安卓app显示第三讲:esp32-cam图片上传,微信小程序显示本期课程是第四讲,在使用这个示例前,最好先实现前几节课的esp32-cam自动拍照上传,然后在可以拍照上传的基础上,实现使用手机app控制拍照上传。2、原理讲解采用订阅\发布模式。首先esp32通过tcp或者mqtt服务,订阅xxx主题,订阅之后,就可以接收到发往xxx主题的消息,app向xxx主题发送消息,esp32订阅之后就可以收到消息

巴法云 1万+

树莓派接入巴法云

最近有小伙伴咨询树莓派接入的问题,其实简单,使用直接在树莓派中运行python程序就可以。示例说明:示例中使用的python3.x版本,如果是2.x版本的python,运行前把 print 指令的()括号去掉,应该就可以了。如果需要控制树莓派io引脚,推送使用 RPi.GPIO ,百度上面教程很多,这里就不细说了。第一,tcp协议连接说明:tcp服务器地址:bemfa.com 端口 8344tcp协议详细订阅、发布指令,见接入文档:点击跳转# -*- coding: utf-8import s

巴法云 3600

esp8266 接入 Amazon alexa智能家居

esp8266 接入 Amazon alexa智能家居第一步 下载程序到esp8266第二步 alexa控制第三步 (附)开源app控制第一步 下载程序到esp8266下载地址: 点击下载本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转程序下载好,需要修改的信息有:需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。//********************需要修改的部分*********

巴法云 1万+

ap配网示例,esp8266和esp32微信小程序ap配网

第一、下载程序esp8266示例程序:: 点击下载esp32示例程序:: 点击下载示例程序是利用arduino IDE开发:关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转第二、微信小程序配网微信内搜索小程序 一键配网,切换到SoftAp配网协议,或者扫描下方ap配网的专用码,扫码进去的不需要手动切换配网协议:第三、配网步骤说明当单片机烧写进去配网程序后,应该就处在配网模式,

巴法云 1万+

MircoPython接入巴法云,esp8266和esp32

第一、搭建MircoPython开发环境下载 micropython 环境包:点击下载下载后解压,首先双击打开 uPyCraft 软件,刷入固件,首先点击 tools–>BurnFirmware ,再选择esp8266或者esp32,选择开发板端口,选择需要刷入的固件,固件在下载的环境包中,点击ok即可刷入,如下图所示:等待进度条走完就刷入成功了。附,其他链接:单片机串口驱动:点击下载micropython官方文档:点击跳转第二、hello world 程序测试点击file–new

巴法云 1万+

【巴法云】开源安卓App控制ESP8266,通过MQTT协议,APP Inventor 开发

【巴法云】APP Inventor 开发安卓app,通过MQTT控制ESP8266第一 下载ESP8266示例(arduino ide 编程开发)第二 修改demo例程第三 app inventor 开发原理简述:利用发布订阅模式,即:ESP8266 订阅了一个主题,再利用app inventor 编写得app 往这个主题发布消息,由于ESP8266 订阅了这个消息,所以就可以收到app发布得消息,从而执行相应得动作。基于MQTT协议,ESP8266通过MQTT连接到服务器,app也同样通过MQTT连接

巴法云 5万+

esp8266 OTA远程无线升级

第一步、编译生成.bin升级固件本教程需要用到 arduino IDE的esp8266开发环境,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转如果已安装好esp8266 开发环境,继续:使用arduino IDE软件,打开随便一个需要升级的程序,点击「项目」-「导出已编译的二进制文件」即可生成.bin固件,如下图。生成的固件在程序所在文件夹中如下图所示:第二步、上传.bin固件到巴法云在巴法云控制台 ,点击跳转,随便新建个主题,例如 主题 light002,

巴法云 1万+

(巴法云)小程序一键配网,自动生成密钥和主题

第一,Airkiss协议示例程序下载:点击下载本程序使用arduino ide 开发,使用前需按照arduino esp8266开发环境:安装教程程序下载完成后,可扫码进行配网,或者微信搜索《一键配网》小程序。如下图:配网说明:使用《一键配网》小程序进行配网,当进行配网时,小程序会根据微信已经绑定的巴法云账号,自动创建用户私钥和主题,当微信未注册巴法云账号时,微信小程序会自动创建你的巴法云账号,以后在电脑端使用巴法云时,使用微信扫码登录即可。当配网后需要重新配网:ESP8266连续按5次rese

巴法云 1万+

python接入巴法云,TCP协议,MQTT协议示例

第一,tcp协议连接说明:tcp服务器地址:bemfa.com 端口 8344# -*- coding: utf-8import socketimport threadingdef connTCP(): global tcp_client_socket # 创建socket tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # IP 和端口 server_ip =

巴法云 8036

lua语言开发esp8266接入巴法云,mqtt和tcp协议

第一步,lua语言开发环境配置下载安装jave环境,下载地址:点击下载选择windows版本下载安装即可,如图所示:

巴法云 6712

esp32-cam拍照上传,app inventor 制作安卓app实时显示

esp32-cam拍照上传,app inventor 制作安卓app实时显示1、ESP32-cam开发环境配置2 、程序下载连线3、 控制台查看图片第四、app 开发1、ESP32-cam开发环境配置本例程 是利用arduino IDE开发,关于arduino IDE 的esp32环境配置可参考:环境配置: 点击跳转安装好esp32 环境,开发板选择esp32 wrover module开发板,其他默认即可。2 、程序下载示例程序下载:点击下载需要修改的信息有WIF名称,WIFI密码,用户私钥U

巴法云 1万+

巴法云 mixly 扩展库

第一,安装扩展库扩展库下载链接:点击下载下载完成后解压,在mixly软件中,选择「导入库」→「本地导入」,选择解压文件夹中的「Bemfa.xml」即可。或者使选择云端导入,点击「巴法云」导入即可。第二,tcp协议使用教程一、订阅控制订阅主题light002,收到 on 打印“turn on light”,收到 off 打印“turn off light”。二、可订阅多个主题订阅主题 light002 和 outlet001 主题 , 可根据不同的主题,执行不同的动作。三、推送消息在需要

巴法云 1万+

esp8266接入小爱同学,通过mqtt

原理:esp8266连接mqtt服务,并订阅mqtt的主题,当通过小爱语音发出指令,相当于mqtt的消息推送,由于esp8266订阅了主题,就可以收到小爱同学推送的消息,从而进行控制esp8266。第一步 下载程序到esp8266下载地址: 点击下载本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转程序下载好,需要修改的信息有:需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。//*****

巴法云 2万+

esp8266接入小度语音,小度音箱控制,附开源app控制

超简单,两步完事第一步 下载程序到esp8266第二步 绑定到小度第三步 (附)开源app控制第四步 微信小程序控制:第一步 下载程序到esp8266下载地址: 点击下载本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转程序下载好,需要修改的信息有:需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。//********************需要修改的部分******************

巴法云 8374

微信小程序 airkiss 配网,SmartConfig配网,ap配网教程

第一步,下载配网程序到esp8266arduinoIDE开发:esp8266程序下载可参考:https://bemfa.blog.youkuaiyun.com/article/details/117717525此程序是arduino ide开发,由于8266SDK在arduino限制,使用arduino开发的程序默认使用的是airkiss配网,不支持SmartConfig协议。esp8266 SDK开发:在esp8266 SDK开发中,支持airkiss和SmartConfig这两种协议,例程可参考SDK中的

巴法云 9838

巴法云官方微信小程序,控制esp8266

第一,使用教程微信内搜索小程序 巴法云,或者扫下方二维码进入。如果使用过微信扫码登录巴法云,或者在巴法云控制台绑定过微信,打开小程序后,设备都会自动同步到小程序,目前仅支持灯、插座、风扇类型的设备,当主题名字后三位是001时为插座设备。当主题名字后三位是002时为灯泡设备。当主题名字后三位是003时为风扇设备。界面如下图所示:长按设备,可以进行设备分享、删除、中文命名,定时等操作,中文名称可以用于智能音箱的控制,如下图所示:第二,esp8266 使用可参考博客中的其他文章:博客主

巴法云 1万+

巴法云esp8266接入home assistant,通过mqtt

第一步,home assistant 配置采用 mqtt 接入方式,找到 home assistant 的配置文件 configuration.yaml,在里面加入巴法云mqtt的配置信息,如下所示:# mqtt服务设置mqtt: # MQTT Broker的IP地址或者域名 broker: bemfa.com # MQTT Broker的端口号 port: 9501 #客户端ID client_id: 7d54f85af42976ee3c2693e692a6bb59 #

巴法云 1万+

app inventor 2022离线版下载使用教程

第一步,下载需登录后下载下载连接:点击下载第二步,安装双击下载好的文件进行安装,接受并点击next,如下图:

巴法云 2万+

ESP8266微信一键配网smartconfig,esp32可用

ESP8266微信一键配网smartconfig第一步 下载程序微信配网恢复出厂设置ESP32 接入第一步 下载程序简单配网例程:点击下载配网并控制LED例程:点击下载例程下载后,需要使用arduino ide 软件打开,并且安装esp8266开发环境。关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转。如果是配网程序可以使用第一个,什么都不需要修改。如果需要配网并通过巴法云控制LED,可下载第二个程序,但是需要把程序中的用户密钥和主题修改为自己的。//*****

巴法云 1万+

esp32-cam拍照上传,微信小程序照片显示

esp32-cam图片上传,http协议传输1、ESP32-cam开发环境配置2 、程序下载连线3、 控制台查看图片4 、(附)发布订阅模式1、ESP32-cam开发环境配置本例程 是利用arduino IDE开发,关于arduino IDE 的esp32环境配置可参考:环境配置: 点击跳转安装好esp32 环境,开发板选择esp32 wrover module开发板,其他默认即可。2 、程序下载示例程序下载:点击下载需要修改的信息有WIF名称,WIFI密码,用户私钥UID,设备主题topic。

巴法云 1万+
上一篇: esp8266 OTA远程无线升级
下一篇: 【巴法云】开源安卓App控制ESP8266,通过MQTT协议,APP Inventor 开发
巴法云
巴法云 企业官方账号 企业官方账号
博客等级 码龄8年 3169粉丝 58原创
评论 24
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值