Урок 35: Использование датчика температуры HTU21D с Arduino

Урок 35: Использование датчика температуры HTU21D с Arduino

Этот проект поможет вам использовать Arduino для считывания данных о температуре и влажности с датчика HTU21D-F. Этот датчик недорогой и широко доступный, что делает его идеальным для разнообразных проектов. Датчик передает данные по I2C, общему цифровому протоколу связи. Изучение работы с этим датчиком и I2C откроет множество возможностей для ваших проектов.

HTU21D module

Практические приложения:

  • Создание умного домашнего экологического монитора
  • Создание метеостанции
  • Разработка климат-controlled корпуса для чувствительной электроники
  • Контроль температуры и влажности в теплице или террариуме

Аппаратное обеспечение/Компоненты

Вам понадобятся следующие компоненты:

  • Плата Arduino (например, Uno, Nano)
  • Датчик температуры и влажности HTU21D-F (в видео на 00:22)
  • Соединительные провода
  • Макетная плата (необязательно, но рекомендуется)

Схема подключения

Проводка проста. Подключите датчик к Arduino следующим образом (в видео на 02:28):

  • Сенсор VCC к Arduino 3.3V
  • Датчик GND к Arduino GND
  • Датчик SDA к Arduino A4
  • Датчик SCL к Arduino A5

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

Объяснение кода

Предоставленный код использует библиотеку Adafruit HTU21D-F (на видео на 03:03) для взаимодействия с датчиком. Ключевые части следующие:


// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change

inPinУказывает аналоговый контакт, подключенный к датчику температуры. Вы можете изменить это в соответствии с вашей проводкой.

iterationЭта переменная контролирует количество измерений, проводимых для усреднения температуры. Увеличение этого значения повышает точность, но замедляет считывания (в видео на 00:22).

ThegetHTU()функция (в видео на 08:46) позволяет получить температуру в градусах Цельсия, Фаренгейта или Кельвина, или влажность, передав символ ('C', 'F', 'K' или 'H') в качестве аргумента. Код затем использует эту функцию для отображения данных на последовательном мониторе.


float getTemperature(char type) {
  // ... (code to read temperature and humidity) ...
  if (type == 'F') {
    value = averageTemperature * 9 / 5 + 32; // Fahrenheit
  } else if (type == 'K') {
    value = averageTemperature + 273.15; // Kelvin
  } else {
    value = averageTemperature; // Celsius
  }
  return value;
}

Живой проект/демонстрация

В видео демонстрируется функциональность датчика (в видео на 07:34). Последовательный монитор отображает показания температуры и влажности. Ведущий также показывает, как код может вызывать действия на основе температурных порогов (в видео на 06:45).

Главы

  • [00:00] Введение
  • [00:22] Обзор датчиков
  • [01:22] Обзор технической документации
  • [02:28] Проведение проводки
  • [03:03] Установка библиотеки
  • [04:05] Объяснение кода (Часть 1)
  • [08:33] Объяснение кода (Часть 2)
  • [07:34] Прямой показ

Изображения

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
212-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic)
Язык: C++
Скопировано!

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

Файлы📁

Библиотеки Arduino (zip)