智宇物聯(lián) 專注于提供高穩(wěn)定、高速率的三網(wǎng)物聯(lián)網(wǎng)卡
景德鎮(zhèn)自己動(dòng)手搭建物聯(lián)網(wǎng)模塊OTA升級(jí)平臺(tái)
- 作者:智宇物聯(lián)
- 發(fā)表時(shí)間:2022年10月16日
- 來(lái)源:智宇物聯(lián)
最近朋友在弄一個(gè)公廁所空氣質(zhì)量檢測(cè)項(xiàng)目,買了物聯(lián)網(wǎng)通訊芯片,采集空氣傳感器數(shù)據(jù)通過(guò)通訊芯片上傳到服務(wù)器,實(shí)現(xiàn)空氣質(zhì)量檢測(cè)分析以及清掃建議等功能。

物聯(lián)網(wǎng)-萬(wàn)物互聯(lián)
由于項(xiàng)目比較匆忙,剛開始部署的物聯(lián)網(wǎng)采集模塊沒(méi)有實(shí)現(xiàn)自動(dòng)升級(jí)的功能,后面需要升級(jí)固件非常不方便。所以考慮增加OTA遠(yuǎn)程升級(jí)功能,特寫下本文記錄一下相關(guān)實(shí)現(xiàn)過(guò)程。
OTA簡(jiǎn)介
OTA:Over The Air,空中下載的意思具體指遠(yuǎn)程無(wú)線方式,OTA 技術(shù)是一種遠(yuǎn)程無(wú)線固件升級(jí)技術(shù),通過(guò)部署云端OTA平臺(tái)為具有連網(wǎng)功能的設(shè)備提供固件升級(jí)服務(wù)。
OTA升級(jí)流程

簡(jiǎn)單OTA升級(jí)流程
上圖我們簡(jiǎn)單描述了下OTA的升級(jí)流程,首先制作升級(jí)包(可以是增量升級(jí)包、全量升級(jí)包),然后上傳OTA平臺(tái),終端請(qǐng)求升級(jí)(主動(dòng)請(qǐng)求、或者服務(wù)器推送升級(jí)),主動(dòng)請(qǐng)求升級(jí)則需要攜帶相關(guān)參數(shù)(如模塊唯一識(shí)別碼IMEI、終端當(dāng)前版本),OTA收到升級(jí)請(qǐng)求后可以根據(jù)IMEI等信息判斷請(qǐng)求是否合法,根據(jù)當(dāng)前版本號(hào)跟最新上傳的OTA升級(jí)版本比較是否需要升級(jí),如果需要升級(jí)則可以返回OTA升級(jí)包(文件流、或者升級(jí)包地址),然后終端收到升級(jí)包再進(jìn)行下一步的處理。
OTA私有平臺(tái)搭建
OTA平臺(tái)可以是自建私有平臺(tái)、或者使用阿里等公有云OTA平臺(tái),OTA平臺(tái)功能其實(shí)挺簡(jiǎn)單,至少包括以下幾點(diǎn):
1. 升級(jí)包管理,包括升級(jí)包上傳以及下載日志等。
2. 項(xiàng)目管理,每個(gè)升級(jí)包對(duì)應(yīng)不同的項(xiàng)目硬件固件,防止不同項(xiàng)目固件升級(jí)包混淆。
3. 對(duì)外升級(jí)暴露服務(wù),響應(yīng)請(qǐng)求升級(jí)請(qǐng)求。
我們可以自己使用JAVA、.NET、PHP等語(yǔ)言自己實(shí)現(xiàn)一個(gè)簡(jiǎn)單的OTA升級(jí)平臺(tái),當(dāng)然為了方便省事,我們可以從github或者gitee下載開源的版本自己部署就可以了,比如gitee上的nutz-book-project看了下功能比較符合我們的要求,我們?cè)趃itee上下載nutz-book-project源碼編譯,使用maven打包后啟動(dòng)java -jar 啟動(dòng)打包的jar文件即可.

開源OTA平臺(tái)
固件端增加升級(jí)功能
固件程序開機(jī)時(shí)增加升級(jí)檢測(cè)邏輯,增加下行升級(jí)指令的響應(yīng)。朋友使用的模塊編程語(yǔ)言是C語(yǔ)言,然后他說(shuō)到現(xiàn)在的開發(fā)板很方便了,可以使用lua腳本語(yǔ)言。網(wǎng)上一搜索發(fā)現(xiàn)蠻多, 支持lua的wifi模塊價(jià)格從10塊起步,支持lua編寫業(yè)務(wù)邏輯真是太方便了,準(zhǔn)備買個(gè)開發(fā)板來(lái)玩玩,再弄個(gè)甲醛傳感器實(shí)時(shí)監(jiān)控下家里的空氣質(zhì)量。下面是開發(fā)板lua語(yǔ)言的部分功能示例代碼:
連接wifi
wifi.setmode(wifi.STATION)
wifi.sta.config("wifi ssid","wifi password")
print(wifi.sta.getip())
--成功得到ip192.168.0.3
讀取傳感器數(shù)據(jù)
t=require("ds18b20")
t.setup(9) --串口ID
addrs=t.addrs()
-- Total DS18B20 numbers, assume it is 2
print(table.getn(addrs))
print(t.read()) -- 讀取數(shù)據(jù)
http通訊
conn=net.createConnection(net.TCP, false)
conn:on("receive", function(conn, pl) print(pl) end)
conn:connect(80,"ip")
conn:send("發(fā)送數(shù)據(jù)")
本文由IT點(diǎn)滴原創(chuàng),歡迎關(guān)注,帶你一起長(zhǎng)知識(shí)!
- 景德鎮(zhèn)重構(gòu)無(wú)人零售的智慧引擎(物聯(lián)卡)
- 景德鎮(zhèn)智能終端革命:解碼自動(dòng)售貨機(jī)重構(gòu)零售業(yè)的底層邏輯
- 景德鎮(zhèn)物聯(lián)卡賦能自動(dòng)售貨機(jī):智能化升級(jí)與價(jià)值釋放
- 景德鎮(zhèn)自動(dòng)售貨機(jī)物聯(lián)卡:智能化、場(chǎng)景化與生態(tài)化演進(jìn)?
- 景德鎮(zhèn)自動(dòng)售貨機(jī)的數(shù)字化躍遷引擎?
- 景德鎮(zhèn)自動(dòng)售貨機(jī)物聯(lián)卡:開啟智能零售新時(shí)代
- 景德鎮(zhèn)物聯(lián)卡:自動(dòng)售貨機(jī)智能化轉(zhuǎn)型的核心驅(qū)動(dòng)力
- 景德鎮(zhèn)物聯(lián)卡:自動(dòng)售貨機(jī)困境的破局之匙
- 景德鎮(zhèn)物聯(lián)卡引領(lǐng)自動(dòng)售貨機(jī)未來(lái)發(fā)展新航向
- 景德鎮(zhèn)物聯(lián)卡如何革新自動(dòng)售貨機(jī)行業(yè)
- 景德鎮(zhèn)安防監(jiān)控物聯(lián)卡行業(yè)綜合解決方案:智能化時(shí)代的“安全守護(hù)者”
- 景德鎮(zhèn)物聯(lián)卡是如何盤活自動(dòng)售貨機(jī)市場(chǎng)的?
- 景德鎮(zhèn)車聯(lián)網(wǎng)物聯(lián)卡行業(yè)綜合解決方案:驅(qū)動(dòng)智慧出行的“數(shù)字紐帶”
- 景德鎮(zhèn)POS機(jī)物聯(lián)卡行業(yè)綜合解決方案:驅(qū)動(dòng)智能支付場(chǎng)景的數(shù)字化轉(zhuǎn)型
- 景德鎮(zhèn)智慧林業(yè):構(gòu)建全鏈路數(shù)字化生態(tài)系統(tǒng)的創(chuàng)新實(shí)踐
- 景德鎮(zhèn)智慧農(nóng)業(yè):重塑現(xiàn)代農(nóng)業(yè)的數(shù)字化革命?
- 景德鎮(zhèn)智慧醫(yī)療:生命科學(xué)革命下的醫(yī)療生態(tài)重構(gòu)
- 景德鎮(zhèn)智慧城市綜合解決方案:構(gòu)建未來(lái)城市的智慧引擎
- 景德鎮(zhèn)智慧交通綜合解決方案
- 景德鎮(zhèn)智慧養(yǎng)老綜合解決方案:應(yīng)對(duì)人口老齡化的創(chuàng)新之路