
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 / VCC | 5V | UNO R3. Вид на решётку датчика спереди, ножки направлены вниз; нумерация слева направо. |
| 2 / DATA | D2 | Резистор 10 кОм между DATA и VCC; провод короткий. |
| 3 / NC | Не подключать | У четырёхвыводного DHT22 этот контакт не используется. |
| 4 / GND | GND | Общая земля; у готового трёхвыводного модуля нумерация другая. |
Подходит для 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.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.
