【IoT最佳实践】基于小熊派开发板的物联网实战开发(四)-开发智慧农业传感器数据收集功能

举报
我是卤蛋 发表于 2020/03/10 09:37:22 2020/03/10
【摘要】 本实验基于STML431_BearPi裸机工程,开发收集智慧农业传感器数据的功能。

上一期基于小熊派开发板的物联网实战开发(三)-移植Huawei LiteOS操作系统(智慧农业)

请先完成前几期的实验再来操作本期实验。

完成Huawei LiteOS操作系统的移植后,我们就可以开始开发基于智慧农业传感器的数据收集功能了。

将小熊派开发板传感器扩展板更换为智慧农业扩展板E53_IA1;

1583803675584361.png

在“main”函数中添加调用“LOS_KernelInit”和“create_work_tasks”的代码,点击“保存”;

    UINT32 uwRet = LOS_OK;

    uwRet = LOS_KernelInit();

    if (uwRet != LOS_OK)

    {

        return LOS_NOK;

    }


               

    extern UINT32 create_work_tasks(VOID);

    uwRet = create_work_tasks();

    if (uwRet != LOS_OK)

    {

        return LOS_NOK;

    }


               


               

    (void)LOS_Start();

打开“nb_demo.c”文件,添加“E53_IA1.h” 智慧农业传感器头文件;

#include "E53_IA1.h"

在“nb_demo.c”文件中,添加数据收集的任务函数;

{

UINT32 uwRet = LOS_OK;                


               

Init_E53_IA1();                

while (1)

  {

E53_IA1_Read_Data();

printf("\r\n******************************Lux Value is  %d\r\n", (int)E53_IA1_Data.Lux);

printf("\r\n******************************Humidity is  %d\r\n", (int)E53_IA1_Data.Humidity);

printf("\r\n******************************Temperature is  %d\r\n", (int)E53_IA1_Data.Temperature);

sprintf(E53_IA1_send,"%02X%02X%04X",(int)E53_IA1_Data.Temperature, (int)E53_IA1_Data.Humidity, (int)E53_IA1_Data.Lux);  

               

uwRet=LOS_TaskDelay(2000);

if(uwRet !=LOS_OK)

return;

               

  }

}

1583804002177681.png

在“nb_demo.c”文件中,添加创建数据收集任务的函数;

UINT32 creat_data_collection_task()

{

    UINT32 uwRet = LOS_OK;

    TSK_INIT_PARAM_S task_init_param;

    UINT32 TskHandle;

    task_init_param.usTaskPrio = 0;

    task_init_param.pcName = "data_collection_task";

    task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)data_collection_task;

    task_init_param.uwStackSize = 0x1000;


               

    uwRet = LOS_TaskCreate(&TskHandle, &task_init_param);

    if(LOS_OK != uwRet)

    {

        return uwRet;

    }

    return uwRet;

}

1583804046692233.png

在“void nb_iot_entry(void)”函数中,添加调用“creat_data_collection_task”创建数据收集任务的代码;

    UINT32 uwRet = LOS_OK;


               

    uwRet = creat_data_collection_task();

    if (uwRet != LOS_OK)

    {

        return ;

    }

点击“保存”,点击“编译”,等待提示“编译成功”;

点击“烧录”,等待提示“烧录成功”;

将串口模式的切换开关拨到AT<->MCU模式(表示NB-IoT模组连接在MCU上);

1583804104757949.png

打开“串口终端”,选择对应“端口”,波特率选择“115200”,打开串口,可以看到有温湿度、光敏数据打印。

1583804129255887.png

下一期:基于小熊派开发板的物联网实战开发(五)-开发数据上报与命令下发功能

最后,让我们宣传一下:

3月27-28日,华为物联网平台在华为开发者大会静候您的光临。

华为开发者大会2020(Cloud)是华为面向ICT(信息与通信)领域全球开发者的年度顶级旗舰活动。大会旨在搭建一个全球性的交流和实践平台,开放华为30年积累的ICT技术和能力,以“鲲鹏+昇腾”硬核双引擎,为开发者提供澎湃动力,改变世界,变不可能为可能。

我们期待与你共创计算新时代

在一起,梦飞扬!

1583829665894051.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。