搜索代码

第35-1课:使用HTU21D温度传感器

第35-1课:使用HTU21D温度传感器

在本教程中,我们将探索如何使用HTU21D温湿度传感器与Arduino进行配合。HTU21D是一种紧凑型传感器,通过I2C进行通信,使其与微控制器的接口变得简单。到本节结束时,您将能够读取温度和湿度值并通过Arduino串行监视器显示它们。

HTU21D module

对于这个项目,我们将使用专门为HTU21D传感器设计的Adafruit库。该库简化了读取传感器数据的过程,使我们能够专注于将传感器集成到我们的项目中。您可以期待在视频中看到传感器的温度读数,包括摄氏度、华氏度和开尔文,以及相对湿度百分比(在视频的03:15)。

硬件说明

该项目的主要组件是HTU21D温湿度传感器。该传感器的供电电压为1.5至3.6伏特,功耗极低,非常适合电池供电的设备。它通过I2C协议与Arduino通信,只需要两条数据线:SDA用于数据,SCL用于时钟。

为了为传感器供电,我们将其连接到3.3V或5V的电源,具体取决于您使用的模块。Adafruit版本包括一个电压稳定器,使其能够在这两种电压水平下无缝工作。这种灵活性使其成为各种应用的理想选择。

数据表详情

制造商TE 连接器
部件编号HTU21D-F
逻辑/IO电压1.5 - 3.6 V
供电电压3.3 V(典型)
当前消费(空闲)0.02 微安培
当前消耗(测量)450 µA (典型)
温度范围-40至+125°C
湿度分辨率0.04 %
包裹6引脚DFN

  • 确保电压水平适当,以避免损坏传感器。
  • 如果模块中未包含,则在I2C线路上使用上拉电阻。
  • 保持电线短,以减少与I2C通信的干扰。
  • 在高温环境中使用时,请考虑散热。
  • 检查传感器的方向以确保引脚连接正确。

接线说明

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

要将HTU21D传感器接线到您的Arduino,首先将传感器的VCC引脚连接到Arduino的3.3V电源引脚。接下来,将传感器的GND引脚连接到Arduino的地(GND)引脚。然后,将传感器的SDA引脚连接到Arduino的模拟引脚A4,该引脚作为I2C数据线。最后,将传感器的SCL引脚连接到模拟引脚A5,该引脚作为I2C时钟线。确保您的连接牢固,以避免间歇性读数。

为清晰起见,如果您使用的是不同的电路板,请确保识别SDA和SCL的正确引脚,因为它们可能会有所不同。该接线设置将使Arduino能够有效地与HTU21D传感器进行通信(视频中为05:00)。

代码示例与教程

以下是初始化串行通信并检查传感器是否找到的设置函数的摘录:

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

此代码以9600的波特率开始串行通信,并尝试初始化HTU21D传感器。如果未检测到传感器,将打印错误信息并停止进一步执行。

程序的主循环不断读取温度和湿度值:

void loop() {
    Serial.print(getHTU('C'));
    Serial.println("C");
    Serial.print("Humidity:");
    Serial.print(getHTU('H'));
    Serial.println("%");
    delay(1000);
}

在这个循环中,我们调用函数getHTU使用'C'来获取摄氏温度,使用'H'来获取湿度。结果每秒打印到串口监视器。这允许实时观察传感器读数。

此外,我们有一个功能getHTU根据字符输入返回温度或湿度:

float getHTU(char type) {
    float temp = htu.readTemperature();
    float rel_hum = htu.readHumidity();
    return (type == 'H') ? rel_hum : temp;
}

此功能从传感器读取温度和湿度,并根据指定的类型返回适当的值。这种模块化的方法使代码保持简洁,易于维护。

演示 / 期待什么

成功设置并执行代码后,您应该会看到温度和湿度值打印到串口监视器上。如果您对传感器施加热量,温度读数应相应增加,而湿度可能会降低。如果温度超出传感器的最大范围,可能会显示意外结果,例如零(视频在 :00)。

视频时间戳

  • 00:00- 介绍
  • 03:15传感器概述
  • 05:00- Wiring instructions
  • 10:00代码演示
  • 12:00- 演示

图像

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
512-Lesson 35: Using HTU21D Temperature Sensor
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

|||您可能需要的东西

文件📁

数据手册 (pdf)