СОДЕРЖАНИЕ ►
Сегодня познакомимся с датчиком температуры и влажности DHT21, который стоит на ступень выше популярных DHT11 и DHT22, также он известен как сенсор AM2301. Это цифровой датчик для микроконтроллера Ардуино с одним проводом данных, который сочетает высокую точность, стабильность и промышленный дизайн. Применяется при создании метеостанции, инкубаторов, управление увлажнителями и вентиляцией.
Датчик DHT21 (AM2301) характеристики, распиновка

DHT21 — это цифровой комбинированный датчик с встроенным калиброванным сигналом. Внутри имеется ёмкостный элемент для измерения влажности и термистор для измерения температуры. Встроенный 8-битный микроконтроллер в сенсоре, сам измеряет температуру и влажность, потом оцифровывает показания и передаёт на микроконтроллер Ардуино по однопроводному интерфейсу (1-Wire-like).
Характеристики датчика температуры DHT21 (datasheet)
- Напряжение питания: 3.3 – 5.5 V DC
- Ток потребления: ~1 мА (измерение), ~0.1 мА (ожидание)
- Диапазон влажности: 0–100% RH
- Точность влажности: ±2% RH (при 25°C)
- Разрешение влажности: 0.1% RH
- Диапазон температур: -40…+80°C
- Точность температуры: ±0.3°C
- Разрешение температуры: 0.1°C
- Частота опроса: не чаще 2 раз в секунду (0.5 Гц)
- Интерфейс: 1-Wire (однопроводной)
- Максимальная длина линии: до 20 метров (при качественном кабеле)
- Корпус: пластиковый, IP-защита, но не герметичен
Подключение датчика DHT21 к Arduino
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega
- датчик DHT21 / AM2301
- резистор 4.7 кОм
- макетная плата
- провода «папа-мама», «папа-папа»

Схема подключения датчика температуры и влажности AM2301:
- VCC (красный провод) → +5V Arduino
- DATA (жёлтый / белый провод) → цифровой пин (например 10)
- NC → Не подключается
- GND (чёрный провод) → GND Arduino
При подключении сенсора к микроконтроллеру необходим подтягивающий резистор 4.7 кОм между пином DATA и +5V (смотри схему подключения датчика). Интерфейс 1-Wire требует подтяжки линии данных к питанию, чтобы обеспечить логическую «1» в пассивном состоянии. Без резистора связь будет нестабильной. Если у вас не сенсор, а готовый модуль — проверьте наличие компонента на плате, иногда он уже есть.
Скетч для датчика температуры и влажности DHT21 Ардуино
#include "DHT.h" // тип датчика: DHT21 #define DHTTYPE DHT21 // пин подключения DATA #define DHTPIN 10 // инициализация объекта датчика DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // запускаем датчик } void loop() { // ждём 2 секунды между измерениями (рекомендовано производителем) delay(2000); // чтение влажности воздуха float humidity = dht.readHumidity(); // чтение температуры в градусах Цельсия float temperature = dht.readTemperature(); // (опционально) температура в Фаренгейтах // float fahrenheit = dht.readTemperature(true); // проверка на ошибки чтения if (isnan(humidity) || isnan(temperature)) { Serial.println("Ошибка чтения датчика DHT21!"); return; } // вывод в монитор порта Serial.print("Влажность: "); Serial.print(humidity); Serial.print(" %\t"); Serial.print("Температура: "); Serial.print(temperature); Serial.println(" °C"); }
Пояснения к коду:
- для работы с DHT21 (AM2301) лучше использовать проверенную библиотеку DHT sensor library от Adafruit. Она поддерживает все семейство DHT;
- после включения дайте датчику несколько секунд на стабилизацию, особенно если он подключается первый раз или долгое время был без питания;
- не опрашивайте датчик AM2301 чаще 1 раза в 2 секунды. Иначе, сенсор не успевает переключиться, и вы получите ошибку.
Настройка и решение проблем
- В мониторе порта «nan» или «Ошибка чтения»
Неправильное питание, отсутствие подтягивающего резистора или слишком частая выборка. Проверьте резистор, увеличьте задержку между запросами до 2-3 секунд, убедитесь, что используете DHT21 в коде (DHTTYPE DHT21). - Температура скачет или нереалистична
Плохой контакт или наводки по длинному проводу. Укоротите провода, добавьте конденсатор 100 нФ между VCC и GND у датчика. - При питании от 3.3V датчик работает нестабильно
Проверьте, что подтягивающий резистор подключён к 3.3V, а не к 5V. Но лучше использовать 5V, так как DHT21 стабильнее работает при питании от 5V.
Заключение. DHT21 — это надёжный и точный датчик, который легко подключается к Arduino и даёт стабильные показания. Он идеально подходит для проектов, где нужна высокая точность температуры и влажности без сложного калибрования. Просто подключите, загрузите библиотеку и получайте данные! Теперь ваша умная теплица или метеостанция будут работать профессионально. Пробуйте и делитесь результатами!










Добавить комментарий