前言:
我經常在各個討論群里看到有合宙Air780EP的用戶說:
FOTA遠程升級有點難呀~一步錯后面就得重新來了,有沒有大佬給個教程啊?
用戶提需求了,那我們肯定要滿足啊,就連夜趕了一篇
在整理這篇文章之前,是沒有覺得這個FOTA遠程升級有多復雜的,寫完回頭一看,好家伙,這么多步驟啊!
本篇保姆級教程,手把手教你FOTA遠程升級,小白秒變專家!
合宙支持LuatOS功能的模組型號,除本文介紹的Air780EP外, 還有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型號, 本文介紹的FOTA應用流程,同樣也適用于這些型號。
一. 概述
合宙Air780EP具有高度集成、低功耗、強大的開發支持的特點,提供了豐富的接口,支持多種外設連接,支持標準AT指令和LuatOS開發。
Air780EP開發板適用于多種物聯網應用場景,比如智能家居、智能城市、工業控制、遠程監控等。
在開始之前,我們先學習一下FOTA升級的背景知識:
遠程升級是物聯網中比較常用的功能,本文介紹如何使用Air780EP開發板進行遠程升級
LuatOS-Air開發模式下,固件分為兩部分:core和script
(core為底層固件,script為腳本文件)
遠程升級時:可以僅升級script;可以僅升級core;也可以同時升級core+script
我詳細介紹了兩種方式的升級教程:一個是合宙iot平臺升級教程,另一個是自建第三方服務器升級教程。
根據你的需求,選擇哪一種都可以。
二. 材料準備
我們升級前需要的工具準備有這些:
PC電腦,以及登錄官方IOT后臺 https://iot.openluat.com/
固件和DEMO下載地址 LuatOS軟件包

三. 合宙iot平臺升級core+script過程
1. iot平臺創建產品
登錄合宙iot平臺
如果沒有賬戶,注冊一個賬戶
打開:我的項目->新建項目

復制PRODUCT_KEY

2. 模塊端腳本修改,生成升級包
core | 舊版本core | 新版本core |
例子 | LuatOS-SoC_V1001_EC718P.soc | LuatOS-SoC_V1001_EC718P.soc |
要求 | 1、大于等于舊版本core版本號 | 2、新舊版本core支持的功能相同 |
script main.lua | 舊版本 (模塊端本地燒錄的) | 新版本 (生成的量產文件,遠程升級包) | 要求 |
PROJECT (項目名稱) | fotademo | fotademo | 新舊版本保持一致 |
VERSION (軟件版本號) | 1.0.0 | 1.0.1 | 大于等于舊版本VERSION |
PRODUCT_KEY (項目密鑰) | Vn7jF7r23yswjfwMa7ZuMsdnuuUC9wC3 | Vn7jF7r23yswjfwMa7ZuMsdnuuUC9wC3 | 和iot平臺創建的產品 ProductKey保持一致 |
3. 按照新版本的需求,修改main.lua
如下圖所示,PROJECT和PRODUCT_KEY保持不變,PRODUCT_KEY需和服務器保持一致,VERSION修改為1.0.1
注意事項:
1. main.lua 內填寫版本號要符合 x.y.z 形式, 其中 x/y/z 均為數值, 不限于個位數;
2. 若fota使用合宙iot平臺, 版本號中的 y 會被忽略, 推薦寫0, 務必留意

4. 使用Luatools生成bin文件差分包
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本僅支持生成sota文件
只升級腳本,差分包制作流程如下:
固件和DEMO下載地址 LuatOS軟件包,這里下載的是LuatOS-SoC@EC718P V1001下面的core_V1001.zip軟件包。下載對應軟件包后按如下步驟生成對應的差分包。

在Luatools目錄下的SOC量產及遠程升級文件下,找到EC718P文件夾,打開后綴名為.bin的文件fotademo_1001.1.1_LuatOS-SoC_EC718P.bin,這個就是文件差分包。

需要升級底層CORE,差分包制作流程如下:
生成新版本的量產固件,如下所示
根據新舊固件生成對應差分文件,如下所示
a. 點擊選項及工具選項,選擇升級包制作工具

b. 選擇對應文件,點擊開始執行生成對應差分文件

c. 生成的差分文件

5. 在合宙iot平臺配置升級包
進入iot平臺,打開我的項目->固件列表->創建固件

選擇新固件升級文件

如果升級全部設備勾選的是否,則需要添加需要升級的模塊imei

6. 模塊開機,完成升級
燒錄舊版本的模塊開機后,連接升級服務器,下載差分升級包,自動重啟,重啟過程中完成固件升級,整個過程的關鍵日志如下圖所示

7. 云平臺查看升級日志
登錄云平臺,選擇對應設備升級的產品->固件升級->升級日志->輸入對應的imei并選擇日期->搜索
可以看到設備在此日期下的空中升級日志。正常升級成功的情況下,短時間內會有兩次升級請求,第一次請求升級獲取到升級包之后,設備重啟升級成功會再次向云平臺請求是否有更高版本的固件可以升級。直到升級結果為 “已是最新版本” 服務器沒有更高版本的固件為止。
如果你的存在設備升級失敗等情況,可以對照以下表格尋求解決方案:
響應碼 | 響應信息 | 問題以及解決辦法 | 云平臺日志結果 |
3 | 無效的設備 | 檢查請求鍵名(imei小寫)正確性 | 無 |
17 | 無權限 | 設備會上報imei、固件名、項目key。 服務器會以此查出設備、固件、項目三 條記錄, 如果 這三者不在同一個用戶名下,就會認為無權限。 設備不在項目key對應的賬戶下, 可尋找合宙技術支持查詢該設備在哪個賬戶下, 核實情況后可修改設備歸屬 | 無權限 |
21 | 21 | 不允許從1.0.2升到1.0.3 | 21 |
25 | 無效的項目 | productkey不一致,檢查是否存在拼寫錯誤, 檢查模塊是否在本人賬戶下,若不在本人賬戶下,請聯系合宙工作人員處理 | 未找到項目 |
26 | 無效的固件 | 固件名稱錯誤,項目中沒有對應的固件。用戶自己修改了固件名稱,可對照升級日志中設備當前固件名與升級配置中固件名是否相同(固件名稱,固件功能要完全一致,只是版本號不同)。 | 找不到固件 |
27 | 已是最新版本 | 1、設備固件版本高于云平臺 2、固件版本設備腳本版本高于云平臺版本 3、用戶項目升級配置中未添加該設備 4、云平臺升級配置中,是否升級配置為否 | 已是最新版本 設備不在配置的升級設備列表中 |
40 | 循環升級 | 云平臺進入設備列表搜索被禁止的imei,解除禁止升級就好了。 云平臺防止模塊在升級失敗后,反復請求升級導致流量耗盡, 在模塊一天請求升級六次后會禁止模塊升級。可在平臺解除。 | 檢測到循環升級 (已禁止升級,請到設備列表解除) |
43 | 請等待 | 云平臺生成差分升級包需要等待, 一到三分鐘后云平臺生成完成差分包便可以請求成功。 | 正在生成版本,請等待 |
44 | 基礎版本缺失 | 平臺未收錄設備固件(多為定制固件, 可尋找合宙技術支持人員添加,需提供定制固件郵件) | 基礎CORE版本缺失 |
四. 自建第三方服務器升級過程
使用自建第三方服務器升級
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本僅支持生成sota文件
手動生成core差分包+script全量包。例如core版本有1001、1002、1003,現在要統一升級到1004,則需要按照如下步驟操作:
手動生成:從1001到1004的core差分包+script全量包、從1002到1004的core差分包+script全量包、從1003到1004的core差分包+script全量包
模塊請求升級時,服務器根據模塊中的core版本返回對應的升級包文件
手動生成差分包的過程如下:用合宙提供的luatools中的soc差分工具生成差分包


操作步驟
1. 準備模塊中使用的舊版本core升級文件
此文件指的是模塊中舊版本core中的.soc文件(從合宙官方渠道下載),例如以LuatOS-SoC_V1001_EC718P.soc為例

2. 使用Luatools分別生成新舊版本的升級包
如下圖所示

在Luatools目錄下SOC量產及遠程升級文件下的EC718P下,生成了一個后綴名為.soc的文件fotademo_1.0.1_LuatOS-SoC_V1002_EC718P.soc,這個就是新版本的升級包

3. 生成差分包
使用luatools生成升級文件,無論core是否需要升級,升級文件必須包含core,因為差分會用到,使用luatools內的soc差分工具生成即可

生成對應差分包如下圖所示:
注意:差分包不能超過480k

4. 差分包上傳到自建服務器
lua固件默認支持HTTP獲取升級包
啟動遠程升級功能,demo\fota2\main.lua文件做如下修改,打開使用自建服務器進行升級部分代碼,填寫對應的url

5. 使用其他協議實現自建服務器遠程升級
可參考腳本庫中配置。無論使用哪種協議,遠程升級的關鍵是獲取正確的升級固件包。
總結:
當你看到這里,是不是已經感到安心和踏實一些了,是的,你已經掌握了FOTA遠程升級的方法了。每一個步驟都被細細拆解,確保即便是技術小白也能輕松上手。
你在FOTA遠程升級的時候,有沒有遇到過什么問題?評論區一起來討論吧~
合宙支持LuatOS功能的模組型號,除本文介紹的Air780EP外, 還有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型號, 本文介紹的FOTA應用流程,同樣也適用于這些型號。
如有需要,請點擊 www.openluat.com 獲取聯系方式


-
嵌入式
+關注
關注
5141文章
19542瀏覽量
315177 -
物聯網
+關注
關注
2927文章
45910瀏覽量
388287 -
硬件
+關注
關注
11文章
3461瀏覽量
67207
發布評論請先 登錄
STM32F103上位機升級,RS485升級、CAN升級
Air780EP低功耗4G模組—AT開發FOTA遠程升級

物聯網中的Fota是什么,如何使用HTTP來給設備升級

智能升級,樓宇自控系統讓辦公更高效
合宙Air201資產定位模組LuatOS基礎課程:FOTA遠程升級,一鍵搞定!

適用于618/7xx芯片平臺 AT開發 遠程FOTA升級指南教程

評論