LoRaWAN:復(fù)雜度vs自由度
圖1:LoRaWAN的傳統(tǒng)網(wǎng)絡(luò)模型圖
上圖僅僅是企業(yè)級LoRaWAN網(wǎng)絡(luò)的模型圖。僅僅包括ED/GW/NS/AS钉凌,分別指設(shè)備、網(wǎng)關(guān)、網(wǎng)絡(luò)服務(wù)何鸡、應(yīng)用服務(wù)纺弊。如果是運(yùn)營商級別網(wǎng)路牛欢,還需要增加一個JS(Join Server),以滿足漫游的需求淆游。此時傍睹,我們需要一個較為復(fù)雜的分布式網(wǎng)絡(luò)以及信令系統(tǒng)。這超出了大多數(shù)的開發(fā)者能力犹菱,或者精力范圍拾稳。
降維簡化設(shè)計
全棧開發(fā)并不意味著要把所有的設(shè)計任務(wù)都攬在自己身上。技術(shù)復(fù)用腊脱、快速整合是最關(guān)鍵的一步访得。
如果LoRaWAN將來是一種普遍適用的LPWAN技術(shù),那么在不久的將來,很快價格就會降低到和網(wǎng)卡一樣便宜悍抑,一樣通用鳄炉。那么您會去做網(wǎng)卡制造業(yè)務(wù)么?從這個邏輯上說搜骡,未來硬件的毛利一定是越來越低拂盯。
如果LoRaWAN將來依然是一種小眾技術(shù),那么您會繼續(xù)在LoRaWAN業(yè)務(wù)上投入這么多精力么记靡?為什么在那么廣泛的IoT場景中谈竿,LoRaWAN現(xiàn)在比其他更加熱門?從這個邏輯上說摸吠,業(yè)界大體意識到:LoRaWAN的標(biāo)準(zhǔn)化開始了空凸。
所以,回避大而全寸痢,復(fù)用現(xiàn)有技術(shù)劫恒,專注自己的優(yōu)勢非常重要。
- ED/GW硬件: 復(fù)用RF模塊轿腺、EV板两嘴、甚至白牌的硬件
- ED/GW軟件: 復(fù)用Arduino/mbed/Python/Node/Lua設(shè)計
- NS: 采用TTN網(wǎng)絡(luò)服務(wù),或者國內(nèi)的NS服務(wù)
- AS: 采用通用的Flask/Node.js完成任務(wù)族壳,集成RESTful API即可憔辫。如果有應(yīng)用場景的現(xiàn)成設(shè)計更好。
- APP: 采用React Native仿荆,甚至依賴于移動端瀏覽器來完成設(shè)計贰您。因為這大體上就是一個網(wǎng)絡(luò)應(yīng)用。
所以拢操,設(shè)計任務(wù)降維成外購硬件锦亦、加載固件、對接NS令境,設(shè)計AS杠园,忽略APP即可。
ED/GW設(shè)備設(shè)計
圖2:LoRaWAN推薦的報文推送網(wǎng)關(guān)
在圖1所示ED/GW/NS中舔庶,GW是一個比較重要的角色抛蚁。但是從圖2可以看到,GW其實僅僅工作在PHY/HAL層面惕橙,非常貼近硬件瞧甩,不涉及到任何MAC層的操作,做的工作僅僅是將空口報文通過TCP/UDP發(fā)送給NS弥鹦。反向也是如此肚逸。所有MAC層的操作,在ED和NS的對等實體中完成。AES加密MAC層數(shù)據(jù)交由GW傳輸而已朦促。
此圖解釋了ED/GW所需要完成的設(shè)計任務(wù)犬钢。那么所需要的硬件平臺呢?
圖3:Arduino MKR1300 LoRaWAN ED/GW
MCU + SX127X是最基本的模型思灰。
Arduino MKR1300采用了Murata的LoRaWAN模組玷犹,內(nèi)置STM32L0/L1 MCU,并且提供了USB/UART轉(zhuǎn)接洒疚。這種模式是最主流的ED/GW(1-ch)的硬件設(shè)計歹颓。當(dāng)然為了實現(xiàn)低成本和低功耗,可以用國產(chǎn)RF模塊油湖,國產(chǎn)MCU或者STM8巍扛。因為LoRaWAN需要足夠的ROM/RAM,尤其是ED必須實施完整的LoRaWAN堆棧乏德。我個人不太推薦8bit MCU撤奸,片內(nèi)資源太少。一如我在8051時代不推薦使用日系4bit MCU一樣喊括。
圖4:MicroPython PyBoard
一般來說胧瓜,MCU會選擇STM32F0/F1/F4/L0/L4。從價格上說F4/L4略貴郑什,但是由于支持MicroPython/Lua/JS/C++編程府喳,可以適用于許多場景。我個人測試過CubeMX/ARM mbed/Arduino/MicroPython/Lua蘑拯。不同的固件選擇非常多钝满。但是需要時間不斷測試。
由于這些MCU大多具備USB端口申窘,所以可以直接插入到任何系統(tǒng)中構(gòu)建GW弯蚜。低成本GW則使用WiFi SoC ESP32完成。這里不推薦ESP8266剃法,GPIO過少碎捺。
圖5:Linux SBC
Linux SBC是一種可選件,配合STM32F1/F4構(gòu)成網(wǎng)關(guān)玄窝。不過它更大的價值在于可以靈活構(gòu)建GW/NS一體化設(shè)計牵寺。更加適合小型企業(yè)的運(yùn)行悍引。實際上恩脂,它還有一個替代品,即智能路由器趣斤。智能路由器比樹莓派之類的EVB更加低廉俩块,更容易部署。