板载程序测试
在上个实验中,我们仅仅使用了板载的串口和 NB 模组,验证了 NB 模组的双向通信能力,上传的数据是我 们构造的,下发的命令我们也仅仅是收到了而已,并没有进行处理。要想进行自动数据上传,同时响应下发 指令,就需要我们编程,由 MCU 来处理。这个内容由下面的实验来完成。
本实验中,我们需要用到 MCU 和光照拓展板。我们会将程序烧写进 MCU 中,并由 MCU 去读取光照传感 器的数值,然后上传到 OceanConnect 平台。同时,MCU 也会响应 OceanConnect 下发的控制指令,去实际控制小灯的开和关。
连接好开发板的接线图后:
进入代码 targets\STM32L431_EVB_M1\MDK-ARM 目录,打开 IoT-Demo.uvprojx 工程文件。打开项目后, 在 Keil 项目列表中找到 Application/User 下的 main.c,约 52 行,修改参数如下:
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 的打印(因为连线改变,所以串口就不会再输出 上节实验的 NB 模组信息了)。
此时,一方面可以从板载 LED 屏看到实时采集的关照强度,另一方面,可以在开发中心设备管理中,看到 该设备的历史数据:
该实验中,程序每隔一秒就会向 OceanConnect 发送一次数据,所以 NB 模组其实并不会处于 PSM 模 式。因此,在开发中心点击“调试产品”,向设备发送 ON 指令,则光照拓展板的小灯就会立即点亮,从而 完成路灯的远程控制。