OTA 升級(jí)過程中斷了,怎么辦?
AWS 平臺(tái)部署 OTA 升級(jí)任務(wù)
AWS 平臺(tái)按照不同的業(yè)務(wù)類型,劃分為不同的服務(wù)。這樣處理起來,流程更規(guī)范,操作步驟也更多,當(dāng)然也更賺錢一些!
從上一篇文章中可以看到,當(dāng)一個(gè)新的固件準(zhǔn)備好之后,需要做 2 件事情:
把固件(bin 文件)和一個(gè)固件描述文件(json格式的文本文件),上傳到 S3 云存儲(chǔ)服務(wù)器上;
在 AWS Core 任務(wù)管理中,新建一個(gè)升級(jí)任務(wù)(會(huì)得到一個(gè) Job ID)。在這個(gè)任務(wù)中需要選擇:
(1) 步驟1中上傳的 json 文件;
(2) 哪些終端設(shè)備需要升級(jí);
json 格式的固件描述文檔,格式大概如下(可以根據(jù)實(shí)際的業(yè)務(wù)需求進(jìn)行修改):
{
"product": "產(chǎn)品名稱",
"group": "設(shè)備分組",
"firmware":
[
{
"ota_type": "esp32",
"url": "http://xxx/esp32-v1.1.0.bin",
"md5": "xxx"
}
]
}
不知道您是否注意到:在 firmware 字段中,使用的是數(shù)組([...]),而不是對(duì)象({...})?
這樣來組織的原因是,OTA 升級(jí)不僅僅可以對(duì) ESP32 模組中的固件進(jìn)行升級(jí)("ota_type": "esp32"),還可以對(duì)其他的一些固件或用戶數(shù)據(jù)進(jìn)行更新。
比如:更新 ESP32 串口連接的 MCU 中的固件程序。
對(duì)了,一個(gè)終端在通過網(wǎng)絡(luò)連接到云平臺(tái)時(shí),都有一個(gè)唯一的 ID 編號(hào),一般都是利用 ESP32 模組上的網(wǎng)卡 MAC 地址來作為唯一 ID。
當(dāng)完成以上步驟時(shí),在服務(wù)器端,就存在著一個(gè)升級(jí)任務(wù)關(guān)系鏈:
也就是說:一個(gè) Job ID 就對(duì)應(yīng)著一次 OTA 升級(jí)任務(wù)。終端設(shè)備在進(jìn)行 OTA升級(jí)過程中,就是從這個(gè) Job ID 開始的。
ESP32 OTA 升級(jí)的觸發(fā)
ESP32 與 AWS 平臺(tái)之間,是通過 MQTT 協(xié)議進(jìn)行通信的。
因此,當(dāng)運(yùn)營人員創(chuàng)建了一個(gè) OTA 升級(jí)任務(wù)后,所有相關(guān)的終端設(shè)備,必須從某個(gè)預(yù)先確定好的主題(topic)中,接收到 OTA 升級(jí)通知指令。
例如一個(gè)可能的 topic:$aws/things/xxx/job/notify
其中的 xxx,代表終端設(shè)備的 MAC 地址,只有這樣,每一個(gè)設(shè)備才能夠接收到屬于自己的命令。
升級(jí)通知指令的內(nèi)容中,一定會(huì)包含 OTA 升級(jí)的 Job ID,例如:
{
"timestamp": "xxxxxx",
"job_id": "001"
}
當(dāng)終端設(shè)備接收到這個(gè)升級(jí)通知指令時(shí),提取出 job_id 字段,然后向云平臺(tái)發(fā)起請(qǐng)求:獲取與這個(gè) job_id 關(guān)聯(lián)的固件描述信息,也就是之前上傳的 Json 格式的文件息。
AWS 平臺(tái)接收到這個(gè)請(qǐng)求后,就會(huì)把與這個(gè) job_id 相關(guān)聯(lián)的 OTA 升級(jí)任務(wù)描述文件(json文件),發(fā)送給終端設(shè)備。
設(shè)備拿到了固件描述文件,自然也就知道了固件的:版本,下載地址,MD5 值等信息,于是就進(jìn)入后面的下載環(huán)節(jié)了。
以上的過程描述,基本上是一個(gè)終端設(shè)備觸發(fā) OTA 升級(jí)的最基本的過程。
在實(shí)際的項(xiàng)目中,可能會(huì)遇到一些稍微復(fù)雜的情況。
例如:一個(gè)終端設(shè)備一直處于斷電狀態(tài)。此時(shí),云平臺(tái)中已經(jīng)對(duì)固件進(jìn)行了好幾次的升級(jí),但是由于這臺(tái)設(shè)備一直沒有運(yùn)行,因此它的固件已經(jīng)過時(shí)了好幾個(gè)版本。
有一天,這臺(tái)設(shè)備上電運(yùn)行了,此時(shí)它會(huì)從云平臺(tái)接收到好幾個(gè)升級(jí)任務(wù),這個(gè)時(shí)候應(yīng)該如何處理呢?
也許,我們就要對(duì)升級(jí)通知的指令中,賦予更多詳細(xì)的內(nèi)容,讓這臺(tái)設(shè)備有足夠的信息來判斷該如何進(jìn)行升級(jí)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
最新活動(dòng)更多
-
6月20日立即下載>> 【白皮書】精準(zhǔn)測量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權(quán)
- 3 深度報(bào)告|中國AI產(chǎn)業(yè)正在崛起成全球力量,市場潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級(jí)獨(dú)角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 6 一文看懂視覺語言動(dòng)作模型(VLA)及其應(yīng)用
- 7 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 8 百億AI芯片訂單,瘋狂傾銷中東?
- 9 Robotaxi新消息密集釋放,量產(chǎn)元年誰在領(lǐng)跑?
- 10 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過于簡單