资料介绍
描述
背景
当您将数百个设备部署为 IoT 项目的一部分时,问题是如何将它们接入客户的网络并为设备提供最新的特定固件。
问题是您不知道设备将在何时何地首次启动。
设备不知道 WiFi 参数,其固件可能已过时。
这就是ColdBoot提供帮助的地方。
所有信息都可以在:https ://github.com/arkhipenko/EspColdBoot
什么是冷启动?
ColdBoot 是 ESP8266 或 ESP32 微控制器的预编译固件,能够快速收集:
- WiFi参数(SSID和密码)
- 最新配置文件的 URL
- OTA更新服务器的URL
通过简单的网络表单从最终用户那里获得。
ColdBoot 的主要目标是尽可能快速轻松地访问 Wifi 并为特定设备提供最新固件。
ColdBoot 通过连接到 USB 或串行端口的终端窗口提供逐步说明(115200 bps 设置)
如何使用:
选项 1:将预编译的二进制文件直接上传到芯片
选项 2:编译并上传提供的草图。
可选:编辑data/config.json文件并使用上传工具上传到 SPIFFS
工艺流程
第 1 步:从 SPIFFS 中读取配置
ColdBoot 尝试从设备的 SPIFFS 文件系统中读取配置文件。
配置文件应命名为“ config.json ”,并应位于根文件夹中。
配置文件是一个简单的 JSON 数组,可以定义以下参数:
- “标题” - 用于收集用户参数的 Web 表单的标题
- "SSID" - WiFi 网络 SSID
- “密码” - WiFi密码
- “Config” - 如果参数来自网络,则配置文件的 URL
- “OTA” - OTA 固件配置 HTTP 服务器的 URL
- “fields” - 要在网络表单上显示的字段数
可以定义所有字段或字段的子集。后续流程可能会受到此文件的影响。
一个示例用例:
配置文件提供 Web 表单的标题、最新配置的 URL,并将 Web 表单字段的数量限制为 2(SSID 和密码)
{
"Title" : "My Amazing IoT device",
"Config" : "http://ota.home.lan/esp/config/",
"fields" : "2"
}
注意:要使用 SPIFFS 配置功能 - 根据需要编辑提供的data/config.json文件,并使用 Arduino IDE 中的 ESP8266 SPIFFS 上传工具将 SPIFFS 图像上传到设备。
第 2 步:根据 SPIFFS 配置连接到 WIFI
如果从 SPIFFS 读取配置成功,则可能会在此处提供 SSID 和密码,因此 ColdBoot 会尝试连接到 WiFi。
如果 SPIFFS 不可用或config.json文件不可用,则跳过第 2 步。
第 3 步:用户提供配置
如果设备在步骤 2 中能够连接到 WiFi 网络,则跳过此步骤。
此时,设备会创建一个 WiFi AP 点并创建一个简单的 Web 表单,以便从用户那里收集配置参数。AP SSID 为ESP8266-或ESP32-。(例如:ESP8266-dac26e)
最终用户需要连接到 AP 并导航到http://10.1.1.1
完整的网络表单如下所示:
基于步骤 1 示例config.json文件的简化 Web 表单如下所示:
一旦用户点击提交按钮,设备就会一次又一次地尝试连接到 WiFi,直到成功。
设备将在 10 分钟不活动后重新启动。
第 4 步:从 HTTP 服务器读取配置
如果提供了配置 URL,设备将尝试从 HTTP 服务器读取和解析配置参数。
这里有两个选择:
- 您可以提供到服务器的路径,其中每个设备都存储了特定的配置文件,或者
- 您可以直接提供配置文件的路径(在这种情况下,多个设备可以读取同一个文件)
如果仅提供文件夹路径,ColdBoot将添加设备 ID 和版本,因此假定请求的配置是唯一的。例如,对于设备 ID ESP8266-dac26e,URL 将如下所示:
http ://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json
(前提是http://ota.home.lan/esp/config/是你的配置服务器)
或者,您可以指定直接文件 URL,例如:
http ://ota.home.lan/esp/config/iotdevice.json
如果ColdBoot确定未提供有效的 URL,则此步骤作为可选跳过。
第 5 步:从 OTA 服务器更新固件
此时,ColdBoot 假定存在一个指向可用的 OTA 更新服务器的有效 URL。
设备将尝试根据提供的 URL 执行 OTA 固件更新。
这里有两个选择:
- 您可以为每个设备提供存储特定二进制文件的服务器的路径,或者
- 您可以直接提供二进制文件的路径(在这种情况下,多个设备可以基于同一个文件进行更新)
如果仅提供文件夹路径,ColdBoot将添加设备 ID 和版本,因此假定 OTA 请求是唯一的。例如,对于设备 ID ESP8266-dac26e,URL 将如下所示:
http ://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin
(前提是http://ota.home.lan/esp/bin/是您的 OTA 服务器 URL)
或者,您可以指定直接文件 URL,例如:
http ://ota.home.lan/esp/bin/iotdevice.bin
第 6 步:重新启动
如果一切顺利,则不应执行第 6 步,因为设备将在第 5 步成功 OTA 更新结束时重新启动。
但是,如果 OTA 更新失败,设备将等待 10 秒并重新启动。
文件夹:
数据- 如果需要通过 SPIFFS 进行配置,则将 SPIFFS 图像上传到设备。必须在根文件夹中包含一个名为config.json的 JSON 文件。
二进制- 预编译的 esp8266 二进制(假设 4Mb 闪存大小、2Mb SPIFFS 大小、1Mb OTA 大小),可以作为制造过程的一部分直接闪存到芯片中
例子:
下面是通过 ColdBoot 配置的真实设备的终端输出。
请注意,在 OTA 完成后,应用程序 ID 会更改为success-...。
ESP8266 ColdBoot v1.0.0
ESP8266 ID: ESP8266-dac26e
Full Application Version: coldboot-dac26e-1.0.0
---------------------------------------------
STEP 1:
> Reading configuration file from SPIFFS if present
> SUCCESS.
STEP 2:
> Configuration read from SPIFFS:
> Title : ColdBoot Initial Config
> SSID :
> Password :
> Config : http://ota.home.lan/esp/config/
> OTA :
> fields : 2
> Current count = 6
> Current size = 157
> Attempting WiFi connection ............................................................ WiFi connection timeout
> WiFi connection unsuccessful.
STEP 3:
> Provisioning configuration from the user
Navigate to http://10.1.1.1 and fill out the form
Provide WiFi SSID and password
as well as URLs for Configuration and/or OTA
> Bootstrapping SUCCESS.
> Configuration after Bootstrap:
> Title : ColdBoot Initial Config
> SSID : devices
> Password : ********
> Config : http://ota.home.lan/esp/config/
> OTA :
> fields : 2
> Current count = 6
> Current size = 142
> Attempting WiFi connection ............. WiFi connected
> IP address: 192.168.122.65
> SSID: devices
> mac: 98:F4:AB:DA:C2:6E
STEP 4:
> Checking if configuration should be read from an HTTP server
> Attempting to read config from this URL:
http://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json
> SUCCESS.
> Dictionary after HTTP config:
> Title : ColdBoot Initial Config
> SSID : devices
> Password : ********
> Config : http://ota.home.lan/esp/config/
> OTA : http://ota.home.lan/esp/bin/
> fields : 2
> Current count = 6
> Current size = 148
STEP 5:
> Checking for the OTA provisioning URL
> Attempting OTA Update from this URL:
http://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 3456, room 16
tail 0
chksum 0x84
csum 0x84
va5432625
@cp:0
ld
ColdBoot v1.0.0
ESP8266 ID: ESP8266-dac26e
AppVersion: success-dac26e-1.0.0
- 智能家居:带Alexa和Amazon Echo的ESP8266/ESP32
- ESP8266或ESP32上的WiFi Webradio
- ESP8266初次如何实现无线通信(基于电脑与ESP8266)
- WIoT2气象站之Nextion TFT with ESP8266/ESP32
- 使用ESP8266或ESP32通过Alexa控制家用电器
- 使用Arduino配置ESP8266
- 简单的ESP32和ESP8266编程器
- ESP8266使用教程之初识
- nodemcu与matlab,关于ESP8266 NodeMcu和ESP32 DEV模块两者的区别
- arduino / VScode+platformIO搭建esp32/esp8266编译环境(一篇足矣)
- ESP32 开发之旅② Arduino For ESP32说明
- 视频教程-micropython基础入门(esp32/esp8266单片机开发)-物联网技术
- VScode嵌入式开发之ESP32以及ESP8266入门
- ESP32和ESP8266基于Arduino的MQTT收发资料说明 104次下载
- ESP8266系列模块选型 37次下载
- ESP8266红外信号收发实验 1678次阅读
- ESP8266硬件 4144次阅读
- ESP8266无线通讯模块的驱动设计与实现 2551次阅读
- ESP8266/ESP32自动下载原理 4249次阅读
- 如何使用ESP8266制作可配置的Web服务器 1.2w次阅读
- ESP8266上运行代码如何实现 2768次阅读
- 如何利用ESP8266实现智能手表的设计 3000次阅读
- STM32系列设计,ESP8266联网授时时钟 7825次阅读
- 从5方面描述STM32F407+ESP8266连接机智云过程 1.1w次阅读
- esp8266中文资料汇总(esp8266引脚图_与单片机连接_串口wifi实例) 22.4w次阅读
- esp8266固件如何升级_ESP8266WIFI模块固件升级 4.2w次阅读
- ESP8266 Wi-Fi到底传多远_esp8266 wifi信号强度测距 5.1w次阅读
- 远程控制通讯--基于Arduino + ESP8266控制LED灯 3.9w次阅读
- esp8266 at指令集详解 14.1w次阅读
- esp8266串口wifi实例 1.8w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多