實驗四任務配置
配置步驟:通過PC串口調試終端控制NB模組入網注冊與數據上報根據實驗二步驟一的介紹,將SIM卡插入NB-IoT通信模組卡槽中;并將NB-IoT模組與開發(fā)板主板上的通信擴展板對接引腳對接;同時將AT指令輸入源的切換開關切換至AT-PC;最后將開發(fā)板通過USB線接到PC機上鸵膏;打開LiteOS Studio,導入實驗二的工程文件怎炊,在LiteOS Studio主界面下的控制臺界面谭企,選擇“串口終端”,在串口終端界面下選擇相應端口(相應端口可通過PC機的“計算機”->“管理”->“設備管理器”->“端口”中可以查看)评肆,設置波特率為9600债查,校驗位None,數據位8瓜挽,停止位1盹廷,流控None,點擊配置欄最右邊圖標“切換到非shell”秸抚,并打開串口速和;
在發(fā)送區(qū)界面輸入“AT+NRB”,點擊“發(fā)送”剥汤,重啟NB模組(注:發(fā)送AT指令后颠放,需發(fā)送新行模組才能正確接收指令,即輸入完AT指令后需回車另一起行再點擊發(fā)送)吭敢;
在接收區(qū)可查看模組返回的信息碰凶;
在發(fā)送區(qū)界面輸入“AT+CGSN=1”,點擊“發(fā)送”,獲取NB模組的IMEI號欲低,該IMEI信息同時也可在NB模組標刻的信息上查到辕宏;
根據NB模組的IMEI號慷嗜,在平臺上注冊設備炼邀。在OceanConnect平臺“產品”下的“設備管理”界面,點擊“新增真實設備”随橘;
選擇實驗三中開發(fā)的Profile文件腊瑟;
自定義設備名稱聚假,并根據獲取的IMEI號輸入設備標識,選擇設備注冊方式“不加密”闰非,點擊“確定”膘格;
注冊設備成功,平臺返回相應信息财松,點擊“確定”瘪贱;
OceanConnect平臺“設備管理”界面可查看到注冊的設備(此時還處于離線狀態(tài));
根據平臺提供的對接信息辆毡,在LiteOS Studio串口終端發(fā)送區(qū)界面輸入“AT+NCDP=49.4.85.232,5683”菜秦,設置NB模組對接的平臺ip及端口信息(模組返回OK,即設置成功)胚迫;
在發(fā)送區(qū)界面輸入“AT+NRB”喷户,重新重啟NB模組,確保對接平臺ip設置生效访锻;
在發(fā)送區(qū)界面輸入“AT+CFUN?”,查詢協議棧功能是否開啟(返回值為CFUN:1表示開啟闹获;返回值為CFUN:0表示關閉期犬。如返回0則需要輸入”AT+CFUN=1”開啟);
在發(fā)送區(qū)界面輸入“AT+CGATT?”避诽,查詢NB-IoT模組網絡附著狀態(tài)(如果返回值為CGATT:0龟虎,表示網絡未附著;返回值為CGATT:1沙庐,表示網絡附著鲤妥。如返回0則需要輸入“AT+CGATT=1”進行網絡附著);
在發(fā)送區(qū)界面輸入“AT+NMGS=3,000123”拱雏,發(fā)送模擬數據給IoT平臺(返回OK即為發(fā)送成功)棉安;
在OceanConnect平臺“產品”下的“設備管理”界面,可以查看到之前注冊的設備處于在線狀態(tài)铸抑;
選擇該設備贡耽,點擊“歷史數據”,可查看到設備的歷史數據信息。
步驟2基于LiteOS控制NB模組入網注冊與數據上報在LiteOS Studio的工程界面工程樹下蒲赂,打開路徑BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC下的“config.mk”文件阱冶;
在“config.mk”文件中修改網絡類型,將“NETWORK_TYPE”參數修改為“NB_NEUL95_NO_ATINY”滥嘴;
在LiteOS Studio的工程界面工程樹下木蹬,打開路徑BearPi_LiteOS -> demos -> nbiot_without_atiny下的“nb_demo.c”文件;
在“nb_demo.c”文件中根據平臺提供的對接信息若皱,修改代碼中IP與PORT信息镊叁;
在LiteOS Studio的工程界面工程樹下,打開路徑BearPi_LiteOS -> targets -> STM32L431_BearPi -> Src下的“main.c”文件是尖;
在“main.c”文件main主函數中添加執(zhí)行“create_work_tasks”函數的代碼意系;
代碼段:
extern UINT32 create_work_tasks(VOID); uwRet = create_work_tasks(); if (uwRet != LOS_OK) { return LOS_NOK; }(注:create_work_tasks函數在user_task.c里定義,該函數里執(zhí)行create_agenttiny_task函數饺汹。在create_agenttiny_task中創(chuàng)建了atiny_task_entry任務蛔添,在該任務中,根據之前config.mk中的網絡類型配置兜辞,執(zhí)行對應的通信模組程序迎瞧。具體代碼邏輯讀者可自行學習了解)保存修改,點擊編譯逸吵;
將開發(fā)板通過USB線連接電腦凶硅,點擊下載;將代碼燒錄到開發(fā)板芯片中扫皱;
在控制臺界面選擇“串口終端”足绅,選擇相應端口,設置波特率為115200韩脑,校驗位None氢妈,數據位8,停止位1段多,流控None首量,并打開串口;同時將開發(fā)板上AT指令輸入源的切換開關切換至AT-MCU进苍,按下開發(fā)板上的RESET按鍵加缘,在開發(fā)板MCU上運行LiteOS;此時可以看到輸出的打印信息觉啊;
在OceanConnect平臺“產品”下的“設備管理”界面拣宏,選擇該NB設備,點擊“歷史數據”柄延,可查看到NB模組上報的數據信息蚀浆。