終端開發(fā)板硬件介紹
(1)本實驗使用的終端硬件有開發(fā)板竿报、通信模組及光敏傳感器與小燈擴展板,虛線框中的是開發(fā)板主板;
如圖所示:
編號 1 處: NB-IoT 通信模組衡载;
編號 2 處: GPRS 通信模組;
編號 3 處:Wi-Fi 通信模組隙袁;
編號 4 處: SIM 卡痰娱;
(當使用 NB-IoT 通信模組與 GPRS 通信模組時需用 到 SIM 卡,SIM 卡卡槽在通信模組擴展板背面)菩收;
編號 5 處:光敏傳感器與小燈擴展板梨睁。
(2)下圖為開發(fā)板主板:
編號 1 處: MCU;
編號 2 處: LED 屏娜饵;
編號 3 處:按鍵坡贺,其中 RESET鍵用于重置 MCU;
編號 4 處:通信擴展板對接引腳箱舞;
編號 5 處:AT 指令輸入源的切換開關(guān)遍坟;
(可以切換通過串口(AT-PC)向通信模組發(fā)送 AT 指令與通過 MCU(AT-MCU)向通信模組發(fā)送 AT 指令兩種模式);
編號 6 處:傳感器擴展板對接引腳晴股。
下面進入實驗具體配置:
1.根據(jù)上述(1)(2)的提示愿伴,將 SIM 卡插入 NB-IoT 通信模組卡槽中;并將 NB-IoT 模組與開發(fā)板主板上的通信擴展板對接引腳對接电湘;同時將 AT 指令輸入源的切換開關(guān)切換至 AT-PC隔节;最后將開發(fā)板通過 USB 線接到 PC 機上鹅经;
2.點擊打開進入 IoT Studio 主界面,打開 LiteOS Studio怎诫,導入實驗二的工程文件瘾晃;(或選擇“導入其他嵌入式工程(gcc)”,導入工程)刽虹;
具體:
①在導入工程界面酗捌,選擇工程類型為“GCC”,配置 Makefile 文件路徑與工程目錄(Makefile文件在“HCIA_Demo –> BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC”路徑下涌哲;
②工程目錄選擇“HCIA_Demo”下的“BearPi_LiteOS”)胖缤,導入后信息會根據(jù)導入信息自動生成,完成工程導入阀圾;
③選擇對應的 MCU 信息(本實驗使用的 MCU 型號為 STM32L431RC)哪廓,點擊“完成”;
④配置開發(fā)環(huán)境初烘,根據(jù)本次實驗的需求分別配置 Make 構(gòu)建器涡真、編譯器、燒錄器肾筐、調(diào)試器參數(shù)哆料。其中串口配置如下:
在 LiteOS Studio 主界面下的控制臺界面,選擇“串口終端”吗铐,在串口終端界面下選擇相應端口(相應端口可通過 PC 機的“計算機”->“管理”->“設(shè)備管理器”->“端口”中查看)东亦,設(shè)置波特率為 9600,校驗位None唬渗,數(shù)據(jù)位 8典阵,停止位 1,流控 None镊逝,點擊配置欄最右邊圖標“切換到非 shell”壮啊,并打開串口;
3.在發(fā)送區(qū)界面輸入“AT+NRB”撑蒜,點擊“發(fā)送”歹啼,重啟 NB 模組;
(注:發(fā)送 AT 指令后座菠,需發(fā)送新行模組才能正確接收指令狸眼,即輸入完 AT 指令后需回車另一起行再點擊發(fā)送。)
在接收區(qū)可查看模組返回的信息辈灼;
4.在串口終端發(fā)送區(qū)界面輸入“AT+CGSN=1”份企,點擊“發(fā)送”,獲取 NB 模組的 IMEI 號巡莹,該 IMEI 信息同時也可在 NB 模組標刻的信息上查到司志;
5.在 串口終端發(fā)送區(qū)界面輸入“AT+NCDP=49.4.85.232,5683”甜紫,設(shè)置 NB 模組對接的平臺 ip 及端口信息(模組返回OK,即設(shè)置成功)骂远;
6.在串口終端發(fā)送區(qū)界面輸入“AT+NRB”囚霸,重新重啟 NB 模組,確保對接平臺 ip 設(shè)置生效激才;
7.在串口終端發(fā)送區(qū)界面輸入“AT+CFUN?”,查詢協(xié)議棧功能是否開啟(返回值為 CFUN:1 表示開啟瘸恼;返回值為 CFUN:0 表示關(guān)閉劣挫。如返回 0 則需要入”AT+CFUN=1”開啟);
8.在發(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”進行網(wǎng)絡(luò)附著)愧膀;
9.在串口終端發(fā)送區(qū)界面輸入“AT+NMGS=3,000123”,發(fā)送模擬數(shù)據(jù)給 IoT 平臺(返回 OK 即為發(fā)送成功)
10.在 OceanConnect 平臺“產(chǎn)品”下的“設(shè)備管理”界面芬为,可以查看到之前注冊的設(shè)備處于在線狀態(tài);
11.選擇該設(shè)備狼钮,點擊“歷史數(shù)據(jù)”碳柱,可查看到設(shè)備的歷史數(shù)據(jù)信息;
基于 LiteOS 控制 NB 模組入網(wǎng)注冊與數(shù)據(jù)上報
1.在 LiteOS Studio 的工程界面工程樹下捡絮,打開路徑 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> GCC 下的“config.mk”文件熬芜;
2.在“config.mk”文件中修改網(wǎng)絡(luò)類型,
將“NETWORK_TYPE”參數(shù)修改為“NB_NEUL95_NO_ATINY”福稳;
3.在 LiteOS Studio 的工程界面工程樹下涎拉,
打開路徑 BearPi_LiteOS -> demos -> nbiot_without_atiny 下的“nb_demo.c”文件;
4.在“nb_demo.c”文件中根據(jù)平臺提供的對接信息的圆,修改代碼中 IP 與 PORT 信息鼓拧;
5.在 LiteOS Studio 的工程界面工程樹下,打開路徑 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> Src 下的“main.c”文件越妈;
6.在“main.c”文件 main 主函數(shù)中添加執(zhí)行“create_work_tasks”函數(shù)的代碼季俩;
所添加代碼如下:
extern UINT32 create_work_tasks(VOID);
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í)行對應的通信模組程序酪我。具體代碼邏輯讀者可自行學習了
解)
7.保存修改消痛,點擊編譯;
8.將開發(fā)板通過 USB 線連接電腦都哭,點擊下載秩伞;將代碼燒錄到開發(fā)板芯片中;
9.在控制臺界面選擇“串口終端”纱新,選擇相應端口,設(shè)置波特率為 115200穆趴,校驗位 None怒炸,數(shù)據(jù)位 8,停止位 1毡代,流控 None阅羹,并打開串口;同時將開發(fā)板上 AT 指令輸入源的切換開關(guān)切 換至 AT-MCU教寂,按下開發(fā)板上的 RESET 按鍵捏鱼,在開發(fā)板 MCU 上運行 LiteOS;此時可以看到輸出的打印信息酪耕;
10.在 OceanConnect 平臺“產(chǎn)品”下的“設(shè)備管理”界面导梆,選擇該設(shè)備,點擊“歷史數(shù)據(jù)”迂烁,可查看到該模組上報的數(shù)據(jù)信息看尼。