arduino esp8266 ota 资料

本文详细介绍了如何在ESP8266设备上实现自我更新的OTA固件升级过程。通过设置版本号常量,编译并导出二进制镜像,设备能够检查并下载最新的固件版本进行自动更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.yfrobot.com/thread-11979-1-1.html

https://www.jianshu.com/p/fd9033750b1f

https://www.cnblogs.com/kekeoutlook/p/10618063.html

https://www.wandianshenme.com/play/arduino-ota-arduino-ide-ota-upgrade-esp8266-application/
上个的原文是下面的
https://www.bakke.online/index.php/2017/06/02/self-updating-ota-firmware-for-esp8266/

https://blog.csdn.net/xh870189248/article/details/80095139

ota
发布固件镜像
在所有的函数外,将一个版本号常量变量添加到您的程序。每当您准备发布时,请按您选择的任何约定来增加此版本号,例如每次简单增加一个,或基于当前日期和增加的内部版本号等更复杂的规则。

const int FW_VERSION = 1244;

编译程序(Ctrl + R),然后导出二进制文件。(Ctrl + Alt + S)导出二进制文件,将生成一个镜像文件到您的程序所在的相同文件夹中。实际名称将取决于您正在编译的特定电路板

void checkForUpdates() {
  String mac = getMAC();
  String fwURL = String( fwUrlBase );
  fwURL.concat( mac );
  String fwVersionURL = fwURL;
  fwVersionURL.concat( ".version" );

  Serial.println( "Checking for firmware updates." );
  Serial.print( "MAC address: " );
  Serial.println( mac );
  Serial.print( "Firmware version URL: " );
  Serial.println( fwVersionURL );

  HTTPClient httpClient;
  httpClient.begin( fwVersionURL );
  int httpCode = httpClient.GET();
  if( httpCode == 200 ) {
    String newFWVersion = httpClient.getString();

    Serial.print( "Current firmware version: " );
    Serial.println( FW_VERSION );
    Serial.print( "Available firmware version: " );
    Serial.println( newFWVersion );

    int newVersion = newFWVersion.toInt();

    if( newVersion > FW_VERSION ) {
      Serial.println( "Preparing to update" );

      String fwImageURL = fwURL;
      fwImageURL.concat( ".bin" );
      t_httpUpdate_return ret = ESPhttpUpdate.update( fwImageURL );

      switch(ret) {
        case HTTP_UPDATE_FAILED:
          Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
          break;

        case HTTP_UPDATE_NO_UPDATES:
          Serial.println("HTTP_UPDATE_NO_UPDATES");
          break;
      }
    }
    else {
      Serial.println( "Already on latest version" );
    }
  }
  else {
    Serial.print( "Firmware version check failed, got HTTP response code " );
    Serial.println( httpCode );
  }
  httpClient.end();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值