Код для поиска

Как использовать датчик влажности и температуры HTU21DF с Arduino (базовый код)

Как использовать датчик влажности и температуры 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- Демонстрация

Изображения

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
210-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic-2)
Язык: C++
/***************************************************
  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);
}

Вещи, которые могут вам понадобиться

Ресурсы и ссылки

Файлы📁

Технический паспорт (pdf)

Другие файлы