作者:forest-rain
1 概述
物聯(lián)網(wǎng)終極目標(biāo)是實(shí)現(xiàn)萬物互聯(lián),幫助人類社會實(shí)現(xiàn)更高階的智能化。IoT網(wǎng)關(guān)負(fù)責(zé)海量物聯(lián)網(wǎng)端側(cè)設(shè)備與物聯(lián)網(wǎng)云端應(yīng)用的溝通,發(fā)揮著承上啟下的重要作用,是實(shí)現(xiàn)萬物互聯(lián)的關(guān)鍵一環(huán)。IoT網(wǎng)關(guān)已廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、畜牧業(yè)、智能家居、智慧城市等等垂直行業(yè)。
LiteCoG(Lite Connect Gateway)是一款小型的、支持多種連接方式的IoT網(wǎng)關(guān),當(dāng)前的主體功能是一個(gè)單雙通道的LoRaWAN網(wǎng)關(guān),北向采用以太網(wǎng)WiFi4G Cat1連接,南向通信采用LoRa通信,同時(shí)也可支持BLERS485等連接方式,具有遠(yuǎn)距離通信、低成本、方便部署、易擴(kuò)展等特性,便于市場規(guī)模推廣。旨在面向智能家居、智慧社區(qū)、智慧停車等局域網(wǎng)內(nèi)、設(shè)備容量較小的物聯(lián)網(wǎng)通信場景,同時(shí)由于具備良好的成本優(yōu)勢,也可以作為LoRaWAN網(wǎng)絡(luò)的補(bǔ)盲設(shè)備。
當(dāng)前實(shí)現(xiàn)萬物互聯(lián)所面臨的問題與挑戰(zhàn):
如智能家居,目前智能家居還不是社會剛需,因此大規(guī)模推廣對成本極其敏感,采用高性能的LoRa網(wǎng)關(guān)芯片(SX130x)方案,可以滿足設(shè)計(jì)需求,但是成本承壓,同時(shí)性能過剩。
如智慧社區(qū),智慧社區(qū)是放大版的智能家居,也是一個(gè)縮小版的社會。隨著我國人口日益老齡化,智慧養(yǎng)老社區(qū)的需求日益突顯,如何解決空巢老人、孤寡老人的監(jiān)護(hù)是我國當(dāng)前社會面臨的一個(gè)新難題。構(gòu)建智慧社區(qū)所需龐大的啟動資金是一個(gè)必須逾越的障礙。
如智慧停車,停車難一直是城市公共交通的長期挑戰(zhàn)。海量的車,方便了出行,卻受限于終點(diǎn),通過物聯(lián)網(wǎng)技術(shù)把分散的停車資源利用起來,是緩解停車難的可行方式。
LiteCoG網(wǎng)關(guān)基于RT-Thread操作系統(tǒng),采用LoRa SX126XSX127X來提供標(biāo)準(zhǔn)LoRaWAN接入能力,可以較大壓縮BOM成本;借助LoRa調(diào)制的遠(yuǎn)距離通信能力、低功耗特性,在全屋社區(qū)小范圍停車等應(yīng)用領(lǐng)域,基本可以非常靈活的部署電池供電的智能設(shè)備,非常方便。同時(shí)借助RT-Thread強(qiáng)大的軟硬件生態(tài)資源,可以極大加快產(chǎn)品開發(fā)效率,縮短產(chǎn)品上市時(shí)間。
-
- LoRaWAN單通道網(wǎng)關(guān)(lgwsc)
-
-
- 對接標(biāo)準(zhǔn)LoRaWAN服務(wù)器
-
-
-
-
-
- 利爾達(dá) Unicore
- 騰訊云 loragw.qcloud.com
-
-
-
-
-
- Class A
- 支持lgwsc shell命令
-
-
-
- 支持網(wǎng)關(guān)參數(shù)配置
-
-
-
- 支持掉電存儲功能
-
-
-
- 北向連接
-
-
-
-
- Ethernet
- WiFi
- 4G Cat1
-
-
2 開發(fā)環(huán)境
- 軟件平臺:
-
- RT-Thread版本:4.0.3
- 開發(fā)工具及版本:RT Thread Studio 2、MDK5
- PessimonUIBuilder 3.0設(shè)計(jì)器
- 硬件平臺
-
- ART-Pi主板
-
-
- STM32H750
- AP6212
-
-
- ART-Pi 工業(yè)擴(kuò)展板
-
-
- 以太網(wǎng)、485
-
-
- ART-Pi 多媒體擴(kuò)展板
-
-
- 320*480 TFT屏幕
-
-
- LoRa多功能能擴(kuò)展板(LRS007)
-
-
- SX1268 LoRa模塊
- 1.3英寸 OLED液晶屏
-
3 RT-Thread使用情況概述
- RT-Thread內(nèi)核:
- 組件(Compentont):
-
- FinSH控制臺
-
- 設(shè)備驅(qū)動(Device Drivers)
-
-
- I/O 設(shè)備模型
-
-
-
- WIFI框架
-
-
-
- SPI框架
-
-
-
-
- 使用 SPI 框架來驅(qū)動SPI接口的設(shè)備(比如本文中的LoRa SPI模塊)
-
-
-
- 網(wǎng)絡(luò)(Network)
-
-
- 常用工具(Utilities)
-
-
-
-
- ulog日志
-
-
- 軟件包
-
- AT設(shè)備軟件包:at_device-latest;
-
- adbd-v1.1.1
-
- btstack-v0.0.1
-
- CmBacktrace-v1.4.0
-
- EasyFlash-v4.1.0
-
- fal-v0.5.0
-
- littlefs-v2.0.5
-
- JSON軟件包 cJSON-latest
-
- 網(wǎng)絡(luò)工具包 netutils-latest
- webclient軟件包 webclient-latest
-
- webnet-v2.0.2
-
-
- web服務(wù)器
-
-
- loragw-packet-forward-latest
-
-
- 單通道lorawan網(wǎng)關(guān)軟件包
-
-
- lora-radio-driver-latest
-
-
- lora radio驅(qū)動軟件包
-
-
- multi-rtimer
-
-
- 低功耗硬實(shí)時(shí)定時(shí)模塊
-
-
- ft6236-v1.0.0
-
-
- 觸摸芯片ft6236驅(qū)動
-
-
- Persimmon柿餅庫
- 其他
-
- ART-Pi SDK開發(fā)包
-
-
- sdk-bsp-stm32h750-realthread-artpi
-
4 系統(tǒng)設(shè)計(jì)
4.1 典型IoT系統(tǒng)應(yīng)用框架
多功能單通道LoRaWAN網(wǎng)關(guān)(LiteCoG)用于連接物聯(lián)網(wǎng)終端設(shè)備與云端服務(wù)器,起到了承上啟下的作用。
4.2 硬件框架
多功能單通道LoRaWAN網(wǎng)關(guān)(LiteCoG)硬件主要由ART-Pi主板+ART-Pi工業(yè)擴(kuò)展板+ART-Pi多媒體擴(kuò)展板+4G Cat1模塊擴(kuò)展板(L610)+LoRa多功能擴(kuò)展板(LRS007)組成。
通過不同的搭配,可滿足不同應(yīng)用場景。比如
-
- LoRaWAN室內(nèi)網(wǎng)關(guān)(WiFi版本)
-
-
- ART-Pi主板+LoRa多功能擴(kuò)展板(LRS007)應(yīng)用于智能家居、智慧農(nóng)業(yè)等室內(nèi)場景
-
-
- LoRaWAN室內(nèi)網(wǎng)關(guān)(WiF版本) 帶中控屏
-
-
- ART-Pi主板+ART-Pi多媒體擴(kuò)展板+LoRa多功能擴(kuò)展板(LRS007)應(yīng)用于智能家居、智慧社區(qū)等場景
-
-
- LoRaWAN室外網(wǎng)關(guān)(4G版本)
-
-
- ART-Pi主板+4G Cat1模塊擴(kuò)展板(L610)+LoRa多功能擴(kuò)展板(LRS007)應(yīng)用于智慧停車等室外場景
-
-
- LoRaWAN室內(nèi)外網(wǎng)關(guān)(以太網(wǎng)版)
-
-
- ART-Pi主板+ART-Pi工業(yè)擴(kuò)展板+LoRa多功能擴(kuò)展板(LRS007)應(yīng)用于智慧工廠等場景
-
多功能單通道LoRaWAN網(wǎng)關(guān)(LiteCoG)北向支持WiFi、以太網(wǎng)、4G Cat1方式,根據(jù)實(shí)際應(yīng)用場景選擇。北向采用LoRa調(diào)試方式,實(shí)現(xiàn)LoRaWAN單通道接入功能。
對于智能家居等應(yīng)用,若有中控屏需求,則可進(jìn)一步使用觸摸屏或者OLED來進(jìn)行人機(jī)交互。
4.3 軟件框架說明
多功能單通道LoRaWAN網(wǎng)關(guān)(LiteCoG)1.0主體功能之一是實(shí)現(xiàn)單通道的LoRaWAN網(wǎng)關(guān),北向通信協(xié)議是基于UDP通信,南向通信協(xié)議是LoRaWAN,同時(shí)可以進(jìn)一步擴(kuò)展LiteCoG來實(shí)現(xiàn)邊緣計(jì)算功能,即直接對LoRaWAN終端設(shè)備控制的能力,以便滿足一些網(wǎng)沒有外網(wǎng)、更高的實(shí)時(shí)等情況。其他功能還有網(wǎng)關(guān)參數(shù)配置,掉電保存、獲取天氣信息,OLED顯示,柿餅UI顯示等等
5 軟件模塊說明
- loragw-pkt-fwd單通道lorawan網(wǎng)關(guān)實(shí)現(xiàn)lorawan數(shù)據(jù)包轉(zhuǎn)發(fā)功能
-
- static void thread_up(void)
-
-
- 接收到lorawan終端設(shè)備的lora上行消息
- 周期性獲取狀態(tài)信息
- 組幀成 PUSH_DATA(json格式),然后發(fā)送給lorawan服務(wù)器
-
-
- static void thread_down(void);
-
-
- 維持與lorawan服務(wù)器之間鏈路
- 接收并解析lorawan服務(wù)器的下行數(shù)據(jù)包(json),并加入JiT隊(duì)列
-
-
- static void thread_jit(void);
-
-
- 周期性從 JiT 隊(duì)列取報(bào)文并通過lora發(fā)送到lorawan終端設(shè)備
-
-
- static int lgwsc(int argc, char *argv[])
-
-
- shell命令,用于設(shè)置網(wǎng)關(guān)參數(shù)(eui、freq、datarate等)
- 參數(shù)掉電存儲
-
- lora-radio軟件包
-
- 實(shí)現(xiàn)lora芯片sx126xsx127x射頻驅(qū)動
-
-
- lora-radio-sx126x.c
-
-
-
-
- 對外提供了上層訪問接口實(shí)現(xiàn)
-
-
-
-
- lora-spi-sx126x.c
-
-
-
-
- sx126x芯片的spi讀寫接口實(shí)現(xiàn)
-
-
-
-
-
-
- rt_device
-
-
-
-
-
- sx126x.c
-
-
-
-
- lora芯片sx126x底層驅(qū)動
-
-
- multi-rtimer軟件包
-
- 實(shí)現(xiàn)硬實(shí)時(shí)定時(shí)模塊,用于給lora-radio超時(shí)服務(wù)、給loragw-pkt-fwd提供較精確的下發(fā)定時(shí)器
- lorawan-ed-stack軟件包
- 用于解析lorawan協(xié)議幀,實(shí)現(xiàn)LiteCoG本地對lorawan終端設(shè)備的直接控制
6 演示效果
視頻:
7 代碼地址在附件。
8 比賽感悟
參加此次比賽使我對RT-Thread操作系統(tǒng)有了一個(gè)相對全面的應(yīng)用與認(rèn)識??傮w感受,RT-Thread是一個(gè)非常強(qiáng)大的RTOS,歷經(jīng)10多年的打磨與沉淀,很多方面已經(jīng)比較成熟與完善。雖然行業(yè)內(nèi)還有很多其他優(yōu)秀的RTOS,但是RT-Thread更貼近于開發(fā)者,不斷迭代創(chuàng)新,同時(shí)代碼風(fēng)格與文檔、豐富組件與軟件包也贏得了很多粉絲。
搭積木式開發(fā),大大提高了開發(fā)效率,這得益于RT-Thread長期積累、十年磨一劍地持續(xù)迭代與智慧輸出,提供了非常豐富的開源軟件資源,就如同linux一樣,很多輪子已經(jīng)造好,rt-thread使得嵌入式的應(yīng)用開發(fā)變得更簡單與高效。RT-Thread軟件包的形式,繼承與發(fā)揚(yáng)包管理器的理念,便于大家使用與貢獻(xiàn)自己的代碼與知識分享,也使得RT-Thread開源社區(qū)更為活躍。
星星之火可以燎原,充實(shí)自己,向大佬們學(xué)習(xí),為開源社區(qū)添磚加瓦,貢獻(xiàn)自己的一份綿薄之力。期望有朝一日,物聯(lián)網(wǎng)行業(yè)可以借助rt-thread等RTOS生態(tài),各行各業(yè)的小伙伴們一同攜手并進(jìn),共同提升產(chǎn)品開發(fā)效率,進(jìn)而提升整體行業(yè)效率,降低社會成本。
LiteCoG 1.0目前還只實(shí)現(xiàn)產(chǎn)品原型功能,還有很多需要進(jìn)一步優(yōu)化完善的地方,未來也期待跟小伙伴們一起持續(xù)優(yōu)化與迭代為成熟穩(wěn)定的產(chǎn)品。
最后感謝主辦方提供的平臺與參與活動的工作人員們的辛勤付出。