ESP8266 OTA之浏览器更新

简介: ESP8266的浏览器更新的过程是这样的用ESP8266先建立一个Web服务器然后提供一个更新界面(ESP8266HTTPUpdateServer)通过Arduino将源文件编译为*.

ESP8266的浏览器更新的过程是这样的

  1. 用ESP8266先建立一个Web服务器然后提供一个更新界面(ESP8266HTTPUpdateServer)
  2. 通过Arduino将源文件编译为*.bin的二进制文件
  3. 通过mDNS功能在浏览器中访问ESP8266的服务器页面(如:http://esp8266.local/update)
  4. 通过Web界面将本地编译好的*.bin二进制固件文件上传到ESP8266中
  5. 上传完成编译文件后ESP8266将固件写入Sketch中

先刷入以下代码

/**
/*
  To upload through terminal you can use: curl -F "image=@firmware.bin" esp8266-webupdate.local/update
*/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>

const char* host = "esp8266-webupdate";
const char* ssid = "........";
const char* password = "........";

ESP8266WebServer httpServer(80);
ESP8266HTTPUpdateServer httpUpdater;

void setup(void) {

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

  while(WiFi.waitForConnectResult() != WL_CONNECTED){
    WiFi.begin(ssid, password);
    Serial.println("WiFi failed, retrying.");
  }

  MDNS.begin(host);

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

  MDNS.addService("http", "tcp", 80);
  Serial.printf("HTTPUpdateServer ready! Open http://%s.local/update in your browser\n", host);
}

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

然后在偏好设置中的Show verbose output dump选项中选中"Complation"

当固件刷新后,打开串口调试器就可以看到OTA的更新页面的地址:

直接在浏览器打开该地址:

是不是很丑?而且你是无法进行任何的美化的!

对代码进行编译,在最后就会出现便宜后的二进制格式的固件更新文件:

回到浏览器点击"Choose file" 按钮就可以将固件上传到ESP8266中去:

更新结束。

结论

这种更新模式其实只适用于在开发期的一些应急的场景,例如:ESP8266已安装到原型机或者产品内且

  1. 无法与电脑相连进行直接的固件刷新。
  2. 无法直接连接更新服务器进行固件更件

这种更新界面是无法提供给最终用户使用的,因为要进行固件更新的话用户得先获得固件的文件,然后还得通过一个非常丑的Web页面将文件上传上去。所以说这种方式只能给开发人员在应急的情况下将就地用一下。

相关文章
|
Prometheus 监控 前端开发
prometheus|云原生|grafana-9.4.3版本的主题更改
prometheus|云原生|grafana-9.4.3版本的主题更改
2273 0
|
存储 小程序 JavaScript
云开发(微信-小程序)笔记(五)----云函数,就这(上)
云开发(微信-小程序)笔记(五)----云函数,就这(上)
1702 0
|
21天前
|
人工智能 运维 自然语言处理
AI Agent 全面解析:架构范式、核心组件与工程落地实践
摘要:大模型的能力参数已经不再是工程讨论的重心,真正决定项目成败的问题变成了"如何让模型稳定地把一件多步骤的事做完"。本文给出一份尽量完整的 Agent 解析:先厘清 Agent 与对话机器人、工作流、Copilot 的边界,再拆解规划、记忆、工具、反思四大核心组件,沿着 ReAct、Plan-and-Execute、Reflexion 到多 Agent 协作的范式演进观察架构取舍,随后讨论上下文工程、工具层协议、评测与可观测性这些真正决定落地质量的环节,并整理六类高频故障模式与对应的防护手段。全文不涉及具体产品选型,只讨论可以复用的技术判断。
|
2月前
|
数据采集 人工智能 SEO
零基础小白,开展 GEO 优化第一步应该干什么?
越来越多个人运营者、中小企业开始布局GEO(生成式引擎优化),但绝大多数零基础新手起步思路完全错误:一上来就写内容、批量发稿、折腾代码配置,忙活很久却零曝光、零AI引用。本文基于实战落地经验,清晰讲解零基础开展GEO优化的正确第一步,梳理标准化起步流程与新手避坑要点,帮助普通人快速入门、高效落地AI搜索新流量。
|
Web App开发 应用服务中间件 nginx
利用Simple-RTMP-Server(SRS)来进行直播
1、下载SRS 官方地址:http://www.ossrs.net/srs.release/releases/ 百度地址:http://pan.baidu.com/s/1kV8WQpx   2、编译安装SRS tar zxvf srs-2.0-b2.tar.gz cd srs-2.0-b2 mv trunk/ /usr/local/srs cd /usr/local/srs  ./configure --full     #--full,开启SRS所有的功能。
3396 0
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
存储 安全 API
电商API合规性:确保数据隐私与法规遵守
在数字化电商时代,API作为连接平台、商家与用户的关键枢纽,承载大量敏感数据。面对日益严格的数据隐私法规,如GDPR、CCPA和中国《个人信息保护法》,合规成为企业发展的核心挑战。本文探讨如何通过系统化方法保障电商API的数据安全与法规遵循,涵盖法规要点、技术实现与最佳实践,助力企业在合规基础上稳健发展。
|
人工智能 自然语言处理 人机交互
MagicQuill:4天斩获千颗 Star,登上Huggingface趋势榜榜首的AI P图神器
MagicQuill通过结合编辑处理器、绘画助手和创意收集器三大功能,解决了图片精准、高效编辑的难题,用户可以通过三种简单的魔法画笔(添加、删除和上色)来编辑图片。
1031 2
MagicQuill:4天斩获千颗 Star,登上Huggingface趋势榜榜首的AI P图神器
|
网络协议
BGP路由原理详解
BGP路由原理详解
1319 1
BGP路由原理详解
|
Unix 数据处理 数据库
UNIX操作系统的主要用途
UNIX操作系统的主要用途
1135 5