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的视频,或者询问实验室的同伴 关于,我估计还是会再研究下那个函数,之后再看看相关博客和视频,以及询问博流工程师,以寻找解决方案。