概述
當(dāng)前國內(nèi)物聯(lián)網(wǎng)市場的云端生態(tài)已經(jīng)相對完善,但物聯(lián)網(wǎng)終端設(shè)備仍然各成一家、相互隔絕,需要在多種場景下進(jìn)一步規(guī)范化物聯(lián)網(wǎng)終端軟硬件接口。
本作品針對這一市場痛點,以ART-Pi開發(fā)板和RTT操作系統(tǒng)為基礎(chǔ),從軟件接口層構(gòu)建一個相對統(tǒng)一設(shè)備至設(shè)備(D2D)與設(shè)備至云端(D2C)的小型通信接口,使用多種輸入設(shè)備與多種輸出設(shè)備驗證其實際效能,為RTT與STM32強強聯(lián)合實現(xiàn)“全連接”的目標(biāo)提供一個最優(yōu)實踐與解決方案。
項目應(yīng)用場景:工業(yè)現(xiàn)場、車載與家庭環(huán)境。
開發(fā)環(huán)境
硬件:ART-Pi開發(fā)板
RT-Thread版本:4.0.3
開發(fā)工具及版本:RT-Thread Studio版本: 1.1.5
RT-Thread使用情況概述
內(nèi)核部分:
調(diào)度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。
信號量:用來同步線程。
事件集:通知數(shù)據(jù)采集完成
組件部分: Sensor框架,SAL 套接字抽象層
Sensor框架:將溫濕度傳感器注冊到sensor上。使用該框架提高了代碼的復(fù)用性。
SAL 套接字抽象層:該組件實現(xiàn)了對不同網(wǎng)絡(luò)協(xié)議?;蚓W(wǎng)絡(luò)實現(xiàn)接口的抽象,并對上層提供一組標(biāo)準(zhǔn)的API接口,方便網(wǎng)絡(luò)應(yīng)用的開發(fā)與穩(wěn)定性。
驅(qū)動部分:
Pin設(shè)備:通過控制GPIO高低電平控制外接設(shè)備。
串口設(shè)備:監(jiān)控系統(tǒng)運行狀態(tài),可作為輸入控制。
第三方軟件包部分:
cJSON:C語言實現(xiàn)的極簡的解析 JSON 格式的軟件包。
onenet: RT-Thread 針對 OneNET 平臺連接做的的適配,通過這個軟件包,可以讓設(shè)備在 RT-Thread 上非常方便的連接 OneNet 平臺,完成數(shù)據(jù)的發(fā)送、接收、設(shè)備的注冊和控制等功能。
Paho-mqtt,:本軟件包是在 Eclipse paho-mqtt 源碼包的基礎(chǔ)上設(shè)計的一套 MQTT 客戶端程序。
Webclient:提供設(shè)備與 HTTP Server 的通訊的基本功能。
硬件框架
硬件設(shè)備以ART-Pi開發(fā)板及其板載設(shè)備為主。
軟件框架說明
軟件框架以標(biāo)準(zhǔn)RT-Thread操作系統(tǒng)為基礎(chǔ),通過添加網(wǎng)絡(luò)模塊AP6212的設(shè)備驅(qū)動,以及SAL 套接字抽象層,實現(xiàn)系統(tǒng)的基礎(chǔ)聯(lián)網(wǎng)功能。
在此基礎(chǔ)上,添加cJSON 、onenet、paho-mqtt 軟件支持,并在onenet云端建立基于MQTT的產(chǎn)品與設(shè)備,將身份認(rèn)證信息寫入軟件包,實現(xiàn)系統(tǒng)通過MQTT協(xié)議與云端服務(wù)器遠(yuǎn)程通信協(xié)議支持。
最后,基于系統(tǒng)和第三方MQTT協(xié)議的API接口,實現(xiàn)業(yè)務(wù)代碼。添加設(shè)備節(jié)點與解析程序,并以線程的形式載入系統(tǒng)中。
軟件模塊說明
應(yīng)用軟件的關(guān)鍵業(yè)務(wù)代碼部分基于系統(tǒng)和第三方MQTT協(xié)議的API接口實現(xiàn),并以動態(tài)創(chuàng)建線程的方式加入到RT-Thread系統(tǒng)中。
關(guān)鍵操作主要有兩步:
- 獲取傳感器信息,并上傳至服務(wù)器;
- 接收onenet的遠(yuǎn)程MQTT服務(wù)器發(fā)來的信息,解析并轉(zhuǎn)換為底層硬件的執(zhí)行指令,控制底層硬件的狀態(tài)。
演示效果
比賽感悟
通過這次比賽,更加深刻的認(rèn)識到了RT-Thread不只是一個操作系統(tǒng)內(nèi)核,而是代表了整個嵌入式生態(tài)。作為一名 RTOS 的開發(fā)者,也許比賽前對 RT-Thread 還比較陌生。然而,隨著深入接觸,逐漸發(fā)現(xiàn) RT-Thread 的魅力和它相較于其他同類型 RTOS 的種種優(yōu)越之處。RT-Thread 是一款完全由國內(nèi)團(tuán)隊開發(fā)維護(hù)的嵌入式實時操作系統(tǒng)(RTOS),具有完全的自主知識產(chǎn)權(quán)。經(jīng)過近 12 個年頭的沉淀,伴隨著物聯(lián)網(wǎng)的興起,它正演變成一個功能強大、組件豐富的物聯(lián)網(wǎng)操作系統(tǒng)。
總而言之,RT-Thread在這次比賽中充分發(fā)揮了一個物聯(lián)網(wǎng)操作系統(tǒng)及其生態(tài)所蘊含的優(yōu)勢,這是以往嵌入式開發(fā)中由工程師只能自己手動搭建軟件系統(tǒng)所遠(yuǎn)不能及的,衷心祝愿RT-Thread 社區(qū)越辦越好,走向產(chǎn)業(yè),走向世界。