本实验中,我们需要用到 MCU 和光照拓展板。我们会将程序烧写进 MCU 中,并由 MCU 去读取光照传感 器的数值,然后上传到 OceanConnect 平台。同时,MCU 也会响应 OceanConnect 下发的控制指令,去实际控制小灯的开和关。
此时,接线图如下
本节实验的代码位于 EVB_M1_资料\06 源代码及实验\EVB_M1_V3.1\02 综合实验\实验四 EVB_M1_智慧路 灯\EVB_M1_Liteos_AT_Light(keil).rar,需要解压缩
进入代码 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'
'los_nb_init((const int8_t*)"139.159.140.34",(const int8_t*)"5684",&sec); '
3.' #else'
'los_nb_init((const int8_t*)OCEAN_IP,(const int8_t*)NON_SECURITY_PORT, NULL);' // 修改此 行,使用前面设置的 IP 地址和端口
- '#endif'
进行编译。
编译无误则准备烧写
ST-LINK 连接好以后,先要进行一下烧写相关的设置。选择 STM32L4xx_128KB Flash,这样刚刚编译好的 程序就会按照 128KB 的 Flash 结构进行烧写
点击
进行烧写。然后重启板子。
打开 QCOM,波特率修改为 115200,此时它将输出 MCU 的打印(因为连线改变,所以串口就不会再输出 上节实验的 NB 模组信息了)。
此时,一方面可以从板载 LED 屏看到实时采集的关照强度,另一方面,可以在开发中心设备管理中,看到 该设备的历史数据:
该实验中,程序每隔一秒就会向 OceanConnect 发送一次数据,所以 NB 模组其实并不会处于 PSM 模 式。
在开发中心点击“调试产品”,向设备发送 ON 指令。
光照拓展板的小灯就会立即点亮,从而 完成路灯的远程控制。