实验六:基于LiteOS实现端到端物联实验

步骤一 移植光敏传感器代码,通过传感器采集光照亮度

  1. 在keil环境中右击“IOT-Domo”选择“Manage Project Items...”;


    实验六:基于LiteOS实现端到端物联实验_第1张图片
    image.png
  2. 在“Project Items”标签下的“Groups”中添加“Hardware”,并在该group下添加光敏传感器代码:
    添加“Iot-Demo-LiteOS\targets\Hareware\BH1750.c”目录下的“BH1750.c”文件,点击"OK";
    实验六:基于LiteOS实现端到端物联实验_第2张图片
    image.png

    参照实验五步骤1的方式,添加光敏传感器代码的头文件路径(“Iot-Demo-LiteOS\targets\Hareware\BH1750“)
    实验六:基于LiteOS实现端到端物联实验_第3张图片
    image.png

    3.在"main.h"/USER CODE BEGIN Includes/与/USER CODE END Includes/
    之间添加引用定义标准扩展整数类型的头文件代码;
    实验六:基于LiteOS实现端到端物联实验_第4张图片
    image.png

    4.在"main.h"/USER CODE BEGIN Private defines/与/USER CODE END Private defines/
    之间添加全局变量”msg_for_BH1750“与”BH1750_send“定义的代码;
    实验六:基于LiteOS实现端到端物联实验_第5张图片
    image.png

5.在"main.c"/USER CODE BEGIN Includes/与/USER CODE END Includes/
之间添加引用光敏传感器头文件的代码与BH1750数据的全局变量,并根据1.2.1章节步骤三中设计的数据码流,添加光敏传感器数据上报携带messageld的代码;

实验六:基于LiteOS实现端到端物联实验_第6张图片
image.png

6.在"main.c"/USER CODE BEGIN 0/与/USER CODE END 0/
之间添加光敏传感器任务代码,定义光敏传感器任务名为”LIghtSensor_task“
,优先级为0;通过该任务,对光敏传感器进行初始化,并打印任务信息与光敏传感器数据;

实验六:基于LiteOS实现端到端物联实验_第7张图片
image.png

7.基于步骤3在"main.c"/USER CODE BEGIN 2/与/USER CODE END 2/
之间生成的代码,添加创建光敏传感器的代码,并注释创建task1与task2的代码;

实验六:基于LiteOS实现端到端物联实验_第8张图片

8.点击”Rebuild“,编译工程;


实验六:基于LiteOS实现端到端物联实验_第9张图片
image.png

9.点击”Download“,下载至开发板;


实验六:基于LiteOS实现端到端物联实验_第10张图片
image.png

打开QCOM串口调试助手,根据对应的串口,选择对应的串口,选择对应的串口号,配置相应信息,按下”MCU_RST“,开发板运行程序;
此时在QCOM上可以看到任务打印的信息。


实验六:基于LiteOS实现端到端物联实验_第11张图片
image.png

步骤二 移植NB入网代码,通过NB模组将数据上报至平台

1.登录OceanConnect平台,参照实验三的方式注册设备


实验六:基于LiteOS实现端到端物联实验_第12张图片
image.png

2.打开keil,在keil中右击“Iot-Demo”选择"Manage Project Items...";
在“Project Items”标签下的“Application/User”中添加"IoT- Demo LiteOS\targets\Src目录下的"at. _hal.c"文件(注: "at hal.c" 文件包含用于连接LiteOS与HAL函数库控制外设的代码);


实验六:基于LiteOS实现端到端物联实验_第13张图片
image.png

3.在"Project ltems标签下的"Groups"中添加"at _device" ,并在该group下添加基于LiteOS的NB模组代码;添加"T-Dem-litesicomponentsinetat devicenb. bc95” 目录下的"bc95 c"文件;


实验六:基于LiteOS实现端到端物联实验_第14张图片
image.png

4.在”Project ltems"标签下的"Groups"中添加"at framework" ,并在该group下添加LiteOS AT框架实现的代码;添加"IoT-Demo-LiteOS\components\netlat. frame”" 目录下的全部.c文件;


实验六:基于LiteOS实现端到端物联实验_第15张图片
image.png

5.在Project Items"标签下的"Groups"中添加"nb-iot_ api" ,并在该group下添加基于LiteOS 的NB-IoT API的代码:添加”loT-Demo-LiteOS\componentslconnectivitynb iot" 目录下的"los_ nb api.c"文件;

实验六:基于LiteOS实现端到端物联实验_第16张图片
image.png

6.完成NB模组与AT框架相关代码添加,点击"OK" ;


实验六:基于LiteOS实现端到端物联实验_第17张图片
image.png

7.添加完成后,Keil 的Project导航栏出现相应文件;


实验六:基于LiteOS实现端到端物联实验_第18张图片
image.png

8.在"Option for Target 'loT-Demo'”界面下选择”C/C++”,在"Define" 中添加全局宏定义标识符: "WITH_ AT_ FRAMEWORK", "USE_ NB_ _NEUL95";


实验六:基于LiteOS实现端到端物联实验_第19张图片
image.png

实验六:基于LiteOS实现端到端物联实验_第20张图片
image.png

9.在"Include Paths"栏添加相应文件的头文件路径;头文件路径分别为:
"IoT-Demo-LiteOS\components\connectivitylwm2m\coreler-coap-13"
"IoT-Demo-LiteOS\components\net\at device\nb_ _bc95"


实验六:基于LiteOS实现端到端物联实验_第21张图片
image.png

实验六:基于LiteOS实现端到端物联实验_第22张图片
image.png

10.在"main.c"的/* USER CODE BEGIN Includes /与/ USER CODE END Includes */之间添加调用AT框架与BC95头文件的代码,并声明BC95入网的全局变量:

实验六:基于LiteOS实现端到端物联实验_第23张图片
image.png

11.在main.h"的/* USER CODE BEGIN Private defines /与/ USER CODE END Private defines之间法加”msg. sys_ type bc95_ net data' '定义的代码;

实验六:基于LiteOS实现端到端物联实验_第24张图片
image.png

12.在"main.C"的/* USER CODE BEGIN 0 */与/ USER CODE END 0 */之间添加BC95模组入网连接平台发送数据任务代码:定义该任务名为"ata send task",优先级为1:通过该任务,MCU问BC95发送平台ip及port信息和光敏传感器数据并通过串口打印发送结果:


实验六:基于LiteOS实现端到端物联实验_第25张图片
image.png

13.打:"bc95.h",在该文件中修改AT LUSART PORT 为2 (本实验开发板MCU通过USART2向BC95模组发送数据,不同开发板根据实际硬件情况配置):


实验六:基于LiteOS实现端到端物联实验_第26张图片
image.png

实验六:基于LiteOS实现端到端物联实验_第27张图片
image.png

14.基于步骤1在”main.c"的/* USER CODE BEGIN2 /与/* USER CODE END2 */之间生成的代码,添加创建BC95模组入网连接平台发送数据任务的代码:


实验六:基于LiteOS实现端到端物联实验_第28张图片
image.png

15.点击”Rebuild",编译工程:


实验六:基于LiteOS实现端到端物联实验_第29张图片
image.png

16.点击"Download",下载程序至开发板:


实验六:基于LiteOS实现端到端物联实验_第30张图片
image.png

17.打开QCOM串口调试助手,根据对应的串口,选择对应的串口号,配置相应信息;通过踩线帽将开发板上的UART1的RX和TX与CH340的TX和RX连接,将开发板上的UART2的RX和TX与NB-I0T的TX和RX连接;按下"MCU_ RST", 开发板运行程序;此时在QCOM上可以看到任务打印的信息。


实验六:基于LiteOS实现端到端物联实验_第31张图片
image.png

18.登陆平台,可以查看到注册的设备处于已绑定状态,通过”历史数据”可以查看到开发板上报的数据;


实验六:基于LiteOS实现端到端物联实验_第32张图片
image.png
实验六:基于LiteOS实现端到端物联实验_第33张图片
image.png

步骤三 编写命令响应代码,通过平台下发命令开关光敏传感器上的LED灯

1.MCU通过PA5口控制光敏传感器上的LED灯:打开"gpioc". 在GPIO初始化函数下添加PIN5的初始化代码:


实验六:基于LiteOS实现端到端物联实验_第34张图片
image.png

2.打开“添加定义LED引脚的代码”,


实验六:基于LiteOS实现端到端物联实验_第35张图片
image.png

3.打开“bc95.c”,在该.c文件中添加接收命令代码,根据命令执行控制LED灯代码及命令答复代码:


实验六:基于LiteOS实现端到端物联实验_第36张图片
image.png

实验六:基于LiteOS实现端到端物联实验_第37张图片
image.png

4.在"bc95.c"的"nb_ cmd match' 回凋函数中,将‘nb_ handle_data_ind(buf);" 改カ" nb_ handle data_coap(buf);" ;


实验六:基于LiteOS实现端到端物联实验_第38张图片
image.png

5.在步骤2”main.c"中创建的" data_ send_ task" 任务中添加命令回复代码;


实验六:基于LiteOS实现端到端物联实验_第39张图片
image.png

6..点击”Rebuild",编译工程:


实验六:基于LiteOS实现端到端物联实验_第40张图片
image.png

7.点击"Download",下载程序至开发板:


实验六:基于LiteOS实现端到端物联实验_第41张图片
image.png

8.登录平台,在”我的设备“中进行命令下发;


实验六:基于LiteOS实现端到端物联实验_第42张图片
image.png

9.选择"value"为"ON",即下发开灯命令,点击“缓存发送”;


实验六:基于LiteOS实现端到端物联实验_第43张图片
image.png

10.点击"我的设备"中的”历史命令”,可以看到命令已下发并执行,此时光敏传感器上的LED灯点亮;


实验六:基于LiteOS实现端到端物联实验_第44张图片
image.png

11.同样,选择"value"为“OFF", 即下发关灯命令,点击缓存发送";在“历史命令”中,可以看到命令已下发并执行,此时光敏传感器上的LED灯熄灭。

实验组网介绍:

实验六:基于LiteOS实现端到端物联实验_第45张图片
image.png

你可能感兴趣的:(实验六:基于LiteOS实现端到端物联实验)