[经验分享] 【平头哥RVB2601创意应用开发】成功连上阿里云

lugl4313820   2022-5-4 17:35 楼主

在学习@4489@xinmeng_wit@sipower经验,今天把监控数据上传到阿里云平台了,这里分享一下成果吧:

image-20220504173300-1.png  

上网的代码,前面的网友已经写得很清楚了,我这里主要是说一下我的实现思路:

创建一个定时器每一秒钟用串口送获取电源监控模块的命令,接收到数据后生成u8g2在本地的OLED屏展示,同时上报服务器:

/*
 * 功能:创建串口1接收任务,接收数据并把数据解析出来,存放在buff中,由U8g2显示函数定时刷新。上传服务器
 * 
 * 
 */
static void application_task1_entry(void *arg)
{
	int ret = -1;
	uint32_t rx_size = 0;
	float Irms=0;       //电流有效值
	float Vrms=0;       //电压有效值
	float Frequency=0;  //频率
	float PowerFactor=1;//功率因数
	float PActive=0;    //有功功率
	double W_KWH=0;     //累积功耗
	int n=0;
	const char *dev_id = "0";
	int pkt_id = 0;
	char report_buf[128];
    while (1) {
		ret = hal_uart_recv_II(&uart1, uart_data_buf, 24,
                               &rx_size, UART_RX_TIMEOUT);
	   // LOGD(TAG, "RECV len:%d data:%x",rx_size,uart_data_buf[0]);
        if (rx_size ==  24) 
		{
			if((uart_data_buf[0] == 0x55) && (uart_data_buf[0] == 0x55))
			{
				Vrms=(double)(((uint32_t)uart_data_buf[6]<<24)|((uint32_t)uart_data_buf[7]<<16)|((uint32_t)uart_data_buf[8]<<8)|((uint32_t)uart_data_buf[9]<<0))/1000.0;
				Irms=(double)(((uint32_t)uart_data_buf[10]<<24)|((uint32_t)uart_data_buf[11]<<16)|((uint32_t)uart_data_buf[12]<<8)|((uint32_t)uart_data_buf[13]<<0))/1000.0;
				PActive=(double)(((uint32_t)uart_data_buf[14]<<24)|((uint32_t)uart_data_buf[15]<<16)|((uint32_t)uart_data_buf[16]<<8)|((uint32_t)uart_data_buf[17]<<0))/1000.0;
				Frequency=(double)(((uint32_t)uart_data_buf[18]<<24)|((uint32_t)uart_data_buf[19]<<16)|((uint32_t)uart_data_buf[n++]<<8)|((uint32_t)uart_data_buf[20]<<0))/1000.0;
				sprintf(disp_Vrms,"%.1fV",Vrms);
				sprintf(disp_Irms,"%.2fA",Irms);
				sprintf(disp_PActive,"%.2fW",PActive);
				sprintf(disp_Frequency,"%.2fHz",Frequency);
				snprintf(report_buf,128,"{\\\"temperature\\\":8,\\\"LightVolt\\\":%.1f,\\\"ActivePower\\\":%.2f,\\\"LightCurrent\\\":%.2f}",Vrms,PActive,Irms);
				w800_living_idmpp(dev_id, report_buf, &pkt_id);			}
            
        }
        aos_msleep(50);
    }

    aos_task_exit(0);
}

非常感谢好人的帮忙,原来想用http给我自己的服务器发数据来展示数据的,结果连上一看,我的服务器是https,这样还需要带证书。唉,只好屈服阿里吧,用着他的服务器先完成作业。

回复评论 (5)

支持,学习啦!

点赞  2022-5-5 09:36

楼主说的要带”证书“是什么呀?

点赞  2022-5-11 15:36
引用: 梦溪开物 发表于 2022-5-11 15:36 楼主说的要带”证书“是什么呀?

就是,https相对http要多带一个东西。

点赞  2022-5-11 18:52
自己的服务器是在哪建立的?
点赞  2022-6-5 01:34
引用: full_stack 发表于 2022-6-5 01:34 自己的服务器是在哪建立的?

阿里云

点赞  2022-6-5 09:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复