本教程是的一部分: 数字式相对湿度和温度传感器 HTU21D
本文下方提供了与数字式相对湿度和温度传感器 HTU21D 相关的视频链接。
如何使用HTU21DF湿度和温度传感器与Arduino(基础代码)
在本教程中,我们将学习如何将HTU21DF温度和相对湿度传感器与Arduino一起使用。该传感器以其准确性和低功耗而闻名,适用于各种应用。到本教程结束时,您将能够读取温度和湿度值,并在Arduino串行监视器上显示它们。为获得额外的说明,请务必查看视频(视频在:00)。
硬件解析
HTU21DF传感器是一种数字湿度和温度传感器,通过I2C协议进行通信。它可以测量温度范围从-40°C到+125°C,湿度范围从0%到100%。该传感器以3.3V的供电电压工作,非常适合电池供电的应用。
两个引脚对于通信至关重要:SDA(数据线)和SCL(时钟线)。传感器还有低功耗模式,闲置时仅消耗0.04微安,测量时约为400微安。这个功能使其在对能量敏感的项目中特别有用。
数据表详细信息
| 制造商 | TE Connectivity(前称MEAS) |
|---|---|
| 部件号 | HTU21DF |
| 逻辑/IO电压 | 3.3 伏 |
| 电源电压 | 1.5 - 3.6 伏 |
| 待机电流消耗 | 0.04 微安培 |
| 测量电流消耗 | 400 微安 |
| 温度范围 | -40到+125摄氏度 |
| 湿度范围 | 0到100% |
| 分辨率 | 0.04 %(湿度),0.01 °C(温度) |
| 包裹 | 6针LGA |
- 确保正确连接以避免损坏。
- 将电源保持在规定的电压范围内(1.5至3.6 V)。
- 如有必要,请在SDA和SCL线使用上拉电阻。
- 连接电源时要小心极性反向。
- 在开机后,请给传感器一些时间来稳定。
接线说明
将HTU21DF传感器连接到Arduino,请按照以下步骤操作:
首先,将传感器的左脚连接到Arduino的3.3V电源。第二个针脚通常标记为红色,应连接到接地(GND)。接下来,将传感器的SDA脚连接到针脚。A4在Arduino上,将SCL引脚连接到引脚A5这个设置将允许Arduino使用I2C协议与传感器通信。
确保所有连接都牢固,以防止任何通信问题。如果您使用的是面包板,请再次检查接线以保持正确的连接。在视频中,替代接线方法在(视频中的 01:30)处讨论。
代码示例与操作指南
下面是与HTU21DF传感器接口的代码简要概述。首先,包含必要的库:
#include
#include "Adafruit_HTU21DF.h" 此代码初始化I2C通信并创建HTU21DF传感器的实例。htu.
接下来,我们设置串行通信。setup()功能:
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}这里,传感器被初始化,如果连接失败,将打印一条消息,程序将暂停。
在loop()功能,我们读取温度和湿度值:
void loop() {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
Serial.print("Temp: "); Serial.print(temp); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
delay(500);
}温度存储在变量中temp,相对湿度存储在rel_hum这些值每500毫秒打印到串口监视器上,让您可以实时观察变化。
完整代码请参考文章下方加载的完整程序。
演示 / 预期内容
一旦所有连接完成并上传代码,打开串口监视器以查看温度和湿度读数。您应该看到每半秒更新一次值。如果您使用热风枪对传感器加热,您会注意到温度读数增加,而湿度读数减少(视频中在05:00)。
请注意,如果温度超过最大限制125°C,读数可能会变得不准确或重置。保持传感器在其指定的操作范围内对确保准确测量至关重要。
视频时间戳
- 00:00- 介绍
- 01:30- 接线说明
- 05:00- 演示
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
This module uses I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
Serial.print("Temp: "); Serial.print(temp); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" %");
delay(500);
}
|||您可能需要的东西
-
亚马逊从亚马逊购买HTU21D模块amzn.to
-
易趣在eBay上购买HTU21Debay.us
-
全球速卖通从AliExpress购买HTU21D或SHT21s.click.aliexpress.com
资源与参考
-
外部Adafruit HTU21D库(GitHub)github.com
文件📁
数据手册 (pdf)
-
HTU21D温湿度数据表
HTU21D_temerature_humidity_datasheet.pdf0.96 MB