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输出信息。
编译后,可以在输出信息的窗口中最后一行看到一个临时目录。
在此目录下,可以找到WebUpdater.ino.bin文件。
2.3 运行
COM输出log如下:
2.4上传bin文件
使用Chrome打开URL后,可以上传bin文件。
上传成功后,开发板会自动重启,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