当前位置: 首页 > article >正文

ESP8266 WebServer③-基于AsyncElegantOTA.h网页OTA升级

目标:实现本地网页OTA升级ESP8266

技术要点:ESP8266作为AP,可以接入电脑、手机的浏览器访问

完整工程文件

 OTA升级时的网页,在地址栏里多输入/update,即可开启OTA升级界面

http://192.168.4.1/update

platformio.ini工程配置

[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
board_build.filesystem = littlefs
monitor_speed = 115200
upload_speed = 921600
lib_deps = me-no-dev/ESPAsyncTCP@^1.2.2esphome/ESPAsyncWebServer-esphome@^2.1.0ayushsharma82/AsyncElegantOTA@^2.2.6

 源码

#ifdef ESP32
#include <WiFi.h>
#include <AsyncTCP.h>
#else
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#endif#include "ESPAsyncWebServer.h"#include "FS.h"
#include <LittleFS.h>#include <AsyncElegantOTA.h>
const int led_output = 2;AsyncWebServer server(80);const char *ssid = "ESP8266热点";
const char *password = "12345678";void setupServer()
{server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){request->send(LittleFS, "/index.html","text/html", false); Serial.println("Client Connected"); });// Receive an HTTP GET requestserver.on("/ON", HTTP_GET, [](AsyncWebServerRequest *request){digitalWrite(led_output, LOW);request->send(200, "text/plain", "OK"); });// Receive an HTTP GET requestserver.on("/OFF", HTTP_GET, [](AsyncWebServerRequest *request){digitalWrite(led_output, HIGH);request->send(200, "text/plain", "OK"); });
}void setup()
{// your other setup stuff...Serial.begin(115200);pinMode(led_output, OUTPUT);digitalWrite(led_output, HIGH);if (!LittleFS.begin()){Serial.println("An Error has occurred while mounting LITTLEFS");return;}Serial.println();Serial.println("Setting up AP Mode");WiFi.mode(WIFI_AP);WiFi.softAP(ssid, password);IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);setupServer();// more handlers...AsyncElegantOTA.begin(&server);server.begin();Serial.println("All Done!");
}void loop()
{
}

网页文件

<!DOCTYPE HTML><html><head><title>ESP Web Server</title><meta name="viewport" content="width=device-width, initial-scale=1"/><meta charset="UTF-8"><style>body { font-family: Times New Roman; text-align: center; margin:0px auto; padding-top: 30px;}.button {padding: 10px 20px;font-size: 24px;text-align: center;outline: none;color: #fff;background-color: #ff0522;border: none;border-radius: 15px;cursor: pointer;-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-tap-highlight-color: rgba(0,0,0,0);}  .button:hover {background-color: #ff0522 }.button:active {background-color: #1fe036;transform: translateY(2px);}</style></head><body><h1>ESP瞬时开关服务器</h1><button class="button" onmousedown="toggleCheckbox('ON');" ontouchstart="toggleCheckbox('ON');" onmouseup="toggleCheckbox('OFF');" ontouchend="toggleCheckbox('OFF');">瞬时开关:按压开启</button><script>function toggleCheckbox(x) {var xhr = new XMLHttpRequest();xhr.open("GET", "/" + x, true);xhr.send();}</script></body>

 编译文件系统,第一次串口上传

重点说明一下(由于本人对HTML不熟悉):

 网页第5行没写的话,中文在网页上显示是乱码,添加之后正常显示。

菜鸟教程关于HTML <meta> 标签说明

现把网页修改一下,然后通过网页OTA升级文件系统

红线处是改动的地方,修改后保存。

 画红线的是Build Filesystem Image生成的文件系统,其显示了存放的位置和文件名称。只要把littlefs.bin文件通过WIFI上传到ESP8266即可完成OTA升级。

 具体步骤参看动图,

成功后显示画面,表明升级成功

http://www.lryc.cn/news/2413984.html

相关文章:

  • javascript高仿热血传奇游戏
  • 802.1D第一版出炉
  • Android开发-android:gravity和android:layout_Gravity属性的用法
  • 测试工具整理(3)——单元测试
  • 计算机网络的组成及通信子网和资源子网的划分
  • Java使用XDOC实现word,pdf等格式的生成及转换
  • 简单认识NHibrenate
  • OpenCV的copyTo()函数讲解及应用
  • ASP.Net学习心得
  • 用 Gmail 的 SMTP 发送邮件
  • 启动应用程序出现msflxgrd.ocx找不到问题解决
  • 鸿蒙原生应用元服务-访问控制(权限)开发工作流程相关
  • main.js_vue
  • 又一个好用的嵌入式设计框架
  • C#上下文菜单(右键菜单)ContextMenuStrip用法总结
  • 基于STC12C5A60S2系列1T 8051单片机的TM1637键盘数码管模块的数码管显示与TM1637芯片连接的按键的按键值的功能
  • JAX-WS 介绍 【转载】
  • 东方航空航班如何值机?
  • location.hash属性介绍
  • 键盘打字指法规范(附图解)
  • 什么是webservice
  • 数据中心日常运维主要工作内容具体包括哪些方面呢?
  • Windows系统缺少丢失mscoree.dll文件如何解决的?
  • 如何扩容C盘?6种扩展C盘方法!
  • process.waitfor()超时配置
  • Structs2学习(三)
  • win怎么查看linux文件,Windows下查看LINUX ext2/ext3格式的三种常用方法(图解)
  • Element UI --- Select下拉框多选页面数据不更新问题
  • ComponentOne Crack,componentone控件集
  • 【迅搜18】扩展(一)Xapian官方文档学习