NB-IoT新手上路與快速原型構(gòu)建

前言

從CAT0開始推廣開始涡戳,就知道NB-IoT的大名皿淋,但是直到上周才開始實(shí)際測(cè)試凰兑。技術(shù)上妥粟,以我以往的2G/3G MODEM積累的代碼,沒有特別的技術(shù)難度吏够。

NB-IoT的真正問題在于其封閉性和行政管理要求勾给。華為最為標(biāo)準(zhǔn)和規(guī)范的制定者,從一開始就是以封閉系統(tǒng)的方式進(jìn)行推廣的稿饰。嘗試壟斷所有的一切資源:芯片锦秒、模組、終端喉镰、IoT平臺(tái)甚至系統(tǒng)集成旅择。同時(shí)透過工信部陽(yáng)謀鏟除LoRaWAN/Sigfox等競(jìng)爭(zhēng)標(biāo)準(zhǔn)。

所以侣姆,我從最開始的熱切盼望生真,轉(zhuǎn)而旁觀、繼而反感捺宗。

然而柱蟀,在商言商,應(yīng)該拋棄成見蚜厉〕ひ眩基于移動(dòng)蜂窩基站的公眾物聯(lián)網(wǎng)有著天生的優(yōu)勢(shì):

  • 網(wǎng)絡(luò)覆蓋率;
  • 成熟的基礎(chǔ)建設(shè)...

只要資費(fèi)合理昼牛,其實(shí)未嘗不可作為業(yè)務(wù)基礎(chǔ)术瓮。所以昨天抽空我測(cè)試了一把最成熟的BC95-B8電信版模組。

萬能的X寶

X寶上賣家不僅提供了BC95模組核心板贰健,還有中國(guó)電信NB SIM卡胞四。而且還幫助我配置了UDP端口轉(zhuǎn)發(fā)。這樣我就可以進(jìn)行開發(fā)工作了伶椿。

設(shè)備方案組成

第一個(gè)產(chǎn)品是針對(duì)慢速資產(chǎn)定位辜伟,如寵物、兒童脊另、老人导狡、自行車和電動(dòng)車等。所以板子上有BC95 + LR70R + MCU + FeRAM + PWR + LiPo偎痛。我知道新一代芯片已經(jīng)內(nèi)置了定位芯片旱捧,但是差別不大。最關(guān)鍵的依然是MCU固件中關(guān)于AT指令集的處理看彼。

AT以及NMEA指令集的處理說穿了就是串口字符串的收發(fā)和格式化處理廊佩。

根據(jù)我以往的工程經(jīng)驗(yàn)囚聚,不同編程語(yǔ)言的字符串處理難度是不同的:

Embedded C/C++ > Standard C/C++ > Java > Lua > JavaScript > Python

嵌入式C/C++如Keil/IAR之所以比標(biāo)準(zhǔn)C/C++要更難處理字符串,差異點(diǎn)在于嵌入式的libc庫(kù)資源受限标锄。一旦libc鏈接進(jìn)來顽铸,ROM/RAM要多占用不少。

C++/Java中的String類庫(kù)要比標(biāo)準(zhǔn)libc中的函數(shù)要更加方便料皇,當(dāng)然本質(zhì)上是一回事情谓松。但是C++要多占用Heap和其他資源。而Java需要額外的runtime践剂。

在VHLL中鬼譬,Lua/JavaScript/Python我覺得是類似,用于處理字符串實(shí)在太簡(jiǎn)單了逊脯,拿起來就可以用优质,連工程都不需要建立。相比之下军洼,我選用了Python巩螃。

基于以上理由,我選用了STM32F4和L0作為主控匕争。原型采用F4避乏,支持MicroPython,而L0作為后續(xù)cost-down版本甘桑,使用GCC-ARM拍皮。

測(cè)試

先寫了一個(gè)UART/USB_VCP的橋接腳本,用于測(cè)試了BC95的指令和L70R的NMEA指令跑杭。以下是測(cè)試結(jié)果:

ATI

Quectel
BC95-B5
Revision:BC95B5HBR01A03W16

OK

AT+CFUN?

+CFUN:1

OK

AT+CIMI

460111175097877

OK

AT+CSQ

+CSQ:19,99

OK

AT+CEREG?

+CEREG:0,1

OK

AT+CGPADDR

+CGPADDR:0,10.161.109.154

OK

AT+NPING=123.57.211.188

OK

+NPING:123.57.211.188,116,4817

AT+NSOCR=DGRAM,17,8888,1

0

OK

AT+NSOST=0,123.57.211.188,59980,2,3031

0,2

OK

+NSONMI:0,2

AT+NSORF=0,2

0,123.57.211.188,59980,2,3031,0

OK

注意

為了保護(hù)業(yè)務(wù)端口铆帽,以上日志中,IP地址已經(jīng)被修改過艘蹋。讀者就別費(fèi)心測(cè)試了锄贼。以上日志簡(jiǎn)單測(cè)試了NB Modem的收發(fā)流程票灰。

原型腳本

用MicroPython開發(fā)原型腳本也非常簡(jiǎn)單女阀。而且使用UART.readline()可以一次性把一行字符串讀取進(jìn)來,然后通過binascii直接轉(zhuǎn)換屑迂,然后多重賦值浸策。一次性獲取經(jīng)緯度、高度惹盼、時(shí)間庸汗、方位角、速度等等手报。

固件功能加持

基于基礎(chǔ)代碼蚯舱,還需要添加以下功能:

  • 基于UDP的設(shè)備認(rèn)證改化,包括ID/Key換取Token
  • 基于UDP的設(shè)備認(rèn)證獲取的Token,加上時(shí)間戳和Nonce隨機(jī)數(shù)枉昏,計(jì)算簽名散列值陈肛,然后上傳GPS數(shù)據(jù),或任意數(shù)據(jù)兄裂。
  • 下發(fā)指令處理等句旱。
  • 升級(jí)到CoAP/DTLS。

BC95的CoAP幾乎是被閹割的版本晰奖,還要通過華為或者中國(guó)電信平臺(tái)轉(zhuǎn)發(fā)谈撒。好在UDP就是一個(gè)很好地通路,所以我打算通過UDP端口實(shí)現(xiàn)一個(gè)CoAP Client/Server匾南。

不太確定的是此類設(shè)備的外形啃匿。車用?腕帶類蛆楞?日用品類立宜?胸牌類?

服務(wù)器和移動(dòng)APP

由于我有自己研發(fā)的EPIC IoTHub/EPIC AppBuilder臊岸,而UDP服務(wù)器基于Twisted/Netty增設(shè)一個(gè)Connector端口也非常簡(jiǎn)單橙数,如此,原來的EPIC云端就可以對(duì)接上了帅戒。

而EPIC AppBuilder的ATS就是針對(duì)資產(chǎn)定位的灯帮,采用了Baidu地圖,不過最近在調(diào)研Baidu的鷹眼服務(wù)和服務(wù)器之間整合逻住。不過就最簡(jiǎn)單的實(shí)時(shí)定位和歷史數(shù)據(jù)查閱和可視化钟哥。都已經(jīng)實(shí)現(xiàn)。并支持微信社交賬戶登陸和分享瞎访。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腻贰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子扒秸,更是在濱河造成了極大的恐慌播演,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伴奥,死亡現(xiàn)場(chǎng)離奇詭異写烤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拾徙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門洲炊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事暂衡⊙ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵狂巢,是天一觀的道長(zhǎng)拓提。 經(jīng)常有香客問我,道長(zhǎng)隧膘,這世上最難降的妖魔是什么代态? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮疹吃,結(jié)果婚禮上蹦疑,老公的妹妹穿的比我還像新娘。我一直安慰自己萨驶,他們只是感情好歉摧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腔呜,像睡著了一般叁温。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上核畴,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天膝但,我揣著相機(jī)與錄音,去河邊找鬼谤草。 笑死跟束,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丑孩。 我是一名探鬼主播冀宴,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼温学!你這毒婦竟也來了略贮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤仗岖,失蹤者是張志新(化名)和其女友劉穎逃延,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箩帚,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡真友,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年黄痪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了紧帕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖是嗜,靈堂內(nèi)的尸體忽然破棺而出愈案,到底是詐尸還是另有隱情,我是刑警寧澤鹅搪,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布站绪,位于F島的核電站,受9級(jí)特大地震影響丽柿,放射性物質(zhì)發(fā)生泄漏恢准。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一甫题、第九天 我趴在偏房一處隱蔽的房頂上張望馁筐。 院中可真熱鬧,春花似錦坠非、人聲如沸敏沉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盟迟。三九已至,卻和暖如春潦闲,著一層夾襖步出監(jiān)牢的瞬間攒菠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工歉闰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留要尔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓新娜,卻偏偏與公主長(zhǎng)得像赵辕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子概龄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容