软件
配置步骤
步骤 1 通过 PC 串口调试终端控制 NB 模组入网注册与数据上报
根据实验二步骤一的介绍,将 SIM 卡插入 NB-IoT 通信模组卡槽中;并将 NB-IoT 模组与开发板主板上的通信扩展板对接引脚对接;同时将 AT 指令输入源的切换开关切换至 AT-PC;最后将开发板通过 USB 线接到 PC 机上;
打开 LiteOS Studio,导入实验二的工程文件,在 LiteOS Studio 主界面下的控制台界面,选择“串口终端”,在串口终端界面下选择相应端口(相应端口可通过 PC 机的“计算机”->“管理”->“设备管理器”->“端口”中可以查看),设置波特率为 9600,校验位None,数据位 8,停止位 1,流控 None,点击配置栏最右边图标“切换到非 shell”,并打开串口;
在发送区界面输入“AT+NRB”,点击“发送”,重启 NB 模组(注:发送 AT 指令后,需发送新行模组才能正确接收指令,即输入完 AT 指令后需回车另一起行再点击发送);
在接收区可查看模组返回的信息;
在发送区界面输入“AT+CGSN=1”,点击“发送”,获取 NB 模组的 IMEI 号,该 IMEI 信息同时也可在 NB 模组标刻的信息上查到;
根据 NB 模组的 IMEI 号,在平台上注册设备。在 OceanConnect 平台“产品”下的“设备管理”界面,点击“新增真实设备”;
选择实验三中开发的 Profile 文件;
自定义设备名称,并根据获取的 IMEI 号输入设备标识,选择设备注册方式“不加密”,点击“确定”;
注册设备成功,平台返回相应信息,点击“确定”;
OceanConnect 平台“设备管理”界面可查看到注册的设备(此时还处于离线状态);
根据平台提供的对接信息,在 LiteOS Studio 串口终端发送区界面输入
“AT+NCDP=49.4.85.232,5683”,设置 NB 模组对接的平台 ip 及端口信息(模组返回OK,即设置成功);
在发送区界面输入“AT+NRB”,重新重启 NB 模组,确保对接平台 ip 设置生效;
在发送区界面输入“AT+CFUN?”,查询协议栈功能是否开启(返回值为 CFUN:1 表示开启;返回值为 CFUN:0 表示关闭。如返回 0 则需要输入”AT+CFUN=1”开启);
在发送区界面输入“AT+CGATT?”,查询 NB-IoT 模组网络附着状态(如果返回值为CGATT:0,表示网络未附着;返回值为 CGATT:1,表示网络附着。如返回 0 则需要输入“AT+CGATT=1”进行网络附着);
在发送区界面输入“AT+NMGS=3,000123”,发送模拟数据给 IoT 平台(返回 OK 即为发送成功);
在 OceanConnect 平台“产品”下的“设备管理”界面,可以查看到之前注册的设备处于在线状态;
选择该设备,点击“历史数据”,可查看到设备的历史数据信息。
步骤 2 基于 LiteOS 控制 NB 模组入网注册与数据上报
在 LiteOS Studio 的工程界面工程树下,打开路径 BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC 下的“config.mk”文件;
在“config.mk”文件中修改网络类型,将“NETWORK_TYPE”参数修改为
“NB_NEUL95_NO_ATINY”;
在 LiteOS Studio 的工程界面工程树下,打开路径 BearPi_LiteOS -> demos ->
nbiot_without_atiny 下的“nb_demo.c”文件;
在“nb_demo.c”文件中根据平台提供的对接信息,修改代码中 IP 与 PORT 信息;
在 LiteOS Studio 的工程界面工程树下,打开路径 BearPi_LiteOS -> targets ->
STM32L431_BearPi -> Src 下的“main.c”文件;
在“main.c”文件 main 主函数中添加执行“create_work_tasks”函数的代码;
代码段:
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 中的网络类型配置,执行对应的通信模组程序。具体代码逻辑读者可自行学习了
解)
保存修改,点击编译;
将开发板通过 USB 线连接电脑,点击下载;将代码烧录到开发板芯片中;
在控制台界面选择“串口终端”,选择相应端口,设置波特率为 115200,校验位 None,数据位 8,停止位 1,流控 None,并打开串口;同时将开发板上 AT 指令输入源的切换开关切 换至 AT-MCU,按下开发板上的 RESET 按键,在开发板 MCU 上运行 LiteOS;此时可以看到输出的打印信息;
在 OceanConnect 平台“产品”下的“设备管理”界面,选择该 NB 设备,点击“历史数据”,可查看到 NB 模组上报的数据信息。