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