欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ESP8266 在线升级 OTA Arduino IDE 的 WebServer 实现方法

最编程 2024-03-28 14:15:14
...

1 安装及配置Arduino IDE开发ESP8266的环境

参考《如何利用Arduino IDE开发ESP8266程序?》https://www.jianshu.com/p/d236f8983871

2 利用WebServer上传文件实现OTA

2.1 修改sample代码

在【File】-【Examples】-【ESP8266HttpWebServer】下,打开WebUpdater工程。
修改代码中的宏值为本地的WiFi信息

#define STASSID "your-ssid"
#define STAPSK  "your-password"

并对原demo中几处做出修改,如:Wifi改为STA模式,建立WiFi链接是增加等待避免重复链接,删除MDNS等。
完整代码参考如下:

/*
  An OTA sample for ESP8266 by Victor.Cheung
*/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPUpdateServer.h>

#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK  "your-password"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

ESP8266WebServer httpServer(80);
ESP8266HTTPUpdateServer httpUpdater;

void setup(void) {

  Serial.begin(115200);
  Serial.println();
  Serial.println("Booting Sketch...");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  Serial.print("Connecting...");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(300);
  }

  Serial.println();

  httpUpdater.setup(&httpServer);
  httpServer.begin();

  Serial.print("HTTPUpdateServer ready! Open http://");
  Serial.print(WiFi.localIP());
  Serial.println("/update in your browser");
}

void loop(void) 
{
  httpServer.handleClient();
}

2.2 获取bin文件

在IDE配置中启用compilation输出信息。


启用compilation

编译后,可以在输出信息的窗口中最后一行看到一个临时目录。


获取文件目录

在此目录下,可以找到WebUpdater.ino.bin文件。

2.3 运行

COM输出log如下:


log

2.4上传bin文件

使用Chrome打开URL后,可以上传bin文件。


image.png

上传成功后,开发板会自动重启,OTA完成。


OTA成功

ESP8266相关文章阅读

《利用USB转TTL链接mini ESP8266进行开发和调试》 https://www.jianshu.com/p/2207a44dedc5
《ESP8266在线升级OTA的Arduino IDE实现方法之WebServer》 https://www.jianshu.com/p/b54b18f56d6a
《ESP8266串口数据错误不准确问题的解决》https://www.jianshu.com/p/7ddefcfc2acd
《如何利用Arduino IDE开发ESP8266程序?》https://www.jianshu.com/p/d236f8983871
《将ESP8266通过MQTT协议链接阿里云IoT物联网平台》 https://www.jianshu.com/p/4d6e216c2280