ДатчикиПогода

DHT22 / AM2302

Aosong · DHT22 / AM2302; пример для четырёхвыводного корпуса

Цифровая температура и влажность с интервалом чтения не менее двух секунд. Полный пример для четырёхвыводного DHT22 и UNO R3.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьЛегко
Проекты с компонентом

О МОДУЛЕ

Что делает DHT22 / AM2302; пример для четырёхвыводного корпуса

DHT22, также известный как AM2302, измеряет температуру и относительную влажность и выдаёт цифровой пакет с контрольной суммой. Подходит для медленных комнатных регистраторов и учебных проектов. Датчик не рассчитан на быстрые изменения.

В этой карточке показан четырёхвыводный DHT22. Проводной AM2302 и трёхконтактные платы используют тот же тип DHT22 в библиотеке, но их расположение контактов и наличие резистора проверяются отдельно. Однопроводный протокол DHT не совместим с Dallas/Maxim 1-Wire: библиотека OneWire здесь не подходит.

Не размещайте датчик рядом с источником тепла и не допускайте капель воды или конденсата. Пропуски чтений нужно обрабатывать как ошибку, а не превращать в нулевую температуру или влажность.

Фото: Ubahnverleih / Wikimedia Commons, CC0 1.0. Исходный фон удалён; датчик пропорционально масштабирован и размещён на фоне SLDV LAB. Форма, детали и маркировка не перерисованы.

Схема распиновки

Авторская схема SLDV LAB для отдельного четырёхвыводного Aosong AM2302 / DHT22. Решётка и маркировка обращены к вам, ножки направлены вниз: слева направо VCC, DATA, NC, GND. У трёхконтактных модулей и версий с кабелем распиновку проверяют отдельно.

Источники: техническое руководство Aosong AM2302, с. 1 и 4 и руководство Adafruit по DHT.

Характеристики

Диапазон измерения температуры
-40–80 °C
Диапазон влажности
0–100 % RH
Минимальный интервал между чтениями
2 с
Интерфейс
Однопроводный протокол DHT, не Dallas 1-Wire
Питание в примере
5 В
Питание модуля
В примере DHT22 питается от 5V Arduino UNO R3, DATA подтянут резистором 10 кОм к тем же 5 В. Это схема для 5-вольтовой логики UNO R3. Для ESP32 нельзя оставлять подтяжку DATA к 5 В: требуется согласование и проверка конкретного датчика. У трёхконтактных модулей проверьте порядок выводов и встроенную подтяжку.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
1 / VCC5VUNO R3. Вид на решётку датчика спереди, ножки направлены вниз; нумерация слева направо.
2 / DATAD2Резистор 10 кОм между DATA и VCC; провод короткий.
3 / NCНе подключатьУ четырёхвыводного DHT22 этот контакт не используется.
4 / GNDGNDОбщая земля; у готового трёхвыводного модуля нумерация другая.

Подходит для Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги подключить DHT22/AM2302. Уточни корпус или модуль, плату, питание и среду. Основа: четырёхвыводный DHT22, UNO R3, DATA на D2, 10 кОм между DATA и 5V, DHT sensor library 1.4.6, тип DHT22. Дай полный скетч с паузой минимум две секунды и обработкой NaN, затем проверку. При переходе на 3,3-вольтовый контроллер отдельно проверь уровни DATA и встроенную подтяжку. Не используй OneWire и не путай распиновку корпуса с модулем.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Библиотека
DHT sensor library 1.4.6

Автор Adafruit; установить Adafruit Unified Sensor как зависимость.

Заголовок
#include <DHT.h>

В начало скетча.

Тип датчика
DHT22

Для AM2302 в этом драйвере также выбрать DHT22.

DATA
D2

Контакт Arduino UNO R3 и первый параметр конструктора.

Инициализация
DHT dht(2, DHT22); dht.begin();

Объект глобально; dht.begin() в setup().

Arduino UNO R3 · полный скетч

cpp
#include <DHT.h>
#include <math.h>

DHT dht(2, DHT22);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  delay(2500);  // includes startup settling and limits polling rate
  float rh = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(rh) || isnan(t)) {
    Serial.println(F("DHT read failed: check power, DATA and pull-up"));
    return;
  }
  Serial.print(F("T_C=")); Serial.print(t, 1);
  Serial.print(F(" RH_pct=")); Serial.println(rh, 1);
}

Полный скетч для Arduino UNO R3 и Arduino AVR Boards 1.8.6. API сверен с DHT sensor library 1.4.6. Компиляция и аппаратный тест не выполнялись. Serial Monitor: 115200 бод. Соберите цепь без питания, затем загрузите скетч. Первая строка появляется примерно через 2,5 секунды. При ошибках проверьте тип DHT22, резистор DATA–VCC, общую землю и соответствие выводов корпусу. Не применяйте описанную 5-вольтовую подтяжку напрямую к ESP32.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты