数字式温湿度复合传感器HTU21D树立了新的湿度传感器的尺寸和智能化典范:采用适合回流焊的DFN封装,尺寸仅为3 x 3 x 1mm;提供经过校正的,线性的I²C数字输出信号。
HTU21D是湿度和温度的复合传感器,是需要可靠和准确测量的OEM应用的理想选择。数字输出的湿度和温度信号可以直接与微控器接口。每个传感器都经过校正和测试,批号不仅打印在外壳,而且存储于传感器芯片,以便通过指令读取。用户可以通过指令改变HTU21D的分辨率(8/12bit至12/14bit)。
此外,传感器还可以检测电量低,校验和用于改善通讯可靠性。
HTU21D的功耗低,性价比高,尺寸小,所以适合价格敏感和安装空间受限的OEM大批量应用。
广泛应用于发动机和机动车辆, 医疗, 工业控制, 消费电子和家用电器等行业。
HTU21D实际上是提供各种功能的温度和湿度传感器,并且与微控制器一起使用非常简单。该传感器能够测量 -40 至 125°C 范围内的温度读数,精度为 ±0.3°C。同样,HTU21D 芯片还提供湿度传感器,其工作湿度范围为 0-100%,典型精度为 2%。
HTU21D 传感器模块具有 3.3V 稳压器和电平转换器。因此,与 Arduino、ESP32、STM32 等微控制器一起使用非常方便。该传感器非常适合与微控制器一起用于温度和湿度测量,例如恒温器、气象站等。此外,由于其低功耗(测量传感器数据时小于 0.5mA,睡眠模式时小于 0.14µA)非常适合在使用电池的设备中使用。
HTU21D 传感器模块如下图所示,它封装了 HTU21D 传感器芯片和用于 I2C 通信的内置 4.7k 欧姆上拉电阻。它是一个 3.3V 传感器,使用内联逻辑电平转换器或 10k 电阻来限制 5V 信号。

HTU21D 传感器模块使用 I2C 通信协议将传感器数据传输到微控制器。传感器模块具有 SCL(串行时钟)和 SDA(串行数据)引脚,可与 Arduino 或支持相同接口的其他传感器的 I2C 接口连接。
然而,HTU21D 传感器模块带有一个固定的 I2C 地址,即 0x40。为了与同一总线上的多个 HTU21D 传感器进行通信,需要一个多路复用器。
要在同一总线上使用多个 I2C 设备,HTU21D 传感器模块上的 4.7k 欧姆电阻被禁用。
下图为市售的两种 HTU21D 传感器模块的引脚图。两者均由四个引脚组成。
下面列出了 HTU21D 传感器模块的引脚排列及其简要说明。

HTU21D温湿度传感器规格如下表所示。

在本节中,让我们向您展示如何将 HTU21D 传感器模块连接到 Arduino。


您将需要以下组件
Arduino
HTU21D 传感器模块
跳线
HTU21D 与 Arduino 板的连接非常简单。HTU21D模块的VCC端接Arduino的3.3V,地接地(common ground),传感器的SCL接Arduino的SCL脚(A5),传感器的SDA接Arduino的SDA脚(A4) .
Arduino 中 SDA 的 I2C 引脚是 A4,SCL 是 A5。两个设备之间的连接可以在下表中看到。

按照下面的 Arduino 模块示意图并相应地连接它们。

我们将使用 Arduino IDE 对我们的 Arduino 开发板进行编程。因此,您应该拥有最新版本的 Arduino IDE。
由于我们将 HTU21D 传感器模块与 Arduino 连接,因此,我们必须安装库以访问传感器数据。这个项目需要两个库:
Adafruit HTU21D
Adafruit 总线
我们将使用 Arduino IDE 中的库管理器来安装最新版本的库。打开您的 Arduino IDE 并转到 Sketch > Include Libraries > Manage Libraries。 在搜索栏中输入 HTU21D 并安装最新版本。

在搜索栏中输入 Adafruit BusIO 并安装它。

此草图每半秒显示一次 Arduino 串行监视器上的当前温度和湿度读数。

现在,让我们了解代码的每个部分是如何工作的。
代码首先包含代码正常运行所需的所有必要库。Wire.h 将允许我们通过 I2C 协议进行通信。Adafruit_HTU21DF.h 库将使我们能够初始化和读取 HTU21D 传感器。

在 loop() 函数内,Arduino 首先每半秒获取一次 HTU21D 传感器读数,并将它们存储在各自的浮点变量中,“temp”代表温度,“hum”代表湿度。通过 htu.readTemperature() 获取温度读数。使用 htu.readHumidity() 函数访问湿度读数。这些读数打印在 ESP-IDF 终端中。

在 Arduino IDE 中,单击工具 > 电路板并选择 Arduino。

现在,单击工具 > 端口并选择您正在使用的端口。现在,通过单击上传按钮上传代码。
在您的 Arduino 开发板上上传以下代码后,按下 ENABLE 按钮,如下所示:

在您的 Arduino IDE 中,打开串行监视器并将波特率设置为 115200。串行监视器将开始显示温度和湿度读数以及单位。每半秒后将显示新读数。

在本节中,我们将了解如何使用 Arduino IDE 和 Arduino 在 0.96 SSD1306 OLED 显示器上显示 HTU21D 传感器读数。
要在我们的项目中使用 OLED 显示屏,我们必须在 Arduino IDE 中安装 Adafruit SSD 1306 库。请按照以下步骤成功安装它。
打开 Arduino IDE 并单击 Sketch > Library > Manage Libraries。将打开以下窗口。

在搜索选项卡中键入“SSD1306”并安装 Adafruit SSD1306 OLED 库。


您将需要以下组件
Arduino
HTU21D 传感器模块
SSD1306 有机发光二极管
面包板
跳线
下表显示了应连接在一起的三个设备的端子。

如下图所示组装电路:

正如您在上面看到的,我们已经将所有 VCC 端子连接到 Arduino 的 3.3V 引脚。SCL端子与A5相连,SDA端子与A4相连。理由也很普遍。
把下面的代码复制到你的Arduino IDE中,组装好上面的电路图后上传到Arduino。

代码的最大部分与我们之前讨论的相同,除了 OLED 显示部分。因此,我们这里只对OLED显示部分进行说明。
我们将首先包含 HTU21D 传感器以及我们之前刚刚安装的 OLED 显示器所需的所有库。

在 loop() 函数中,我们获取 HTU21D 传感器读数并将其打印在 OLED 显示屏上。
我们将串口监视器上的温湿度值一一显示在OLED上。此代码块在 OLED 上显示 HTU21D 传感器值并每半秒更新一次值。

在上面的代码中,setTextSize() 函数用于设置字体的大小。我们对“温度”和“湿度”等简单文本使用小字体,并使用大字体显示实际温度和湿度读数。我们将使用 setCursor() 函数来表示文本应该开始的 x 轴和 y 轴位置。最后,print() 函数将文本写入定义的位置。
转载请注明出处:传感器应用_仪表仪器应用_电子元器件产品 – 工采资讯
楼主最近还看过


客服
小程序
公众号