Этот учебник является частью: Цифровой датчик относительной влажности и температуры HTU21D
Видеоролики, посвященные цифровому датчику относительной влажности и температуры HTU21D. Ссылки на другие видеоролики находятся ниже этой статьи.
Как использовать датчик влажности и температуры HTU21DF с Arduino (базовый код)
В этом уроке мы узнаем, как использовать датчик температуры и относительной влажности HTU21DF с Arduino. Этот датчик известен своей точностью и низким потреблением энергии, что делает его идеальным для различных приложений. К концу этого урока вы сможете считывать значения температуры и влажности и отображать их на мониторе последовательного порта Arduino. Для дополнительного разъяснения обязательно посмотрите видео (в видео на 00:00).
Объяснение аппаратного обеспечения
Датчик HTU21DF - это цифровой датчик температуры и влажности, который осуществляет связь по протоколу I2C. Он способен измерять температуры в диапазоне от -40°C до +125°C и относительную влажность от 0% до 100%. Датчик работает при напряжении питания 3.3V, что делает его подходящим для приложений, питаемых от аккумуляторов.
Два вывода необходимы для связи: SDA (линия данных) и SCL (линия тактирования). Датчик также имеет режим низкого потребления энергии, потребляя всего 0,04 мкА в режиме ожидания и примерно 400 мкА во время измерений. Эта функция делает его особенно полезным в проектах с ограниченным энергопотреблением.
Технические характеристики
| Производитель | TE Connectivity (ранее MEAS) |
|---|---|
| Номер детали | HTU21DF |
| Логическое/Уровень выходного напряжения | 3.3 В |
| Сетевое напряжение | 1.5 - 3.6 В |
| Ток потребления в режиме ожидания | 0.04 мкА |
| Измерение потребления тока | 400 мкА |
| Температурный диапазон | от -40 до +125 °C |
| Диапазон влажности | 0 до 100 % |
| Разрешение | 0.04 % (влажность), 0.01 °C (температура) |
| пакет | 6-контактный LGA |
- Обеспечьте правильные соединения, чтобы избежать повреждений.
- Содержите питание в пределах заданных допустимых напряжений (от 1,5 до 3,6 В).
- При необходимости используйте подтягивающие резисторы на линиях SDA и SCL.
- Будьте осторожны с обратной полярностью при подключении питания.
- Позвольте датчику немного времени для стабилизации после включения питания.
Инструкции по подключению
Чтобы подключить сенсор HTU21DF к Arduino, выполните следующие шаги:
Сначала подключите левый вывод датчика к источнику 3.3V на Arduino. Второй вывод, который обычно обозначен красным, следует подключить к земле (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);
}
}Здесь датчик инициализируется, и если он не может подключиться, выводится сообщение, и программа останавливается.
In theloop()функция, мы считываем значения температуры и влажности:
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- Демонстрация
Этот учебник является частью: Цифровой датчик относительной влажности и температуры HTU21D
- Урок 35-1: Использование датчика температуры HTU21D
- Урок 35-2: Использование датчика температуры HTU21D - собственный код
- Урок 35: Использование датчика температуры HTU21D с Arduino
- Урок 36: Использование датчика температуры HTU21D с LCD Arduino пошаговый курс
- Использование двух датчиков влажности и температуры HTU21DF с Arduino
- Отображение температуры с HTU21D на ЖК-дисплее
- Отображение температуры с HTU21D в виде столбчатой диаграммы на ЖК-дисплее
- Как использовать датчик влажности и температуры HTU21DF с Arduino (пользовательский код)
/***************************************************
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 на Amazon.amzn.to
-
eBayКупите HTU21D на eBayebay.us
-
АлиЭкспрессПриобретите HTU21D или SHT21 на AliExpress.s.click.aliexpress.com
Ресурсы и ссылки
-
ВнешнийБиблиотека Adafruit HTU21D (GitHub)github.com
Файлы📁
Технический паспорт (pdf)
-
HTU21D_даташит_температуры_и_влажности
HTU21D_temerature_humidity_datasheet.pdf0.96 MB