物聯(lián)網(wǎng)產(chǎn)品框架:傳統(tǒng)設(shè)備使用通信模組連接云服務(wù)器(即上云)做數(shù)據(jù)傳輸,云端再進行數(shù)據(jù)應(yīng)用。[物聯(lián)網(wǎng)基礎(chǔ):BC28連接電信IOT平臺進行數(shù)據(jù)傳輸]。本文將使用 BC28 通過 COAP 協(xié)議連接電信IOT平臺,簡單的介紹下移遠NB-IOT通信模塊 BC28 是如何連接電信IOT平臺進行數(shù)據(jù)傳輸
NB-IOT業(yè)務(wù)主要包含NB-IoT設(shè)備、NB-IOT網(wǎng)絡(luò)、物聯(lián)網(wǎng)開放平臺、垂直行業(yè)應(yīng)用:
BC28 是移遠的一款超緊湊、高性能、低功耗的多頻段 NB-IoT 無線通信模塊,支持 B1/B3/B8/B5/B20/B28 頻段。其尺寸僅為17.7mm×15.8mm ×2.0mm,能最大限度地滿足終端設(shè)備對小尺寸模塊產(chǎn)品的需求,常被用于無線抄表、共享單車、智能停車、智慧城市、安防、資產(chǎn)追蹤、智能家電、農(nóng)業(yè)和環(huán)境監(jiān)測以及其它諸多行業(yè)
電信IOT平臺是實現(xiàn)對各種NB-IoT設(shè)備數(shù)據(jù)的統(tǒng)一管理,同時向第三方應(yīng)用系統(tǒng)開放接口,讓各種應(yīng)用能快速構(gòu)建自己的物聯(lián)網(wǎng)業(yè)務(wù)
電信物聯(lián)網(wǎng)平臺包括應(yīng)用管理、設(shè)備管理、系統(tǒng)管理等能力,實現(xiàn)統(tǒng)一安全的網(wǎng)絡(luò)接入、各種終端的靈活適配、海量數(shù)據(jù)的采集分析,從而實現(xiàn)新價值的創(chuàng)造。
物聯(lián)網(wǎng)平臺不僅可以簡化各類終端廠家的開發(fā),屏蔽各種復(fù)雜設(shè)備接口,實現(xiàn)終端設(shè)備的快速接入;同時面向各行業(yè)提供強大的開放能力,支撐各行業(yè)伙伴快速實現(xiàn)各種物聯(lián)網(wǎng)業(yè)務(wù)應(yīng)用
設(shè)備的Profile文件是用來描述一款設(shè)備是什么、能做什么以及如何控制該設(shè)備的文件。每款設(shè)備都需要一個Profile文件
一個Profile文件的內(nèi)容主要包括兩部分,一部分是設(shè)備的基礎(chǔ)屬性信息,如manufacturerId(廠商ID)、manufacturerName(廠商名字)、deviceType(設(shè)備類型)、model(設(shè)備型號)、protocolType(協(xié)議類型)等;另一部分是設(shè)備的服務(wù)信息,這一部分定義了設(shè)備的業(yè)務(wù)數(shù)據(jù),包括設(shè)備上報的上行數(shù)據(jù)和廠商服務(wù)器下發(fā)給設(shè)備的下行數(shù)據(jù)
Profile定義時,屬性列表先新建服務(wù),再添加屬性;命令列表先添加命令,再添加命令下發(fā)字段
NB-IoT設(shè)備和中國電信物聯(lián)網(wǎng)開放平臺之間采用CoAP協(xié)議通訊,CoAP消息的數(shù)據(jù)為應(yīng)用層數(shù)據(jù),應(yīng)用層數(shù)據(jù)的格式由設(shè)備廠商自行定義
由于NB-IoT設(shè)備對省電要求通常較高,所以應(yīng)用層數(shù)據(jù)一般采用十六進制格式
應(yīng)用層數(shù)據(jù)在中國電信物聯(lián)網(wǎng)開放平臺做協(xié)議解析時,會轉(zhuǎn)換成統(tǒng)一的json格式,以方便應(yīng)用服務(wù)器使用。
要實現(xiàn)十六進制消息與json格式消息的轉(zhuǎn)換功能,中國電信物聯(lián)網(wǎng)開放平臺需要使用設(shè)備廠商提供的編解碼插件,一款設(shè)備對應(yīng)一個編解碼插件
編解碼插件開發(fā)時,先新建消息,包含數(shù)據(jù)上報和命令下發(fā)兩條,再添加數(shù)據(jù)上報字段和命令下發(fā)字段
注:關(guān)于Profile定義和編解碼插件開發(fā)多種多樣,比如:多條數(shù)據(jù)上報消息的插件開發(fā)、字符串及可變長字符串數(shù)據(jù)類型的插件開發(fā)、數(shù)組及可變長數(shù)組數(shù)據(jù)類型的插件開發(fā)、含命令執(zhí)行結(jié)果的編解碼插件開發(fā),具體開發(fā)的教程可查看電信官方文檔:《中國電信物聯(lián)網(wǎng)開放平臺_NB-IoT業(yè)務(wù)對接指導(dǎo)書》
需將 Profile 和編解碼插件建立映射關(guān)系
在使用模塊對接平臺之前,我們需要先使用平臺的虛擬設(shè)備模擬測試下是否能正常數(shù)據(jù)上報和命令下發(fā)
添加真實設(shè)備,設(shè)備名稱可自定義,設(shè)備標識需使用模塊的IMEI(國際移動設(shè)備識別碼),IMEI在模塊的外殼上面有絲印,也可使用AT指令“AT+CGSN=1”查詢
BC28通過AT指令附著網(wǎng)絡(luò)(即連接網(wǎng)絡(luò))的過程如下:當能查詢到到模塊的IP地址時,說明網(wǎng)絡(luò)附著成功
注:若發(fā)送第一個指令“AT”,未返回“OK”的話,請檢查是否選擇了正確的串口,以及合適的波特率(BC28的串口波特率為9600)
序號 AT指令 指令解析 1 AT 測試指令,若返回OK,則模塊可正常通信 2 AT+CPIN? 檢查SIM卡是否在位 3 AT+CSQ 查詢信號質(zhì)量 4 AT+CGATT=1 觸發(fā)網(wǎng)絡(luò)連接 5 AT+CEREG? 查詢網(wǎng)絡(luò)注冊狀態(tài) 6 AT+CGATT? 查詢網(wǎng)絡(luò)附著狀態(tài) 7 AT+CGPADDR 查詢模塊的 IP 地址
BC28通過AT指令連接電信IOT平臺的過程如下:當發(fā)送AT指令“AT+QLWSREGIND=0”返回“+QLWEVTIND:3”時,代表設(shè)備已連接上電信IOT平臺
序號 AT指令 指令解析 1 AT+NCDP=180.101.147.115,5683 設(shè)置 IoT 平臺 IP 地址及端口 2 AT+QLWSREGIND=0 開始注冊 IoT 平臺
在電信IOT平臺上設(shè)備的狀態(tài)變?yōu)椤霸诰€”,代表設(shè)備已連接上電信IOT平臺
數(shù)據(jù)上報的AT指令為“AT+QLWULDATAEX”,看看官方AT指令手冊對它的描述
使用AT指令為“AT+QLWULDATAEX”發(fā)送數(shù)據(jù),當接收到“+QLWULDATASTATUS:4”表示數(shù)據(jù)發(fā)送成功
序號 AT指令 指令解析 1 AT+QLWULDATAEX=4,00140012,0X0100 發(fā)送CON 消息(00140012), IoT 平臺需要應(yīng)答 ACK 消息
在電信IOT平臺可以看到上報的數(shù)據(jù):{ "temperature": 20, "humidity": 18 }
注:消息發(fā)送模式選擇帶釋放輔助提示時,表示模塊在發(fā)送完數(shù)據(jù)之后將釋放連接以進入空閑模式,否則模塊會持續(xù)20多秒才能進入空閑模式,在做低功耗時需要用到
命令下發(fā)不需要AT指令,但有一點需要注意:NB-IOT模塊由于是面向低功耗領(lǐng)域的,長時間處于休眠狀態(tài),故云端下發(fā)命令時,NB-IOT模塊不能及時接收到,只有當模塊處于活動狀態(tài)下才能接收到云端命令
基于NB-IOT模塊的這個特性,平臺提供兩種命令下發(fā)機制:
電信IOT平臺下發(fā)“ON”命令,設(shè)備端接收到“ON”的16進制數(shù)“4F4E”,命令下發(fā)成功