LPWAN最熱門的兩種連接技術(shù)中咱士,NB-IoT是專門針對(duì)公眾移動(dòng)蜂窩網(wǎng)絡(luò)的技術(shù)。如果運(yùn)營(yíng)商不設(shè)置門檻,開發(fā)難度相對(duì)容易舀武。這一點(diǎn)在2G GPRS時(shí)代就是如此了。開發(fā)商不用開發(fā)BS/GW/NS/JS离斩,只需要開發(fā)ED/AS/App三部分银舱。最基礎(chǔ)原型只需要開發(fā)設(shè)備和網(wǎng)站既可以完成。
回避運(yùn)營(yíng)商門檻
國(guó)內(nèi)運(yùn)營(yíng)商限制了開發(fā)者的來源和接入方式捐腿,只能夠同運(yùn)營(yíng)商平臺(tái)和華為平臺(tái)對(duì)接纵朋。解決之道之一就是利用透?jìng)鱑DP,讓渠道商把對(duì)應(yīng)的UDP報(bào)文轉(zhuǎn)發(fā)到開發(fā)商的私有IP茄袖。
NB-IoT設(shè)備
NB-IoT開發(fā)比開發(fā)GSM要簡(jiǎn)單操软,因?yàn)椴恍枰袚Q二進(jìn)制透?jìng)骱投滔⒛J健腝uetel模塊看宪祥,NB-IoT都是通過原來短消息的AT指令來收發(fā)的聂薪。都是字符串處理而已。
相比C/C++/Java蝗羊,VHLL語言如Python/JavaScript/Lua/Ruby處理字符串簡(jiǎn)單太多了藏澳。所以IoT開發(fā)語言為何優(yōu)選VHLL,這還是有一定道理的耀找。慣用C/C++/Java的工程師定義的大都是二進(jìn)制協(xié)議翔悠,而慣用Web的工程師定義的協(xié)議大多是文本協(xié)議,和這一點(diǎn)也有關(guān)聯(lián)野芒。
但是Python/JavaScript/Ruby VHLL有個(gè)較大的問題蓄愁,VM的功耗管理問題。尤其是需要長(zhǎng)期睡眠的設(shè)備狞悲,至少VM需要有針對(duì)性的設(shè)計(jì)撮抓。相比之下,Lua處理起來比較簡(jiǎn)單一些摇锋。
所以丹拯,建議路徑是:
- MicroPython/Lua + STM32 + BC95
- Arduino + STM32/STM8 + BC95
Web
NB-IoT采用了UDP/CoAP協(xié)議站超,所以連接端和長(zhǎng)連接TCP有所不同。CoAP其實(shí)可以理解為簡(jiǎn)化的RESTful API乖酬,短連接TCP和UDP在應(yīng)用層角度非常類似死相。Raw UDP可以參考一下LoRaWAN的PktFwd協(xié)議,采用最簡(jiǎn)單的push/pull + ack方式咬像。至于復(fù)雜的握手就算了媳纬,尤其是中間橫亙著運(yùn)營(yíng)商、渠道商兩道UDP轉(zhuǎn)發(fā)的時(shí)候施掏,失敗的概率太大了。從這個(gè)角度看茅糜,國(guó)內(nèi)NB-IoT下發(fā)指令比LoRaWAN模型失敗率還要高得多七芭。
H5/App/Mini-program
開發(fā)App成本最高,設(shè)計(jì)響應(yīng)式H5和小程序則成本比較低蔑赘。