全部課程
發(fā)布時間: 2018-04-01 09:32:38
?準(zhǔn)備資源
平臺資源 申請OceanConnect平臺資源的方式有兩種: 1. 提交MAR合作電子流,通過審批后,在審批意見中會下發(fā)OceanConnect平臺資源的獲取方式。提交MAR合作電子流請參考:http://developer.huawei.com/ilink/esdk/download/HW_484292 2. 預(yù)約遠程實驗室。預(yù)約遠程實驗室操作可參考:http://developer.huawei.com/ict/cn/doc/IoT-Platform-North-HelloWorld/index.html/zh-cn_topic_0065817579 Profile文件Demo MultiSensor_eSDK_v01.zip,請下載附件后上傳至OceanConnect平臺使用,無須修改。 編解碼插件Demo 與MultiSensor_eSDK_v01.zip配套的編解碼插件已由華為人員上傳至OceanConnect平臺,可直接使用 ,無須關(guān)注。 GUI Demo 模擬北向應(yīng)用。下載地址:https://github.com/Huawei/IoT_OceanConnect_North_GUI_APPDemo 虛擬串口工具 虛擬串口——VPSD,可自行百度下載。作用及使用方法參考:http://developer.huawei.com/ict/forum/thread-19237.html 上傳開發(fā)組件 上傳profile文件至OceanConnect平臺 https://117.78.47.187:8093/#/login 將已下載的profile文件MultiSensor_eSDK_v01.zip上傳至OceanConnect平臺。具體方法如下: Step 1 使用郵件中的“平臺Portal鏈接”和“登錄賬號/密碼”信息登錄OceanConnect平臺,選擇菜單“Profile開發(fā) > 導(dǎo)入Profile”。 此步驟目的是為了告訴OceanConnect會有哪個設(shè)備連接上它,profile是描述了設(shè)備和服務(wù)的信息
Step 2 單擊右上角“導(dǎo)入”圖標(biāo),上傳文件時選中Profile資源文件 MultiSensor_eSDK_v01.zip,設(shè)備類型、廠家ID和設(shè)備型號無須修改,單擊“上傳”。
上傳編解碼插件至OceanConnect平臺 與MultiSensor_eSDK_v01.zip配套的編解碼插件已上傳至IoT平臺,您可直接使用,無須重復(fù)上傳。 注意:在后續(xù)業(yè)務(wù)開發(fā)過程中,您需要根據(jù)業(yè)務(wù)需要開發(fā)自己的編解碼插件并上傳至OceanConnect平臺。 注冊設(shè)備 以下提供兩種注冊設(shè)備的方法,通過GUI Demo注冊的方法適合所有平臺,界面化注冊只適合開發(fā)者Portal平臺,請根據(jù)平臺資源情況擇其一參考。 方法一:通過OceanConnect平臺注冊設(shè)備 http://developer.huawei.com/ict/forum/thread-25749.html Step 1 登錄OceanConnect平臺,單擊“我的設(shè)備 > 注冊設(shè)備”,即可看到應(yīng)用下所有已上傳的Profile,單擊選中需要注冊設(shè)備對應(yīng)的Profile。 Step 2 在Profile詳情頁,填寫“設(shè)備名稱”和“設(shè)備標(biāo)識碼”,單擊“注冊”按鈕注冊設(shè)備。 設(shè)備名稱:用于區(qū)分不同設(shè)備,名稱可自定義(如MultiSensor-01)。 設(shè)備標(biāo)識碼:設(shè)備唯一標(biāo)識。使用SoftRadio對接時,可自行定義“TEST$_XXXX”格式的注冊碼。“TEST$_”之后可以是數(shù)字、字母和特殊符號或其組合(如TEST$_MS01)。 注冊設(shè)備成功后返回的設(shè)備ID和PSK碼請牢記。 Step 3 單擊“我的設(shè)備”,查看對應(yīng)設(shè)備是否注冊成功。如果注冊成功,可以看到設(shè)備處于“OFFLINE”狀態(tài)。 ? 方法二:通過GUI Demo注冊設(shè)備 Step 1 解壓IoT_OceanConnect_North_GUI_APPDemo.zip(簡稱GUI Demo)壓縮包,打開application文件夾,直接雙擊運行Demo.jar文件。 Step 2 根據(jù)華為下發(fā)的OceanConnect平臺資源郵件內(nèi)容填寫對應(yīng)配置項后,單擊“Login”按鈕登錄。
注意:如果Demo.jar文件無法打開,請確認本機是否配置了JDK開發(fā)環(huán)境。
Step 3 在“Module
Choose”選項框中,“Solution”選擇“NB-IoT”,“Module”選擇“Device Manager”。
Step 4 在“Register Direct Device”框中填寫各參數(shù)。各參數(shù)含義及設(shè)置方法如下:
Node ID:設(shè)備唯一標(biāo)識。使用SoftRadio對接時,可自行定義“TEST$_XXXX”格式的注冊碼?!癟EST$_”之后可以是數(shù)字、字母和特殊符號或其組合(如TEST$_MS01)。
Verify Code:與Node ID保持一致。(同為TEST$_MS01)。
Time out:設(shè)備注冊至平臺的過期時間,單位為秒。真實設(shè)備必須在設(shè)置的時間內(nèi)上線,否則會因過期而被IoT平臺刪除。建議直接填寫“0”(設(shè)備不會過期)。
Step 5 單擊“Register”按鈕注冊設(shè)備至OcaenConnect平臺。
注冊成功后會返回deviceId。deviceId是OcaenConnect平臺對于設(shè)備的唯一標(biāo)識,請妥善保存,以備調(diào)用后續(xù)接口時使用。
Step 6 在“Modify Device Info”框中,根據(jù)Profile文件中的信息,按照以下要求填寫各參數(shù)后,單擊“Modify”按鈕設(shè)置設(shè)備信息,并保存至IoT平臺。
Device ID:注冊直連設(shè)備時返回的deviceId。固定值。
Manufacturer Id:與Profile文件中的manufacturerId保持一致。填寫“eSDK”。
Manufacturer Name:與Profile文件中的manufacturerName保持一致。填寫“eSDK_Huawei”。
Device Type:與Profile文件中的deviceType保持一致。填寫“MultiSensor”
Model:設(shè)備型號 v01
Protocol Type:與Profile文件中的protocolType保持一致。NB-IoT方案統(tǒng)一填寫“CoAP”。
說明:如果修改設(shè)備信息成功,可以在OcaenConnect平臺中看到設(shè)備處于“OFFLINE”狀態(tài)。
終端入網(wǎng)
實現(xiàn)終端入網(wǎng),需要在SSCOM中通過一系列AT指令來控制NB模組。SSCOM中的各項設(shè)置說明如下:
串口號:選擇與NB模組進行通信的實際物理com口,并確保打開串口。
波特率:選擇9600。NB模組內(nèi)置的華為NB芯片僅支持波特率9600。
發(fā)送AT指令時確保勾選“發(fā)送新行”,不勾選“DTR”和“RTS”。
其他參數(shù)保持默認。
終端入網(wǎng)的詳細步驟如下所示:
Step 1:終端上電,執(zhí)行“AT+NRB”復(fù)位終端。如果返回OK,表示終端正常運行。
Step 2:執(zhí)行“AT+CFUN=0”關(guān)閉功能開關(guān)。如果執(zhí)行成功,返回OK。
Step 3:執(zhí)行“AT+NTSETID=1,863703032164886”設(shè)置設(shè)備ID。設(shè)備ID為NB模組的IMEI號,如果執(zhí)行成功,返回OK。
Step 4:執(zhí)行“AT+NCDP= 117.78.47.187, 5683”設(shè)置需要對接IoT平臺的地址,端口為5683。如果執(zhí)行成功,返回OK。
Step 5:執(zhí)行“AT+CFUN=1”開啟功能開關(guān)。如果執(zhí)行成功,返回OK。
Step 6:執(zhí)行“AT+NBAND=5”設(shè)置頻段。如果執(zhí)行成功,返回OK。頻段信息可以咨詢NB模組廠商。
Step 7:執(zhí)行“AT+CGDCONT=1,“IP”,“APN”設(shè)置核心網(wǎng)APN。如果執(zhí)行成功,返回 OK。核心網(wǎng)APN可聯(lián)系運營商(與運營商網(wǎng)絡(luò)對接時)或者OpenLab負責(zé)人(與OpenLab網(wǎng)絡(luò)對接時)進行獲取。(這一步可以不用,自動入網(wǎng))
Step 8:執(zhí)行“AT+CGATT=1”進行終端入網(wǎng)。如果執(zhí)行成功,返回OK。
Step 9:執(zhí)行“AT+CGPADDR=0”查詢終端是否獲取到核心網(wǎng)分配的IP地址,如果獲取到IP地址,表示終端入網(wǎng)成功。
Step 10:執(zhí)行“AT+NNMI=1”設(shè)置下行數(shù)據(jù)通知功能,如果執(zhí)行成功,返回OK。
5 數(shù)據(jù)上報
5.1 串口工具中上報數(shù)據(jù)
執(zhí)行“AT+NMGS=5,00012E1F63”發(fā)送上行數(shù)據(jù),如果上行數(shù)據(jù)發(fā)送成功,返回OK。由于設(shè)置了 “AT+NNMI=1”,如果編解碼插件中寫了OceanConnect平臺對上報數(shù)據(jù)的應(yīng)答,則上行數(shù)據(jù)發(fā)送成功后會自動獲取應(yīng)答數(shù)據(jù)。
上報數(shù)據(jù)的AT命令為:AT+NMGS=5,00012E1F63。具體解析如下:
1. AT+NMGS=N,XXXXXXXXXX為上報數(shù)據(jù)的AT命令格式,其中“N”表示一共上報幾個字節(jié),后面為具體的上報字節(jié)內(nèi)容,以十六進制字符串表示。這些需要提前在編解碼插件中寫好。
2. 本例中,一共上報5個字節(jié),分別為“00”、“01”、“2E”、“1F”、“63”。其中,第一個字節(jié)“00”表示上報數(shù)據(jù),第二個字節(jié)“01”表示上報數(shù)據(jù)對應(yīng)的serviceId為Humidity(濕度),第三個字節(jié)“2E”表示HumidityCur(當(dāng)前濕度),第四個字節(jié)“1F”表示HumidityMinToday(當(dāng)天濕度最小值),第五個字節(jié)“63”表示HumidityMaxToday(當(dāng)天濕度較大值)。這些內(nèi)容與profile文件和編解碼插件是一一對應(yīng)的。
由于本例中的編解碼插件寫了上報數(shù)據(jù)應(yīng)答,在上報數(shù)據(jù)成功后會收到“+NNMI
1,01”的應(yīng)答。
5.2 OceanConnect平臺中查看數(shù)據(jù)
Step 1 登錄OceanConnect平臺,點擊“我的設(shè)備”進入設(shè)備列表頁,根據(jù)deviceId選擇對應(yīng)注冊的在線設(shè)備,單擊進入。
Step 2 在設(shè)備詳情頁,選擇”歷史數(shù)據(jù)”項,即可看到已經(jīng)上報且被解析后的json數(shù)據(jù)。
在實際應(yīng)用中,數(shù)據(jù)到達OceanConnect平臺后,可以通過兩種方式在北向應(yīng)用服務(wù)器中接收數(shù)據(jù):
1. 調(diào)用數(shù)據(jù)查詢類接口,查詢OceanConnect平臺中緩存的數(shù)據(jù)。
2.
調(diào)用訂閱接口,設(shè)置好推送地址,數(shù)據(jù)到達OceanConnect平臺后會按照既定的IP地址主動將數(shù)據(jù)推送至北向應(yīng)用服務(wù)器。
6 命令下發(fā)
Step 1 解壓IoT_OceanConnect_North_GUI_APPDemo.zip(簡稱GUI Demo)壓縮包,打開application文件夾,直接雙擊運行Demo.jar文件。
Step 2 根據(jù)華為下發(fā)的OceanConnect平臺資源郵件內(nèi)容填寫對應(yīng)配置項后,單擊“Login”按鈕登錄。
注意:如果Demo.jar文件無法打開,請確認本機是否配置了JDK開發(fā)環(huán)境。 Step 3 在“Module Choose”選項框中,“Solution”選擇“NB-IoT”,“Module”選擇“Command Manager”。 在“Post Asyne Command”選項框中,輸入deviceId,單擊“Get Command”按鈕,獲取該deviceId對應(yīng)設(shè)備所具備的服務(wù)和命令。
說明:這些服務(wù)和命令是在profile中定義好的。 Step 4 設(shè)置具體參數(shù),選擇需要下發(fā)的服務(wù)和命令后,單擊“Post Command“。各參數(shù)含義及設(shè)置方法如下: Service:設(shè)備提供的服務(wù)ID,只能從下拉框中選擇。以“Temperature“為例。 Command:該服務(wù)所具備的命令,只能從下拉框中選擇。選定后會出現(xiàn)該命令可選的參數(shù)名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“為例,參數(shù)選擇”Value”。 Value:參數(shù)名對應(yīng)的參數(shù)值。以設(shè)置“50“為例。 Expire Time:命令的超期時間,單位為秒。如果在設(shè)置時間內(nèi),命令還緩存在平臺沒有下發(fā)就會超期作廢。以設(shè)置“200“為例。? Step 5 登錄OceanConnect平臺,在設(shè)備詳情頁的“歷史命令“項中,可以查看剛下發(fā)的命令狀態(tài)。分為兩種情況: 1) 如果此時NB模組處于connect態(tài),命令會立即下發(fā),命令狀態(tài)為“已送達”。 2) 如果此時NB模組處于非connect態(tài),命令會緩存下發(fā),命令狀態(tài)為“等待”。這種情況下,需要上報一條數(shù)據(jù)激活設(shè)備,才能收到下發(fā)的命令。 Step 6 參照“5.1 SSCOM中發(fā)送數(shù)據(jù)“,發(fā)送一條AT命令:AT+NMGS=5,00012E1F63,此時刷新歷史命令,可以看到命令狀態(tài)切換為“已送達”,表明命令已下發(fā)。