板載程序測試
在上個實驗中,我們僅僅使用了板載的串口和 NB 模組,驗證了 NB 模組的雙向通信能力,上傳的數(shù)據(jù)是我 們構造的,下發(fā)的命令我們也僅僅是收到了而已,并沒有進行處理。要想進行自動數(shù)據(jù)上傳,同時響應下發(fā) 指令,就需要我們編程,由 MCU 來處理。這個內(nèi)容由下面的實驗來完成。
本實驗中,我們需要用到 MCU 和光照拓展板。我們會將程序燒寫進 MCU 中,并由 MCU 去讀取光照傳感 器的數(shù)值,然后上傳到 OceanConnect 平臺。同時,MCU 也會響應 OceanConnect 下發(fā)的控制指令,去實際控制小燈的開和關。
連接好開發(fā)板的接線圖后:
進入代碼 targets\STM32L431_EVB_M1\MDK-ARM 目錄,打開 IoT-Demo.uvprojx 工程文件。打開項目后, 在 Keil 項目列表中找到 Application/User 下的 main.c,約 52 行,修改參數(shù)如下:
1. #define OCEAN_IP "49.4.85.232" // OceanConnect IP 地址
2. #define SECURITY_PORT "5684" // 加密端口
3. #define NON_SECURITY_PORT "5683" // 非加密端口
同一處的其他幾個宏可以不管,程序中未使用。然后修改約 119 行:
1. #if AT_DTLS
2. los_nb_init((const int8_t)"139.159.140.34",(const int8_t)"5684",&sec);
3. #else
4. los_nb_init((const int8_t)OCEAN_IP,(const int8_t)NON_SECURITY_PORT, NULL); // 修改此 行,使用前面設置的 IP 地址和端口
5. #endif
修改完畢以后,點擊 進行編譯。編譯無誤則準備燒寫。燒寫完成后,重啟板子。
打開 QCOM,波特率修改為 115200,此時它將輸出 MCU 的打?。ㄒ驗檫B線改變,所以串口就不會再輸出 上節(jié)實驗的 NB 模組信息了)。
此時,一方面可以從板載 LED 屏看到實時采集的關照強度,另一方面,可以在開發(fā)中心設備管理中,看到 該設備的歷史數(shù)據(jù):

image.png
該實驗中,程序每隔一秒就會向 OceanConnect 發(fā)送一次數(shù)據(jù),所以 NB 模組其實并不會處于 PSM 模 式。因此,在開發(fā)中心點擊“調試產(chǎn)品”,向設備發(fā)送 ON 指令,則光照拓展板的小燈就會立即點亮,從而 完成路燈的遠程控制。

image.png