1593|7

7091

帖子

11

TA的资源

版主

楼主
 

【国民技术N32WB031_STB开发板评测】墨水屏温湿度计 [复制链接]

  1. 【新提醒】N32WB03x系列蓝牙芯片 产品简介 
  2. 【新提醒】N32WB031 API函数使用说明 
  3. 【新提醒】【国民技术N32WB031_STB开发板评测】资源的下载 
  4. 【国民技术N32WB031_STB开发板评测】创建MDK模版 
  5. 【国民技术N32WB031_STB开发板评测】GPIO之按键与LED灯 
  6. 【新提醒】【国民技术N32WB031_STB开发板评测】串口+LOG分级打印
  7. 【国民技术N32WB031_STB开发板评测】OLED驱动 
  8. 【国民技术N32WB031_STB开发板评测】驱动HS3003 
  9. 【国民技术N32WB031_STB开发板评测】SPI驱动墨水屏 
  10. 【国民技术N32WB031_STB开发板评测】点用 PA4后下载不程序 
  11. 【国民技术N32WB031_STB开发板评测】解决SWDCLK、SWDIO配置为普通IO后不能下载固件

解决了下载固件的问题后,昨晚把温湿度计hs3003与墨水屏结合在一起,温湿度计就做好了。

采集程序修改如下:

void Humiture_HS3003_ReadData_Raw(float *humi_f, float *temp_f)
{
    uint8_t rx_buf[4] = {0};
    uint16_t humi, temp;
    float    tmp_f   = 0.0;
		
    SI2C_MasterWrite(&SI2C_handle,I2C_SLAVE_ADDR, NULL, 0);
    //8bit->1.2ms
    //10bit->2.72ms
    //12bit->9.10ms
    //14bit->33.90ms
	  Delay_ms(40);
__retry:		
    SI2C_MasterRead(&SI2C_handle, I2C_SLAVE_ADDR, rx_buf, 4);
		
//		log_info("%x,%x,%x,%x\n", rx_buf[0], rx_buf[1], rx_buf[2], rx_buf[3]);
//    log_info("state:%x\n", rx_buf[0] & RM_HS300X_MASK_STATUS_0XC0);
		if ((rx_buf[0] & RM_HS300X_MASK_STATUS_0XC0) != RM_HS300X_DATA_STATUS_VALID)
        {
            Delay_ms(100);
            goto __retry;
        }
		humi = (rx_buf[0] & RM_HS300X_MASK_HUMIDITY_UPPER_0X3F) << 8 | rx_buf[1];
		temp = (rx_buf[2] << 8 | (rx_buf[3] & RM_HS300X_MASK_TEMPERATURE_LOWER_0XFC)) >> 2;

		tmp_f = (float )humi;
		*humi_f = (tmp_f * RM_HS300X_CALC_HUMD_VALUE_100) / RM_HS300X_CALC_STATIC_VALUE;

		tmp_f = (float)temp;
		*temp_f = ((tmp_f * RM_HS300X_CALC_TEMP_C_VALUE_165) / RM_HS300X_CALC_STATIC_VALUE) - RM_HS300X_CALC_TEMP_C_VALUE_40;

//		log_info("Temp:%d.%d   ",(int)temp_f,(int)(temp_f*100)%100);
//		log_info("HUMI:%d.%d\r\n",(int)humi_f,(int)(humi_f*100)%100);
//    return 1;
}

main.c修改如下:

    while (1)
    {
			
			LedBlink(LED1_PORT, LED1_PIN);
			Humiture_HS3003_init();
			Humiture_HS3003_ReadData_Raw(&humi,&temp);
	  	EPD_HW_Init_GUI(); //EPD init GUI
			
			
			Paint_Clear(WHITE);
			sprintf(show_str,"温度%02d.%02d℃",(int)temp, (int)(temp*100)%100);	
			Paint_DrawString_CN(40,10,show_str, &Font24CN, WHITE, BLACK);
			sprintf(show_str,"湿度%02d.%02d%%",(int)humi, (int)(humi*100)%100);				
			Paint_DrawString_CN(40,60,show_str, &Font24CN, WHITE, BLACK);
	
			EPD_Display(BlackImage); //display image
			EPD_DeepSleep();//EPD_DeepSleep,Sleep instruction is necessary, please do not delete!!!
			Delay_ms(10000);

    }

这样温湿度计做好了,效果见视频,下一步将实现RTC日历功能。

墨水屏温湿计

 

此帖出自无线连接论坛

最新回复

很有启发。丰富了温湿度计系统。  详情 回复 发表于 2023-5-18 13:43
点赞 关注
 

回复
举报

3241

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 

看楼主的手就不是干体力活的。

此帖出自无线连接论坛

点评

大佬的观察力那是相当的不错,曾经也是一名体力劳动者呀!  详情 回复 发表于 2023-5-6 10:42
 
 

回复

7091

帖子

11

TA的资源

版主

板凳
 
tagetage 发表于 2023-5-6 10:34 看楼主的手就不是干体力活的。

大佬的观察力那是相当的不错,曾经也是一名体力劳动者呀!

此帖出自无线连接论坛
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

4
 

这湿度有点高了……

此帖出自无线连接论坛

点评

早上起来,下雨,中午好一点了78%,南方现在阴雨天。  详情 回复 发表于 2023-5-6 15:40
 
 
 

回复

7277

帖子

2

TA的资源

版主

5
 

显示效果挺好的,墨水屏主打的就是一个低功耗。

此帖出自无线连接论坛

点评

准备做个低功耗的温湿计,正在努力学习中。  详情 回复 发表于 2023-5-6 15:40
 
 
 

回复

7091

帖子

11

TA的资源

版主

6
 
wangxiangtan2 发表于 2023-5-6 10:57 这湿度有点高了……

早上起来,下雨,中午好一点了78%,南方现在阴雨天。

此帖出自无线连接论坛
 
 
 

回复

7091

帖子

11

TA的资源

版主

7
 
wangerxian 发表于 2023-5-6 14:13 显示效果挺好的,墨水屏主打的就是一个低功耗。

准备做个低功耗的温湿计,正在努力学习中。

此帖出自无线连接论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

8
 
很有启发。丰富了温湿度计系统。
此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表