軟件
配置步驟
步驟 1 通過 PC 串口調(diào)試終端控制 NB 模組入網(wǎng)注冊與數(shù)據(jù)上報
根據(jù)實驗二步驟一的介紹例朱,將 SIM 卡插入 NB-IoT 通信模組卡槽中丙笋;并將 NB-IoT 模組與開發(fā)板主板上的通信擴(kuò)展板對接引腳對接;同時將 AT 指令輸入源的切換開關(guān)切換至 AT-PC芦劣;最后將開發(fā)板通過 USB 線接到 PC 機(jī)上粗俱;
打開 LiteOS Studio,導(dǎo)入實驗二的工程文件虚吟,在 LiteOS Studio 主界面下的控制臺界面源梭,選擇“串口終端”娱俺,在串口終端界面下選擇相應(yīng)端口(相應(yīng)端口可通過 PC 機(jī)的“計算機(jī)”->“管理”->“設(shè)備管理器”->“端口”中可以查看),設(shè)置波特率為 9600废麻,校驗位None荠卷,數(shù)據(jù)位 8,停止位 1烛愧,流控 None油宜,點擊配置欄最右邊圖標(biāo)“切換到非 shell”,并打開串口怜姿;
在發(fā)送區(qū)界面輸入“AT+NRB”慎冤,點擊“發(fā)送”,重啟 NB 模組(注:發(fā)送 AT 指令后沧卢,需發(fā)送新行模組才能正確接收指令蚁堤,即輸入完 AT 指令后需回車另一起行再點擊發(fā)送);
在接收區(qū)可查看模組返回的信息但狭;
在發(fā)送區(qū)界面輸入“AT+CGSN=1”披诗,點擊“發(fā)送”,獲取 NB 模組的 IMEI 號立磁,該 IMEI 信息同時也可在 NB 模組標(biāo)刻的信息上查到呈队;
根據(jù) NB 模組的 IMEI 號,在平臺上注冊設(shè)備唱歧。在 OceanConnect 平臺“產(chǎn)品”下的“設(shè)備管理”界面宪摧,點擊“新增真實設(shè)備”;
選擇實驗三中開發(fā)的 Profile 文件颅崩;
自定義設(shè)備名稱几于,并根據(jù)獲取的 IMEI 號輸入設(shè)備標(biāo)識,選擇設(shè)備注冊方式“不加密”沿后,點擊“確定”沿彭;
注冊設(shè)備成功,平臺返回相應(yīng)信息得运,點擊“確定”膝蜈;
OceanConnect 平臺“設(shè)備管理”界面可查看到注冊的設(shè)備(此時還處于離線狀態(tài))锅移;
根據(jù)平臺提供的對接信息熔掺,在 LiteOS Studio 串口終端發(fā)送區(qū)界面輸入
“AT+NCDP=49.4.85.232,5683”,設(shè)置 NB 模組對接的平臺 ip 及端口信息(模組返回OK非剃,即設(shè)置成功)置逻;
在發(fā)送區(qū)界面輸入“AT+NRB”,重新重啟 NB 模組备绽,確保對接平臺 ip 設(shè)置生效券坞;
在發(fā)送區(qū)界面輸入“AT+CFUN?”鬓催,查詢協(xié)議棧功能是否開啟(返回值為 CFUN:1 表示開啟;返回值為 CFUN:0 表示關(guān)閉恨锚。如返回 0 則需要輸入”AT+CFUN=1”開啟)宇驾;
在發(fā)送區(qū)界面輸入“AT+CGATT?”,查詢 NB-IoT 模組網(wǎng)絡(luò)附著狀態(tài)(如果返回值為CGATT:0猴伶,表示網(wǎng)絡(luò)未附著课舍;返回值為 CGATT:1,表示網(wǎng)絡(luò)附著他挎。如返回 0 則需要輸入“AT+CGATT=1”進(jìn)行網(wǎng)絡(luò)附著)筝尾;
在發(fā)送區(qū)界面輸入“AT+NMGS=3,000123”,發(fā)送模擬數(shù)據(jù)給 IoT 平臺(返回 OK 即為發(fā)送成功)办桨;
在 OceanConnect 平臺“產(chǎn)品”下的“設(shè)備管理”界面筹淫,可以查看到之前注冊的設(shè)備處于在線狀態(tài);
選擇該設(shè)備呢撞,點擊“歷史數(shù)據(jù)”损姜,可查看到設(shè)備的歷史數(shù)據(jù)信息。
步驟 2 基于 LiteOS 控制 NB 模組入網(wǎng)注冊與數(shù)據(jù)上報
在 LiteOS Studio 的工程界面工程樹下狸相,打開路徑 BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC 下的“config.mk”文件薛匪;
在“config.mk”文件中修改網(wǎng)絡(luò)類型,將“NETWORK_TYPE”參數(shù)修改為
“NB_NEUL95_NO_ATINY”脓鹃;
在 LiteOS Studio 的工程界面工程樹下逸尖,打開路徑 BearPi_LiteOS -> demos ->
nbiot_without_atiny 下的“nb_demo.c”文件;
在“nb_demo.c”文件中根據(jù)平臺提供的對接信息瘸右,修改代碼中 IP 與 PORT 信息娇跟;
在 LiteOS Studio 的工程界面工程樹下,打開路徑 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> Src 下的“main.c”文件太颤;
在“main.c”文件 main 主函數(shù)中添加執(zhí)行“create_work_tasks”函數(shù)的代碼苞俘;
代碼段:
uwRet = create_work_tasks();
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
(注:create_work_tasks 函數(shù)在 user_task.c 里定義,該函數(shù)里執(zhí)行 create_agenttiny_task函數(shù)龄章。在 create_agenttiny_task 中創(chuàng)建了atiny_task_entry 任務(wù)吃谣,在該任務(wù)中,根據(jù)之前config.mk 中的網(wǎng)絡(luò)類型配置做裙,執(zhí)行對應(yīng)的通信模組程序岗憋。具體代碼邏輯讀者可自行學(xué)習(xí)了
解)
保存修改,點擊編譯锚贱;
將開發(fā)板通過 USB 線連接電腦仔戈,點擊下載;將代碼燒錄到開發(fā)板芯片中;
在控制臺界面選擇“串口終端”监徘,選擇相應(yīng)端口晋修,設(shè)置波特率為 115200,校驗位 None凰盔,數(shù)據(jù)位 8墓卦,停止位 1,流控 None户敬,并打開串口趴拧;同時將開發(fā)板上 AT 指令輸入源的切換開關(guān)切 換至 AT-MCU,按下開發(fā)板上的 RESET 按鍵山叮,在開發(fā)板 MCU 上運(yùn)行 LiteOS著榴;此時可以看到輸出的打印信息;
在 OceanConnect 平臺“產(chǎn)品”下的“設(shè)備管理”界面屁倔,選擇該 NB 設(shè)備脑又,點擊“歷史數(shù)據(jù)”,可查看到 NB 模組上報的數(shù)據(jù)信息锐借。