資料介紹
描述
背景
當您將數百個設備部署為 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
?
![poYBAGOYAQaAB8VSAABSOF9y4ds735.png](https://file.elecfans.com/web2/M00/83/16/poYBAGOYAQaAB8VSAABSOF9y4ds735.png)
完整的網絡表單如下所示:
?
![pYYBAGOYAQmAIncRAABDqbRGJ8o930.png](https://file.elecfans.com/web2/M00/83/9F/pYYBAGOYAQmAIncRAABDqbRGJ8o930.png)
基于步驟 1 示例config.json文件的簡化 Web 表單如下所示:
![poYBAGOYAQyAK0KVAAA2X63sWRs011.png](https://file.elecfans.com/web2/M00/83/16/poYBAGOYAQyAK0KVAAA2X63sWRs011.png)
?
一旦用戶點擊提交按鈕,設備就會一次又一次地嘗試連接到 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編程器
- nodemcu與matlab,關于ESP8266 NodeMcu和ESP32 DEV模塊兩者的區別
- arduino / VScode+platformIO搭建esp32/esp8266編譯環境(一篇足矣)
- ESP32 開發之旅② Arduino For ESP32說明
- 視頻教程-micropython基礎入門(esp32/esp8266單片機開發)-物聯網技術
- VScode嵌入式開發之ESP32以及ESP8266入門
- ESP8266硬件設計指南的詳細資料免費下載 34次下載
- ESP32和ESP8266基于Arduino的MQTT收發資料說明 109次下載
- ESP8266系列模塊選型 37次下載
- ESP8266紅外信號收發實驗 2013次閱讀
- ESP8266硬件 4866次閱讀
- ESP8266/ESP32自動下載原理 4742次閱讀
- 如何使用ESP8266制作可配置的Web服務器 1.3w次閱讀
- 如何利用ESP8266制作一個簡單的四軸飛行器 5119次閱讀
- ESP8266上運行代碼如何實現 3040次閱讀
- 如何利用ESP8266實現智能手表的設計 3369次閱讀
- STM32系列設計,ESP8266聯網授時時鐘 8097次閱讀
- 從5方面描述STM32F407+ESP8266連接機智云過程 1.1w次閱讀
- esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例) 22.5w次閱讀
- esp8266固件如何升級_ESP8266WIFI模塊固件升級 4.2w次閱讀
- ESP8266 Wi-Fi到底傳多遠_esp8266 wifi信號強度測距 5.2w次閱讀
- 遠程控制通訊--基于Arduino + ESP8266控制LED燈 4w次閱讀
- esp8266 at指令集詳解 14.3w次閱讀
- esp8266串口wifi實例 1.9w次閱讀
下載排行
本周
- 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次下載 | 免費
評論