資料介紹
描述
背景
當(dāng)您將數(shù)百個設(shè)備部署為 IoT 項目的一部分時,問題是如何將它們接入客戶的網(wǎng)絡(luò)并為設(shè)備提供最新的特定固件。
問題是您不知道設(shè)備將在何時何地首次啟動。
設(shè)備不知道 WiFi 參數(shù),其固件可能已過時。
這就是ColdBoot提供幫助的地方。
所有信息都可以在:https ://github.com/arkhipenko/EspColdBoot
什么是冷啟動?
ColdBoot 是 ESP8266 或 ESP32 微控制器的預(yù)編譯固件,能夠快速收集:
- WiFi參數(shù)(SSID和密碼)
- 最新配置文件的 URL
- OTA更新服務(wù)器的URL
通過簡單的網(wǎng)絡(luò)表單從最終用戶那里獲得。
ColdBoot 的主要目標(biāo)是盡可能快速輕松地訪問 Wifi 并為特定設(shè)備提供最新固件。
ColdBoot 通過連接到 USB 或串行端口的終端窗口提供逐步說明(115200 bps 設(shè)置)
如何使用:
選項 1:將預(yù)編譯的二進(jìn)制文件直接上傳到芯片
選項 2:編譯并上傳提供的草圖。
可選:編輯data/config.json文件并使用上傳工具上傳到 SPIFFS
工藝流程
第 1 步:從 SPIFFS 中讀取配置
ColdBoot 嘗試從設(shè)備的 SPIFFS 文件系統(tǒng)中讀取配置文件。
配置文件應(yīng)命名為“ config.json ”,并應(yīng)位于根文件夾中。
配置文件是一個簡單的 JSON 數(shù)組,可以定義以下參數(shù):
- “標(biāo)題” - 用于收集用戶參數(shù)的 Web 表單的標(biāo)題
- "SSID" - WiFi 網(wǎng)絡(luò) SSID
- “密碼” - WiFi密碼
- “Config” - 如果參數(shù)來自網(wǎng)絡(luò),則配置文件的 URL
- “OTA” - OTA 固件配置 HTTP 服務(wù)器的 URL
- “fields” - 要在網(wǎng)絡(luò)表單上顯示的字段數(shù)
可以定義所有字段或字段的子集。后續(xù)流程可能會受到此文件的影響。
一個示例用例:
配置文件提供 Web 表單的標(biāo)題、最新配置的 URL,并將 Web 表單字段的數(shù)量限制為 2(SSID 和密碼)
{
"Title" : "My Amazing IoT device",
"Config" : "http://ota.home.lan/esp/config/",
"fields" : "2"
}
注意:要使用 SPIFFS 配置功能 - 根據(jù)需要編輯提供的data/config.json文件,并使用 Arduino IDE 中的 ESP8266 SPIFFS 上傳工具將 SPIFFS 圖像上傳到設(shè)備。
第 2 步:根據(jù) SPIFFS 配置連接到 WIFI
如果從 SPIFFS 讀取配置成功,則可能會在此處提供 SSID 和密碼,因此 ColdBoot 會嘗試連接到 WiFi。
如果 SPIFFS 不可用或config.json文件不可用,則跳過第 2 步。
第 3 步:用戶提供配置
如果設(shè)備在步驟 2 中能夠連接到 WiFi 網(wǎng)絡(luò),則跳過此步驟。
此時,設(shè)備會創(chuàng)建一個 WiFi AP 點并創(chuàng)建一個簡單的 Web 表單,以便從用戶那里收集配置參數(shù)。AP SSID 為ESP8266-或ESP32-。(例如:ESP8266-dac26e)
最終用戶需要連接到 AP 并導(dǎo)航到http://10.1.1.1
?
完整的網(wǎng)絡(luò)表單如下所示:
?
基于步驟 1 示例config.json文件的簡化 Web 表單如下所示:
?
一旦用戶點擊提交按鈕,設(shè)備就會一次又一次地嘗試連接到 WiFi,直到成功。
設(shè)備將在 10 分鐘不活動后重新啟動。
第 4 步:從 HTTP 服務(wù)器讀取配置
如果提供了配置 URL,設(shè)備將嘗試從 HTTP 服務(wù)器讀取和解析配置參數(shù)。
這里有兩個選擇:
- 您可以提供到服務(wù)器的路徑,其中每個設(shè)備都存儲了特定的配置文件,或者
- 您可以直接提供配置文件的路徑(在這種情況下,多個設(shè)備可以讀取同一個文件)
如果僅提供文件夾路徑,ColdBoot將添加設(shè)備 ID 和版本,因此假定請求的配置是唯一的。例如,對于設(shè)備 ID ESP8266-dac26e,URL 將如下所示:
?http ://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json
(前提是http://ota.home.lan/esp/config/是你的配置服務(wù)器)
或者,您可以指定直接文件 URL,例如:
?http ://ota.home.lan/esp/config/iotdevice.json
如果ColdBoot確定未提供有效的 URL,則此步驟作為可選跳過。
第 5 步:從 OTA 服務(wù)器更新固件
此時,ColdBoot 假定存在一個指向可用的 OTA 更新服務(wù)器的有效 URL。
設(shè)備將嘗試根據(jù)提供的 URL 執(zhí)行 OTA 固件更新。
這里有兩個選擇:
- 您可以為每個設(shè)備提供存儲特定二進(jìn)制文件的服務(wù)器的路徑,或者
- 您可以直接提供二進(jìn)制文件的路徑(在這種情況下,多個設(shè)備可以基于同一個文件進(jìn)行更新)
如果僅提供文件夾路徑,ColdBoot將添加設(shè)備 ID 和版本,因此假定 OTA 請求是唯一的。例如,對于設(shè)備 ID ESP8266-dac26e,URL 將如下所示:
?http ://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin
(前提是http://ota.home.lan/esp/bin/是您的 OTA 服務(wù)器 URL)
或者,您可以指定直接文件 URL,例如:
?http ://ota.home.lan/esp/bin/iotdevice.bin
第 6 步:重新啟動
如果一切順利,則不應(yīng)執(zhí)行第 6 步,因為設(shè)備將在第 5 步成功 OTA 更新結(jié)束時重新啟動。
但是,如果 OTA 更新失敗,設(shè)備將等待 10 秒并重新啟動。
文件夾:
數(shù)據(jù)- 如果需要通過 SPIFFS 進(jìn)行配置,則將 SPIFFS 圖像上傳到設(shè)備。必須在根文件夾中包含一個名為config.json的 JSON 文件。
二進(jìn)制- 預(yù)編譯的 esp8266 二進(jìn)制(假設(shè) 4Mb 閃存大小、2Mb SPIFFS 大小、1Mb OTA 大?。梢宰鳛橹圃爝^程的一部分直接閃存到芯片中
例子:
下面是通過 ColdBoot 配置的真實設(shè)備的終端輸出。
請注意,在 OTA 完成后,應(yīng)用程序 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初次如何實現(xiàn)無線通信(基于電腦與ESP8266)
- WIoT2氣象站之Nextion TFT with ESP8266/ESP32
- 使用ESP8266或ESP32通過Alexa控制家用電器
- 使用Arduino配置ESP8266
- 簡單的ESP32和ESP8266編程器
- ESP8266使用教程之初識
- nodemcu與matlab,關(guān)于ESP8266 NodeMcu和ESP32 DEV模塊兩者的區(qū)別
- arduino / VScode+platformIO搭建esp32/esp8266編譯環(huán)境(一篇足矣)
- ESP32 開發(fā)之旅② Arduino For ESP32說明
- 視頻教程-micropython基礎(chǔ)入門(esp32/esp8266單片機開發(fā))-物聯(lián)網(wǎng)技術(shù)
- VScode嵌入式開發(fā)之ESP32以及ESP8266入門
- ESP32和ESP8266基于Arduino的MQTT收發(fā)資料說明 104次下載
- ESP8266系列模塊選型 37次下載
- ESP8266紅外信號收發(fā)實驗 1678次閱讀
- ESP8266硬件 4144次閱讀
- ESP8266無線通訊模塊的驅(qū)動設(shè)計與實現(xiàn) 2551次閱讀
- ESP8266/ESP32自動下載原理 4249次閱讀
- 如何使用ESP8266制作可配置的Web服務(wù)器 1.2w次閱讀
- ESP8266上運行代碼如何實現(xiàn) 2768次閱讀
- 如何利用ESP8266實現(xiàn)智能手表的設(shè)計 3000次閱讀
- STM32系列設(shè)計,ESP8266聯(lián)網(wǎng)授時時鐘 7825次閱讀
- 從5方面描述STM32F407+ESP8266連接機智云過程 1.1w次閱讀
- esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例) 22.4w次閱讀
- esp8266固件如何升級_ESP8266WIFI模塊固件升級 4.2w次閱讀
- ESP8266 Wi-Fi到底傳多遠(yuǎn)_esp8266 wifi信號強度測距 5.1w次閱讀
- 遠(yuǎn)程控制通訊--基于Arduino + ESP8266控制LED燈 3.9w次閱讀
- esp8266 at指令集詳解 14.1w次閱讀
- esp8266串口wifi實例 1.8w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多