2020-12-23

实验四任务配置

配置步骤:通过PC串口调试终端控制NB模组入网注册与数据上报根据实验二步骤一的介绍,将SIM卡插入NB-IoT通信模组卡槽中;并将NB-IoT模组与开发板主板上的通信扩展板对接引脚对接;同时将AT指令输入源的切换开关切换至AT-PC;最后将开发板通过USB线接到PC机上;打开LiteOS Studio,导入实验二的工程文件,在LiteOS Studio主界面下的控制台界面,选择“串口终端”,在串口终端界面下选择相应端口(相应端口可通过PC机的“计算机”->“管理”->“设备管理器”->“端口”中可以查看),设置波特率为9600,校验位None,数据位8,停止位1,流控None,点击配置栏最右边图标“切换到非shell”,并打开串口;


image.png

在发送区界面输入“AT+NRB”,点击“发送”,重启NB模组(注:发送AT指令后,需发送新行模组才能正确接收指令,即输入完AT指令后需回车另一起行再点击发送);


image.png

在接收区可查看模组返回的信息;


image.png

在发送区界面输入“AT+CGSN=1”,点击“发送”,获取NB模组的IMEI号,该IMEI信息同时也可在NB模组标刻的信息上查到;
image.png

根据NB模组的IMEI号,在平台上注册设备。在OceanConnect平台“产品”下的“设备管理”界面,点击“新增真实设备”;


image.png

选择实验三中开发的Profile文件;
image.png

自定义设备名称,并根据获取的IMEI号输入设备标识,选择设备注册方式“不加密”,点击“确定”;
image.png

注册设备成功,平台返回相应信息,点击“确定”;
image.png

OceanConnect平台“设备管理”界面可查看到注册的设备(此时还处于离线状态);
image.png

根据平台提供的对接信息,在LiteOS Studio串口终端发送区界面输入“AT+NCDP=49.4.85.232,5683”,设置NB模组对接的平台ip及端口信息(模组返回OK,即设置成功);


image.png

image.png

在发送区界面输入“AT+NRB”,重新重启NB模组,确保对接平台ip设置生效;


image.png

在发送区界面输入“AT+CFUN?”,查询协议栈功能是否开启(返回值为CFUN:1表示开启;返回值为CFUN:0表示关闭。如返回0则需要输入”AT+CFUN=1”开启);


image.png

在发送区界面输入“AT+CGATT?”,查询NB-IoT模组网络附着状态(如果返回值为CGATT:0,表示网络未附着;返回值为CGATT:1,表示网络附着。如返回0则需要输入“AT+CGATT=1”进行网络附着);
image.png

在发送区界面输入“AT+NMGS=3,000123”,发送模拟数据给IoT平台(返回OK即为发送成功);


image.png

在OceanConnect平台“产品”下的“设备管理”界面,可以查看到之前注册的设备处于在线状态;
image.png

选择该设备,点击“历史数据”,可查看到设备的历史数据信息。
image.png

步骤2基于LiteOS控制NB模组入网注册与数据上报在LiteOS Studio的工程界面工程树下,打开路径BearPi_LiteOS -> targets -> STM32L431_BearPi -> GCC下的“config.mk”文件;
image.png

在“config.mk”文件中修改网络类型,将“NETWORK_TYPE”参数修改为“NB_NEUL95_NO_ATINY”;
image.png

在LiteOS Studio的工程界面工程树下,打开路径BearPi_LiteOS -> demos -> nbiot_without_atiny下的“nb_demo.c”文件;


image.png

在“nb_demo.c”文件中根据平台提供的对接信息,修改代码中IP与PORT信息;
image.png

在LiteOS Studio的工程界面工程树下,打开路径BearPi_LiteOS -> targets -> STM32L431_BearPi -> Src下的“main.c”文件;
image.png

在“main.c”文件main主函数中添加执行“create_work_tasks”函数的代码;
image.png

代码段:
image.png

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中的网络类型配置,执行对应的通信模组程序。具体代码逻辑读者可自行学习了解)保存修改,点击编译;
image.png

将开发板通过USB线连接电脑,点击下载;将代码烧录到开发板芯片中;
image.png

在控制台界面选择“串口终端”,选择相应端口,设置波特率为115200,校验位None,数据位8,停止位1,流控None,并打开串口;同时将开发板上AT指令输入源的切换开关切换至AT-MCU,按下开发板上的RESET按键,在开发板MCU上运行LiteOS;此时可以看到输出的打印信息;
image.png

在OceanConnect平台“产品”下的“设备管理”界面,选择该NB设备,点击“历史数据”,可查看到NB模组上报的数据信息。
image.png

你可能感兴趣的:(2020-12-23)