打印
[活动]

【APM32F107VCT6 MINI开发板测评】温湿度监控

[复制链接]
950|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-3-12 22:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#申请原创# 【目的】用RT-Thread完成温湿度数据采集
【APM32F107VCT6 MINI开发板测评】驱动OLED 在这篇文章的基础上增加hs3003温湿度计的驱动,并显示到OLED上。
1、打开menuconfig,配置hs3003温湿度计。


2、配置完后,退出保存并用scons --target=mdk5重新生成工程。
3、打开工程,在main.c中增加ssd1306的初始化,并添加显示温湿度显示函数。代码如下:
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "sensor_renesas_hs300x.h"
#include "ssd1306.h"

/* defined the LED1 pin: PE7 */
#define LED1_PIN    GET_PIN(E, 6)

int main(void)
{
    uint32_t sysclock = 0;
                float humi_f;
    float temp_f;
                char mqtt_send_buf[128] = {0};
    /* set LED1 pin mode to output */
    rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
    /* Print system clock */
    sysclock = RCM_ReadSYSCLKFreq();
    rt_kprintf("System Clock: %d\n", sysclock);
                 ssd1306_Init();       //初始化OLED
                ssd1306_SetCursor(30, 0);   //设置显示位置
                ssd1306_WriteString("AMP32", Font_16x26, White);  //显示AMP图标
    while (1)
    {
                        hs300x_read_data(&temp_humi_dev,&humi_f,&temp_f); //读取温湿度
                        ssd1306_SetCursor(10, 26);
                        rt_sprintf(mqtt_send_buf,"temp:%d.%02d",(int)temp_f,(int)(temp_f*100)%100);  //生成显示字符串
                        ssd1306_WriteString(mqtt_send_buf, Font_11x18, Black);    //显示温度
                        ssd1306_SetCursor(10, 26+18);
                        rt_sprintf(mqtt_send_buf,"humi:%d.%02d",(int)humi_f,(int)(humi_f*100)%100);
                        ssd1306_WriteString(mqtt_send_buf, Font_11x18, Black);
                        ssd1306_UpdateScreen();             //更新显示
                        //rt_kprintf(mqtt_send_buf);
      rt_pin_write(LED1_PIN, PIN_HIGH);
      rt_thread_mdelay(500);
      rt_pin_write(LED1_PIN, PIN_LOW);
      rt_thread_mdelay(500);
    }
}
4、编译后下载到开发板,显示效果如下:


使用特权

评论回复
沙发
tpgf| | 2023-4-8 14:00 | 只看该作者
湿度计由两只完全相同的温度计构成。其中一只温度计为干泡温度计,另一只为湿泡温度计

使用特权

评论回复
板凳
nawu| | 2023-4-8 14:52 | 只看该作者
湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法

使用特权

评论回复
地板
aoyi| | 2023-4-8 15:37 | 只看该作者
在计量法中规定,湿度定义为"物象状态的量"。日常生活中所指的湿度为相对湿度,用RH%表示。

使用特权

评论回复
5
zljiu| | 2023-4-8 15:55 | 只看该作者
现代湿度测量方案最主要的有两种:干湿球测湿法,电子式湿度传感器测湿法

使用特权

评论回复
6
gwsan| | 2023-4-8 16:15 | 只看该作者
湿度很久以前就与生活存在着密切的关系,但用数量来进行表示较为困难。对湿度的表示方法有绝对湿度、相对湿度、露点、湿气与干气的比值(重量或体积)等等。

使用特权

评论回复
7
tfqi| | 2023-4-8 16:26 | 只看该作者
湿度测量始终是世界计量领域中著名的难题之一

使用特权

评论回复
8
lulugl|  楼主 | 2023-4-8 18:09 | 只看该作者
tfqi 发表于 2023-4-8 16:26
湿度测量始终是世界计量领域中著名的难题之一

现在低功耗温度采集,还有特殊环境下的温湿度采集还是有市场的。

使用特权

评论回复
9
albertaabbot| | 2023-4-15 19:46 | 只看该作者
HS300X系列是IDT瑞萨设计的高精度,IIC接口

使用特权

评论回复
10
lulugl|  楼主 | 2023-4-15 20:13 | 只看该作者
albertaabbot 发表于 2023-4-15 19:46
HS300X系列是IDT瑞萨设计的高精度,IIC接口

对的,精度还要吧,关键功耗控制得非常好。

使用特权

评论回复
11
1988020566| | 2023-4-16 21:53 | 只看该作者
hs3003的测量范围是多少?              

使用特权

评论回复
12
lihuami| | 2023-4-16 22:05 | 只看该作者
hs3003温湿度计精度如何?              

使用特权

评论回复
13
iyoum| | 2023-4-16 22:26 | 只看该作者
为什么不使用dht11呢
              

使用特权

评论回复
14
lulugl|  楼主 | 2023-4-17 07:15 | 只看该作者
lihuami 发表于 2023-4-16 22:05
hs3003温湿度计精度如何?

这个是做活动送的模志,精度正负0.1吧。看数据手册 14-bit resolution: 0.01%RH, typical

使用特权

评论回复
15
lulugl|  楼主 | 2023-4-17 07:17 | 只看该作者
iyoum 发表于 2023-4-16 22:26
为什么不使用dht11呢

dht11与hs3003,不同的,DH11是单总线的,HS3003是I2C总线的。

使用特权

评论回复
16
bartonalfred| | 2023-4-18 10:46 | 只看该作者
APM32F107VCT6 做采集真是大材小用了。

使用特权

评论回复
17
lulugl|  楼主 | 2023-4-18 11:11 | 只看该作者
bartonalfred 发表于 2023-4-18 10:46
APM32F107VCT6 做采集真是大材小用了。

对呀,这芯片非常强大,这只是用到他的I2C功能吧。

使用特权

评论回复
18
ccook11| | 2023-5-11 19:14 | 只看该作者
IIC接口,数字输出的温湿度传感器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

744

帖子

10

粉丝