1. 程式人生 > >騎士智慧科技M5310模組連線華為OC平臺實現資料互動

騎士智慧科技M5310模組連線華為OC平臺實現資料互動

一、實驗目的 使用騎士智慧科技M5310模組加USB轉串列埠,連線到華為OC平臺上,並實現溫溼度資料互動

二、準備工作 硬體:騎士智慧科技M5310模組 + 移動NB卡、USB轉串列埠、天線 軟體:C:\AAA\NBIoT&LoraWAN\騎士智慧科技技術資料\M5310開發板\M5310-華為COAP韌體

三、概述 M5310模組內建華為海思Hi2110 NBIoT晶片,模組支援移動B8頻段,可以通過LWM2M協議連線中國移動OneNet平臺,也可通過COAP協議連線華為OC平臺。本文件介紹如何讓NB模組連線上華為OC平臺,並實現溫溼度資料互動。華為OC平臺是一個強大的IoT平臺,使用者的NB裝置(也就是南向裝置)可在該平臺進行註冊,並且發出的資料會在該平臺進行轉發到北向服務。南向裝置發出的二進位制資料會在OC平臺進行編解碼,專程json格式資料發到北向應用服務,反之亦然。 對profile檔案和編解碼外掛,我的理解是:南向裝置上報的資料,要用編解碼外掛解析出來,而編解碼外掛和profile定義的結構一一對應,這樣IoT平臺才能正確識別上報的資料代表什麼含義。所以我們需要在OC平臺上建立profile(類似藍芽協議中的profile結構),建立編解碼外掛,然後才能實現資料互動。

四、實驗步驟 一、硬體連線 將USB轉串列埠連線上騎士智慧科技M5310模組,接線圖如下,然後插入移動NB卡,注意卡的方向。 USB轉串列埠 M5310模組 3V3 ----------------- VCC GND ----------------- GND TXD ----------------- RXD RXD ----------------- TXD 二、申請OC賬號 1.進入華為開發者平臺網頁:https://developer.huawei.com/ict/cn

2.按如下步驟,獲取遠端實驗室OC平臺賬號(在獲取賬號之前,要先註冊華為開發者論壇的賬號):

在這裡插入圖片描述 3.申請成功後,在對應的郵箱中會收到如下郵件: 在這裡插入圖片描述 4.點“NB方案平臺Portal連結”進入OC平臺後,輸入下方的登陸賬號和密碼,登陸成功後介面如下: 在這裡插入圖片描述

三、燒寫韌體 1.安裝UE Updater,這個軟體用來給M5310模組燒寫韌體,也就是更新Hi2110程式碼。 安裝軟體位置:C:\AAA\NBIoT&LoraWAN\騎士智慧科技技術資料\M5310開發板\UEUpdaterUI-3.22.0.14.msi 2.將USB轉串列埠接上電腦,開啟UE軟體,匯入韌體,點Update,等待韌體燒寫結束,如下: 在這裡插入圖片描述

3.燒寫結束後,關閉UE軟體,開啟串列埠除錯助手,選擇串列埠號,波特率設定為9600,傳送at+回車,觀察接收框是否收到OK,收到OK表明韌體燒寫成功。 在這裡插入圖片描述

四、OC平臺建立profile和編解碼外掛 1,登陸進OC平臺後,選擇左側的“Profile開發”->“Profile線上開發”->右上角“自定義產品”->右上角“建立全新產品”,填寫相關資訊,如下: 在這裡插入圖片描述

2.在本次實驗中,我們要上報溫溼度感測器的資料,所以我定義的產品型別是這樣的: 在這裡插入圖片描述

3.接下來我們需要建立該產品的服務以及服務下的屬性(聽起來很像藍芽協議中的profile->service->characteristic的概念),下面是我定義的一個溼度的服務,其中有三個屬性值(當前溼度、今天最小溼度、今天最大溼度),以及兩個命令欄位 在這裡插入圖片描述profile可參考C:\AAA\NBIoT&LoraWAN\如何接入華為OC參考資料\MultiSensor_eSDKK_v101,這是一份華為建立好的溫溼度profile模板。

4 .profile開發完成後,需要建立編解碼外掛。點左側“外掛開發“->”外掛開發“->右上角”新增外掛“->右上角”新建外掛“,選擇剛剛建立好的profile->“新增訊息”,這裡我們要上報溫度資料和溼度資料,所以我們需要新建兩條訊息,先來新建溼度的訊息,然後新增欄位,注意,欄位的第一個位元組一定要是地址域,也就是messageid(要勾選”標記為地址域“,其他欄位不要勾選),然後再按照profile中定義的三個屬性值新增好欄位,最後,如果需要IoT平臺對NB裝置上報的資料做響應的話,要勾選”是否新增響應欄位“,並設定響應資料。如下: 在這裡插入圖片描述 5.同樣的流程,再新建一個溫度的訊息,如下: 在這裡插入圖片描述 6.接下來我們需要新增新增的訊息和profile中屬性值的對映關係,將右側profile中的屬性值拖過來,與新增的訊息連線好,如下: 在這裡插入圖片描述 7.對映建立好之後,如下(這裡紅框內為什麼會交叉,我也想不明白,這裡的交叉意味著後續的資料解析就會出錯。後面再說) 在這裡插入圖片描述 8.這裡也可以將兩個服務放在一個訊息裡,如下:然後傳送AT+NMGS=6,000102030405,收到平臺回覆11223344: 在這裡插入圖片描述 在平臺的“歷史資料”中,可以看到上報的資料: 在這裡插入圖片描述 9.點選右上角”儲存“,”部署“,然後回到OC平臺主介面,可以看到外掛已經新建好了: 在這裡插入圖片描述 10.單擊“我的裝置 > 註冊裝置”,單擊選中需要註冊裝置對應的Profile。在Profile詳情頁,填寫“裝置名稱”和“裝置標識碼”,單擊“註冊”按鈕註冊裝置。裝置名稱:用於區分不同裝置,名稱可自定義(如MultiSensor-02)。裝置標識碼:裝置唯一標識。使用NB模組對接時,填寫模組的IMEI號碼。IMEI號為15位數,一般以86開頭,貼於NB模組標籤上,或可通過AT+CGSN=1指令查詢得到。如下: 在這裡插入圖片描述

五、終端入網 終端入網的詳細步驟如下所示: Step 1:終端上電,執行“AT+NRB”復位終端。如果返回OK,表示終端正常執行。 Step 2:執行“AT+CFUN=0”關閉功能開關。如果執行成功,返回OK。 Step 3:執行“AT+NTSETID=1,裝置ID”設定裝置ID。裝置ID為NB模組的IMEI號,如果執行成功,返回OK。 Step 4:執行“AT+NCDP=IP, PORT”設定需要對接IoT平臺的地址(申請OC平臺賬號時郵件下發的),埠為5683。如果執行成功,返回OK。如下: 在這裡插入圖片描述 Step 5:執行“AT+CFUN=1”開啟功能開關。如果執行成功,返回OK。 Step 6:執行“AT+CGATT=1”進行終端入網。如果執行成功,返回OK。 Step 7:執行“AT+CGPADDR”查詢終端是否獲取到核心網分配的IP地址,如果獲取到IP地址,表示終端入網成功。 Step 8:執行“AT+NNMI=1”設定下行資料通知功能,如果執行成功,返回OK。實際測試如下: 在這裡插入圖片描述 執行“AT+NMGS=5,00012E1F63”傳送上行資料,如果上行資料傳送成功,返回OK。由於設定了 “AT+NNMI=1”,如果編解碼外掛中寫了OceanConnect平臺對上報資料的應答,則上行資料傳送成功後會自動獲取應答資料。上報資料的AT命令為:AT+NMGS=5,00012E1F63。具體解析如下:1. AT+NMGS=N,XXXXXXXXXX為上報資料的AT命令格式,其中“N”表示一共上報幾個位元組,後面為具體的上報位元組內容,以十六進位制字串表示。這些需要提前在編解碼外掛中寫好。2. 本例中,一共上報5個位元組(實際用到4個位元組),分別為“00”、“01”、“2E”、“1F”、“63”(無效位元組)。其中,第一個位元組“00”表示上報資料對應的messageid為Temperature(溼度),第二個位元組“01”表示TemperatureMaxToday(當天溼度最大值),第三個位元組“2E”表示TemperatureCur(當前溼度),第四個位元組“1F”表示TemperatureMinToday(當天溼度最小值)。這些內容與profile檔案和編解碼外掛是一一對應的。 由於本例中的編解碼外掛寫了上報資料應答,在上報資料成功後會收到“+NNMI 1,02”的應答。

5.2 OceanConnect平臺中檢視資料 Step 1 登入OceanConnect平臺,點選“我的裝置”進入裝置列表頁,根據deviceId選擇對應註冊的線上裝置,單擊進入。 Step 2 在裝置詳情頁,選擇”歷史資料”項,即可看到已經上報且被解析後的json資料。 在這裡插入圖片描述