前言:
我經(jīng)常在各個討論群里看到有合宙Air780EP的用戶說:
FOTA遠程升級有點難呀~一步錯后面就得重新來了,有沒有大佬給個教程啊?
用戶提需求了,那我們肯定要滿足啊,就連夜趕了一篇
在整理這篇文章之前,是沒有覺得這個FOTA遠程升級有多復(fù)雜的,寫完回頭一看,好家伙,這么多步驟啊!
本篇保姆級教程,手把手教你FOTA遠程升級,小白秒變專家!
合宙支持LuatOS功能的模組型號,除本文介紹的Air780EP外, 還有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型號, 本文介紹的FOTA應(yīng)用流程,同樣也適用于這些型號。
一. 概述
合宙Air780EP具有高度集成、低功耗、強大的開發(fā)支持的特點,提供了豐富的接口,支持多種外設(shè)連接,支持標準AT指令和LuatOS開發(fā)。
Air780EP開發(fā)板適用于多種物聯(lián)網(wǎng)應(yīng)用場景,比如智能家居、智能城市、工業(yè)控制、遠程監(jiān)控等。
在開始之前,我們先學(xué)習(xí)一下FOTA升級的背景知識:
遠程升級是物聯(lián)網(wǎng)中比較常用的功能,本文介紹如何使用Air780EP開發(fā)板進行遠程升級
LuatOS-Air開發(fā)模式下,固件分為兩部分:core和script
(core為底層固件,script為腳本文件)
遠程升級時:可以僅升級script;可以僅升級core;也可以同時升級core+script
我詳細介紹了兩種方式的升級教程:一個是合宙iot平臺升級教程,另一個是自建第三方服務(wù)器升級教程。
根據(jù)你的需求,選擇哪一種都可以。
二. 材料準備
我們升級前需要的工具準備有這些:
PC電腦,以及登錄官方IOT后臺 https://iot.openluat.com/
固件和DEMO下載地址 LuatOS軟件包
三. 合宙iot平臺升級core+script過程
1. iot平臺創(chuàng)建產(chǎn)品
登錄合宙iot平臺
如果沒有賬戶,注冊一個賬戶
打開:我的項目->新建項目
復(fù)制PRODUCT_KEY
2. 模塊端腳本修改,生成升級包
core | 舊版本core | 新版本core |
例子 | LuatOS-SoC_V1001_EC718P.soc | LuatOS-SoC_V1001_EC718P.soc |
要求 | 1、大于等于舊版本core版本號 | 2、新舊版本core支持的功能相同 |
script main.lua | 舊版本 (模塊端本地?zé)浀模?/td> | 新版本 (生成的量產(chǎn)文件,遠程升級包) | 要求 |
PROJECT (項目名稱) | fotademo | fotademo | 新舊版本保持一致 |
VERSION (軟件版本號) | 1.0.0 | 1.0.1 | 大于等于舊版本VERSION |
PRODUCT_KEY (項目密鑰) | Vn7jF7r23yswjfwMa7ZuMsdnuuUC9wC3 | Vn7jF7r23yswjfwMa7ZuMsdnuuUC9wC3 | 和iot平臺創(chuàng)建的產(chǎn)品 ProductKey保持一致 |
3. 按照新版本的需求,修改main.lua
如下圖所示,PROJECT和PRODUCT_KEY保持不變,PRODUCT_KEY需和服務(wù)器保持一致,VERSION修改為1.0.1
注意事項:
1. main.lua 內(nèi)填寫版本號要符合 x.y.z 形式, 其中 x/y/z 均為數(shù)值, 不限于個位數(shù);
2. 若fota使用合宙iot平臺, 版本號中的 y 會被忽略, 推薦寫0, 務(wù)必留意
4. 使用Luatools生成bin文件差分包
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本僅支持生成sota文件
只升級腳本,差分包制作流程如下:
固件和DEMO下載地址 LuatOS軟件包,這里下載的是LuatOS-SoC@EC718P V1001下面的core_V1001.zip軟件包。下載對應(yīng)軟件包后按如下步驟生成對應(yīng)的差分包。
在Luatools目錄下的SOC量產(chǎn)及遠程升級文件下,找到EC718P文件夾,打開后綴名為.bin的文件fotademo_1001.1.1_LuatOS-SoC_EC718P.bin,這個就是文件差分包。
需要升級底層CORE,差分包制作流程如下:
生成新版本的量產(chǎn)固件,如下所示
根據(jù)新舊固件生成對應(yīng)差分文件,如下所示
a. 點擊選項及工具選項,選擇升級包制作工具
b. 選擇對應(yīng)文件,點擊開始執(zhí)行生成對應(yīng)差分文件
c. 生成的差分文件
5. 在合宙iot平臺配置升級包
進入iot平臺,打開我的項目->固件列表->創(chuàng)建固件
選擇新固件升級文件
如果升級全部設(shè)備勾選的是否,則需要添加需要升級的模塊imei
6. 模塊開機,完成升級
燒錄舊版本的模塊開機后,連接升級服務(wù)器,下載差分升級包,自動重啟,重啟過程中完成固件升級,整個過程的關(guān)鍵日志如下圖所示
7. 云平臺查看升級日志
登錄云平臺,選擇對應(yīng)設(shè)備升級的產(chǎn)品->固件升級->升級日志->輸入對應(yīng)的imei并選擇日期->搜索
可以看到設(shè)備在此日期下的空中升級日志。正常升級成功的情況下,短時間內(nèi)會有兩次升級請求,第一次請求升級獲取到升級包之后,設(shè)備重啟升級成功會再次向云平臺請求是否有更高版本的固件可以升級。直到升級結(jié)果為 “已是最新版本” 服務(wù)器沒有更高版本的固件為止。
如果你的存在設(shè)備升級失敗等情況,可以對照以下表格尋求解決方案:
響應(yīng)碼 | 響應(yīng)信息 | 問題以及解決辦法 | 云平臺日志結(jié)果 |
3 | 無效的設(shè)備 | 檢查請求鍵名(imei小寫)正確性 | 無 |
17 | 無權(quán)限 | 設(shè)備會上報imei、固件名、項目key。 服務(wù)器會以此查出設(shè)備、固件、項目三 條記錄, 如果 這三者不在同一個用戶名下,就會認為無權(quán)限。 設(shè)備不在項目key對應(yīng)的賬戶下, 可尋找合宙技術(shù)支持查詢該設(shè)備在哪個賬戶下, 核實情況后可修改設(shè)備歸屬 | 無權(quán)限 |
21 | 21 | 不允許從1.0.2升到1.0.3 | 21 |
25 | 無效的項目 | productkey不一致,檢查是否存在拼寫錯誤, 檢查模塊是否在本人賬戶下,若不在本人賬戶下,請聯(lián)系合宙工作人員處理 | 未找到項目 |
26 | 無效的固件 | 固件名稱錯誤,項目中沒有對應(yīng)的固件。用戶自己修改了固件名稱,可對照升級日志中設(shè)備當(dāng)前固件名與升級配置中固件名是否相同(固件名稱,固件功能要完全一致,只是版本號不同)。 | 找不到固件 |
27 | 已是最新版本 | 1、設(shè)備固件版本高于云平臺 2、固件版本設(shè)備腳本版本高于云平臺版本 3、用戶項目升級配置中未添加該設(shè)備 4、云平臺升級配置中,是否升級配置為否 | 已是最新版本 設(shè)備不在配置的升級設(shè)備列表中 |
40 | 循環(huán)升級 | 云平臺進入設(shè)備列表搜索被禁止的imei,解除禁止升級就好了。 云平臺防止模塊在升級失敗后,反復(fù)請求升級導(dǎo)致流量耗盡, 在模塊一天請求升級六次后會禁止模塊升級。可在平臺解除。 | 檢測到循環(huán)升級 (已禁止升級,請到設(shè)備列表解除) |
43 | 請等待 | 云平臺生成差分升級包需要等待, 一到三分鐘后云平臺生成完成差分包便可以請求成功。 | 正在生成版本,請等待 |
44 | 基礎(chǔ)版本缺失 | 平臺未收錄設(shè)備固件(多為定制固件, 可尋找合宙技術(shù)支持人員添加,需提供定制固件郵件) | 基礎(chǔ)CORE版本缺失 |
四. 自建第三方服務(wù)器升級過程
使用自建第三方服務(wù)器升級
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本僅支持生成sota文件
手動生成core差分包+script全量包。例如core版本有1001、1002、1003,現(xiàn)在要統(tǒng)一升級到1004,則需要按照如下步驟操作:
手動生成:從1001到1004的core差分包+script全量包、從1002到1004的core差分包+script全量包、從1003到1004的core差分包+script全量包
模塊請求升級時,服務(wù)器根據(jù)模塊中的core版本返回對應(yīng)的升級包文件
手動生成差分包的過程如下:用合宙提供的luatools中的soc差分工具生成差分包
操作步驟
1. 準備模塊中使用的舊版本core升級文件
此文件指的是模塊中舊版本core中的.soc文件(從合宙官方渠道下載),例如以LuatOS-SoC_V1001_EC718P.soc為例
2. 使用Luatools分別生成新舊版本的升級包
如下圖所示
在Luatools目錄下SOC量產(chǎn)及遠程升級文件下的EC718P下,生成了一個后綴名為.soc的文件fotademo_1.0.1_LuatOS-SoC_V1002_EC718P.soc,這個就是新版本的升級包
3. 生成差分包
使用luatools生成升級文件,無論core是否需要升級,升級文件必須包含core,因為差分會用到,使用luatools內(nèi)的soc差分工具生成即可
生成對應(yīng)差分包如下圖所示:
注意:差分包不能超過480k
4. 差分包上傳到自建服務(wù)器
lua固件默認支持HTTP獲取升級包
啟動遠程升級功能,demo\fota2\main.lua文件做如下修改,打開使用自建服務(wù)器進行升級部分代碼,填寫對應(yīng)的url
5. 使用其他協(xié)議實現(xiàn)自建服務(wù)器遠程升級
可參考腳本庫中配置。無論使用哪種協(xié)議,遠程升級的關(guān)鍵是獲取正確的升級固件包。
總結(jié):
當(dāng)你看到這里,是不是已經(jīng)感到安心和踏實一些了,是的,你已經(jīng)掌握了FOTA遠程升級的方法了。每一個步驟都被細細拆解,確保即便是技術(shù)小白也能輕松上手。
你在FOTA遠程升級的時候,有沒有遇到過什么問題?評論區(qū)一起來討論吧~
合宙支持LuatOS功能的模組型號,除本文介紹的Air780EP外, 還有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型號, 本文介紹的FOTA應(yīng)用流程,同樣也適用于這些型號。
如有需要,請點擊 www.openluat.com 獲取聯(lián)系方式
-
嵌入式
+關(guān)注
關(guān)注
5086文章
19140瀏覽量
305844 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44704瀏覽量
374142 -
硬件
+關(guān)注
關(guān)注
11文章
3341瀏覽量
66269
發(fā)布評論請先 登錄
相關(guān)推薦
評論