资讯详情

2021-08-21学习笔记:BL604 传感器数据上传华为云01

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

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

今日概述

华为云的设备和设备昨天成功完成BL在连接了604开发板之后,今天我开始使用温度传感器(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的视频,或者询问实验室的同伴 关于,我估计还是会再研究下那个函数,之后再看看相关博客和视频,以及询问博流工程师,以寻找解决方案。

标签: 100mb温度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台