任务03-01

Spark 案例(依据电商网站的真实需求)

  返回  

8月21日学习笔记:BL604 传感器数据上传华为云

2021/8/21 22:43:50 浏览:

8月21日学习笔记:BL604 传感器数据上传华为云

  • 今日概述
    • 任务的调度
    • 寻找数据上传接口函数
    • 明日规划

今日概述

两个任务 在昨天成功完成了华为云的设备与BL604开发板的连接以后,在今天我开始了对将温度传感器(DS18B20)的数据传入到华为云创建的设备中的尝试。为了实现这一目的,我需要解决的问题有两个:一是关于华为云连接和温度检测这两个任务的调度,这或许需要用到freertos;二是找到华为云数据上传的接口函数,并通过这个接口函数将传感器获取的数据上传。

任务的调度

我先是直接复制粘贴,结果是不行,然后创建了ds18b20.c和ds18b20.h,把温度传感器的所有驱动放在里面,再把测温的主程序放在bfl_main()里,结果编译显示wifi相关的函数报错,这令我困惑无解。

寻找数据上传接口函数

参考教程给的博客【上电即上华为云】华为云openCPU智联模组_wifi_BL602(RISC-V)_MQTT
我打开了位于sdk的component文件夹下面的一个demo。在里面也确实找到了博客中介绍的数据上传函数,遗憾的是,我看不懂这个程序,不太会调用。不知道这个函数中哪里对应的是数据接口,哪里对应的是创建的产品的属性名称。
代码如下:

// 数据上报处理函数
static void  oc_report_normal(void)
{
    static int times = 1;
    int ret;

    if(times == EN_OC_MQTT_PROFILE_MSG_TYPE_UP_MSGUP)
    {
        oc_mqtt_profile_msgup_t msgup;
        msgup.device_id = CN_EP_DEVICEID;
        msgup.id = "12345";
        msgup.name = "MSGUP";
        msgup.msg = "Hello,Message Up";
        msgup.msg_len = strlen(msgup.msg);

        oc_mqtt_profile_msgup(NULL,&msgup);
    }
    else if(times == EN_OC_MQTT_PROFILE_MSG_TYPE_UP_PROPERTYREPORT)
    {
        //  用于拼装JSON数据的变量
	    oc_mqtt_profile_kv_t dailyActivityTime_List;

        //  添加初始化服务代码
        ///< initialize the service
        s_device_service.event_time = NULL;
        s_device_service.service_id = "Connect";
        s_device_service.service_property = &dailyActivityTime_List;
        s_device_service.nxt = NULL;

        //  添加数据所需要的变量
	    int dailyActivityTime = 66;

        while(1)
        {
            osal_task_sleep(10000);
            if(1)//默认有效 // 
            {

                /*组装JSON数据*/ 
                dailyActivityTime = rand()%10;
                dailyActivityTime_List.key = "dailyActivityTime";
                dailyActivityTime_List.value = (char *)&dailyActivityTime;
                dailyActivityTime_List.type = EN_OC_MQTT_PROFILE_VALUE_INT;
                dailyActivityTime_List.nxt = NULL;

                //  添加数据上报代码
                ret = oc_mqtt_profile_propertyreport(NULL,&s_device_service);
                if(!ret)
                {
                    printf("%s\r\n","max.su -> My report success");
                }
                else
                {
                    printf("max.su -> error code %d\r\n", ret);
                }
                        

            }
        }
    }
    return;
}

明日规划

关于任务的调度,我可能会去看一些b站上的关于物联网的freertos的视频,或者询问实验室的同伴
关于寻找数据上传接口函数,我估计还是会再研究下那个函数,之后再看看相关博客和视频,以及询问博流工程师,以寻找解决方案。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号