终端开发板硬件介绍
(1)本实验使用的终端硬件有开发板、通信模组及光敏传感器与小灯扩展板,虚线框中的是开发板主板;
如图所示:
编号 1 处: NB-IoT 通信模组;
编号 2 处: GPRS 通信模组;
编号 3 处:Wi-Fi 通信模组;
编号 4 处: SIM 卡;
(当使用 NB-IoT 通信模组与 GPRS 通信模组时需用 到 SIM 卡,SIM 卡卡槽在通信模组扩展板背面);
编号 5 处:光敏传感器与小灯扩展板。
(2)下图为开发板主板:
编号 1 处: MCU;
编号 2 处: LED 屏;
编号 3 处:按键,其中 RESET键用于重置 MCU;
编号 4 处:通信扩展板对接引脚;
编号 5 处:AT 指令输入源的切换开关;
(可以切换通过串口(AT-PC)向通信模组发送 AT 指令与通过 MCU(AT-MCU)向通信模组发送 AT 指令两种模式);
编号 6 处:传感器扩展板对接引脚。
下面进入实验具体配置:
1.根据上述(1)(2)的提示,将 SIM 卡插入 NB-IoT 通信模组卡槽中;并将 NB-IoT 模组与开发板主板上的通信扩展板对接引脚对接;同时将 AT 指令输入源的切换开关切换至 AT-PC;最后将开发板通过 USB 线接到 PC 机上;
2.点击打开进入 IoT Studio 主界面,打开 LiteOS Studio,导入实验二的工程文件;(或选择“导入其他嵌入式工程(gcc)”,导入工程);
具体:
①在导入工程界面,选择工程类型为“GCC”,配置 Makefile 文件路径与工程目录(Makefile文件在“HCIA_Demo –> BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC”路径下;
②工程目录选择“HCIA_Demo”下的“BearPi_LiteOS”),导入后信息会根据导入信息自动生成,完成工程导入;
③选择对应的 MCU 信息(本实验使用的 MCU 型号为 STM32L431RC),点击“完成”;
④配置开发环境,根据本次实验的需求分别配置 Make 构建器、编译器、烧录器、调试器参数。其中串口配置如下:
在 LiteOS Studio 主界面下的控制台界面,选择“串口终端”,在串口终端界面下选择相应端口(相应端口可通过 PC 机的“计算机”->“管理”->“设备管理器”->“端口”中查看),设置波特率为 9600,校验位None,数据位 8,停止位 1,流控 None,点击配置栏最右边图标“切换到非 shell”,并打开串口;
3.在发送区界面输入“AT+NRB”,点击“发送”,重启 NB 模组;
(注:发送 AT 指令后,需发送新行模组才能正确接收指令,即输入完 AT 指令后需回车另一起行再点击发送。)
在接收区可查看模组返回的信息;
4.在串口终端发送区界面输入“AT+CGSN=1”,点击“发送”,获取 NB 模组的 IMEI 号,该 IMEI 信息同时也可在 NB 模组标刻的信息上查到;
5.在 串口终端发送区界面输入“AT+NCDP=49.4.85.232,5683”,设置 NB 模组对接的平台 ip 及端口信息(模组返回OK,即设置成功);
6.在串口终端发送区界面输入“AT+NRB”,重新重启 NB 模组,确保对接平台 ip 设置生效;
7.在串口终端发送区界面输入“AT+CFUN?”,查询协议栈功能是否开启(返回值为 CFUN:1 表示开启;返回值为 CFUN:0 表示关闭。如返回 0 则需要入”AT+CFUN=1”开启);
8.在发送区界面输入“AT+CGATT?”,查询 NB-IoT 模组网络附着状态(如果返回值为CGATT:0,表示网络未附着;返回值为 CGATT:1,表示网络附着。如返回 0 则需要输入“AT+CGATT=1”进行网络附着);
9.在串口终端发送区界面输入“AT+NMGS=3,000123”,发送模拟数据给 IoT 平台(返回 OK 即为发送成功)
10.在 OceanConnect 平台“产品”下的“设备管理”界面,可以查看到之前注册的设备处于在线状态;
11.选择该设备,点击“历史数据”,可查看到设备的历史数据信息;
基于 LiteOS 控制 NB 模组入网注册与数据上报
1.在 LiteOS Studio 的工程界面工程树下,打开路径 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> GCC 下的“config.mk”文件;
2.在“config.mk”文件中修改网络类型,
将“NETWORK_TYPE”参数修改为“NB_NEUL95_NO_ATINY”;
3.在 LiteOS Studio 的工程界面工程树下,
打开路径 BearPi_LiteOS -> demos -> nbiot_without_atiny 下的“nb_demo.c”文件;
4.在“nb_demo.c”文件中根据平台提供的对接信息,修改代码中 IP 与 PORT 信息;
5.在 LiteOS Studio 的工程界面工程树下,打开路径 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> Src 下的“main.c”文件;
6.在“main.c”文件 main 主函数中添加执行“create_work_tasks”函数的代码;
所添加代码如下:
extern UINT32 create_work_tasks(VOID);
uwRet = create_work_tasks();
if (uwRet != LOS_OK)
{
return LOS_NOK;
}
注意:create_work_tasks 函数在 user_task.c 里定义,该函数里执行 create_agenttiny_task
函数。在 create_agenttiny_task 中创建了 atiny_task_entry 任务,在该任务中,根据之前
config.mk 中的网络类型配置,执行对应的通信模组程序。具体代码逻辑读者可自行学习了
解)
7.保存修改,点击编译;
8.将开发板通过 USB 线连接电脑,点击下载;将代码烧录到开发板芯片中;
9.在控制台界面选择“串口终端”,选择相应端口,设置波特率为 115200,校验位 None,数据位 8,停止位 1,流控 None,并打开串口;同时将开发板上 AT 指令输入源的切换开关切 换至 AT-MCU,按下开发板上的 RESET 按键,在开发板 MCU 上运行 LiteOS;此时可以看到输出的打印信息;
10.在 OceanConnect 平台“产品”下的“设备管理”界面,选择该设备,点击“历史数据”,可查看到该模组上报的数据信息。