DHT11/DHT22 — довольно известные датчики для определения относительной влажности и температуры, состоят из емкостного датчика влажности и термистора. Также, датчик содержит в себе АЦП для преобразования аналоговых значений влажности и температуры.
Эти цифровые датчики основаны на протоколе, который для связи использует один провод/шину с открытым коллектором, поэтому обязательна подтяжка резистором 5-10кОм к плюсу питания. Основное различие между DHT11 и DHT22 заключается в том, что DHT22 имеет более высокое разрешение и более точен по сравнению с DHT11. Помимо этого, распиновка и программирование одинаковы для обоих.
В этой статье рассмотрены основы процесса протокола связи датчиков DHTxx. Кроме того, обратите внимание, что протокол, используемый DHTxx, не является то же, что и 1-проводная (1-Wire/OneWire) шина Dallas Semiconductor.
- 1 Распиновка DHT22 и DHT11
- 2 Технические характеристики — DHT11 vs DHT22
- 3 Подключение датчиков DHT11/DHT22 к Arduino
- 4 Считывание данных с датчиков DHT11/DHT22
- 5 Формат данных DHT11/DHT22
- 6 Библиотеки и пример программы на Arduino
- 7 Материалы и Datasheet
- 8 Купить DHT11 и DHT22 на Aliexpress
- 9 Похожие записи
Распиновка DHT22 и DHT11
Выводы | Описание | |
---|---|---|
1 | Vcc | 3-5В питание |
2 | Data out | Вывод данных |
3 | NC | Не используется |
4 | GND | Общий |
Технические характеристики — DHT11 vs DHT22
Параметры | DHT11 | DHT22 | |
---|---|---|---|
Питание | мин. | 3В | 3В |
макс. | 5.5В | 5.5В | |
Потребляемый ток | мин. | 0.1мА | 0.05мА |
макс. | 2.5мА | 2.5мА | |
Измерение влажности | мин. | 20% | 0% |
макс. | 80-95% | 100% | |
точность | 5% | 2-5% | |
Измерение температуры | мин. | 0°C | -40°C |
макс. | +50°C | +80°C | |
точность | ±2°C | ±0.5°C | |
Частота измерений | 1Гц | 0.5Гц | |
Расстояние между соседними | 0.1″ | 0.1″ | |
Разрешение | 8 бит | 16 бит |
Подключение датчиков DHT11/DHT22 к Arduino
При подключении к микроконтроллеру, вы можете между выводами Vcc и Data разместить подтягивающий (pull-up) резистор номиналом 4.7-10 кОм. Плата Arduino имеет встроенные pull-up, однако они очень слабенькие — порядка 20-150 кОм в зависимости от использованного микроконтроллера.
Считывание данных с датчиков DHT11/DHT22
Микроконтроллер выступает в роли ведущего устройства шины и, следовательно, отвечает за инициирование связи (т. е. чтение). Датчик влажности и температуры DHT11 всегда остаётся в качестве подчиненного устройства и отвечает данными, когда MCU просит его. Протокол, используемый для связи, прост и может быть обобщен следующим образом:
Процесс коммуникации
- Микроконтроллер подаёт стартовый сигнал — прижимает шину к земле на 18-20 мс;
- После этого контроллер отпускает линию и следить за уровнем на ней, примерно 20-40 мкс;
- Датчик, обнаружив сигнал и подождав пока уровень снова станет высоким, сам прижимает шину к земле на 80 мкс, за это время делаются измерения и преобразование результатов;
- Затем DHT11 отпускает линию на 80 мкс, что указывает на то, что он готов отправить данные;
- Затем он отправляет 40 бит данных. Перед отправкой каждого бита датчик прижимает шину к земле на 50 мкс, за которым следует 26-28 мкс для «0» или 70 мкс для «1»;
- По завершении связи линия вытягивается подтягивающим резистором и переходит в состояние ожидания.
Формат данных DHT11/DHT22
Когда датчик влажности и температуры отправляет данные, он сначала отправляет MSb (Most Significant Bit) — старший значащий бит. Данные от датчика передаются в виде посылки, состоящих из 40 бит данных — это 5 байт из которых первых два влажность, следующие 2 температура и байт четности. Байт четности равен сумме предыдущих байт. 1 и 2 байт содержат соответственно целую и дробную часть информации о влажности, 3 и 4 байт содержат целую и дробную часть информации о температуре. Для датчика DHT11 2-й и 4-й байты всегда ноль. Значение этих байтов заключается в следующем:
- 1-й байт: относительная влажность — целая часть в %;
- 2-й байт: десятая часть относительной влажности в % (ноль для DHT11);
- 3-й байт: целая часть температуры в °C;
- 4-й байт: десятая часть температуры в °C (ноль для DHT11);
- 5-й байт: контрольная сумма (последние 8 бит {1-й байт + 2-й байт + 3-й байт + 4-й байт})
Библиотеки и пример программы на Arduino
Для работы с датчиками я использую библиотеки от Adafruit, а именно: Adafruit Unified Sensor Library и DHT Sensor Library.
Пример программы — DHT_Unified_Sensor.ino
// DHT Temperature & Humidity Sensor // Unified Sensor Library Example // Written by Tony DiCola for Adafruit Industries // Released under an MIT license. // Depends on the following Arduino libraries: // - Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor // - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library #include <Adafruit_Sensor.h> #include <DHT.h> #include <DHT_U.h> #define DHTPIN 2 // Pin which is connected to the DHT sensor. // Uncomment the type of sensor in use: #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // See guide for details on sensor wiring and usage: // https://learn.adafruit.com/dht/overview DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS; void setup() { Serial.begin(9600); // Initialize device. dht.begin(); Serial.println("DHTxx Unified Sensor Example"); // Print temperature sensor details. sensor_t sensor; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Temperature"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" *C"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" *C"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" *C"); Serial.println("------------------------------------"); // Print humidity sensor details. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Humidity"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println("%"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println("%"); Serial.println("------------------------------------"); // Set delay between sensor readings based on sensor details. delayMS = sensor.min_delay / 1000; } void loop() { // Delay between measurements. delay(delayMS); // Get temperature event and print its value. sensors_event_t event; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Error reading temperature!"); } else { Serial.print("Temperature: "); Serial.print(event.temperature); Serial.println(" *C"); } // Get humidity event and print its value. dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println("Error reading humidity!"); } else { Serial.print("Humidity: "); Serial.print(event.relative_humidity); Serial.println("%"); } }
Результат
Материалы и Datasheet
DHT11 Datasheet
DHT22/AM2302 Datasheet
Basics of Interfacing DHTxx Humidity and Temperature Sensor with MCU
Работа с датчиком влажности DHTxx в Bascom-AVR
Arduino Uno: Датчик температуры и влажности DHTxx
Как сделать чтобы показывал минусовую температуру?
А какую библиотеку используйте? С библиотекой от adafruit https://github.com/adafruit/DHT-sensor-library проблем быть не должно.
Если у вас стандартная библиотека ардуино, можете изменить .cpp файл примерно так, как пишут тут:
Было так:
Стало так:
Но можно сделать примерно так:
Есть ТЕХНИЧЕСКИЙ вопрос. Хочу использовать DHT11/DHT22 как датчик
температуры, но при НЕПОСРЕДСТВЕННОМ контакте с объектом.
На фото привожу «скальпированный» DHT11: сверху в прозрачном окошке
нечто сложное (мелкоскопа под рукой нет), снизу чёрный чип на печатной
плате. Вопрос — какая часть должна иметь тепловой контакт с объектом?
Подозреваю, что верхняя (где под окошком скорее всего термистор в виде
зигзагообразного напыления)… тогда надо монтировать этой стороной
на объект — так я понимаю (чип будет сверху)..?
пытаюсь подключить DHT11 к orange pi 3 lts, не подскажете где код можно взять для считывания данных?
latest promo code for 1xbet
1xBet offers daily promo codes that provide bonuses such as free bets, deposit matches, or free spins. These codes are valid for the day they are issued and can be used to boost your betting experience.
промокод 1 икс бет
A 1xBet bonus code is a specific type of promo code that unlocks bonuses like deposit matches, free bets, or free spins. These codes are typically provided to new users during registration but can also be available to existing users through promotions.
1xbet promo code 131$
Promo codes on 1xBet unlock a variety of bonuses, including deposit matches, free bets, and free spins. These codes can be used during registration or deposit to claim the corresponding bonus and boost your bankroll.
Хотите узнать больше? Переходите на сайт, где представлены подробная информация о оборудовании, чтобы принять решение.
Для дополнительных данных перейдите на сайт. Там вы найдете все услуги, что помогут сделать правильный выбор.
Would you like to create my signature? Check out our to help you easily create my signature.
Находитесь в Минске и требуете профессионального ремонта техники Amkodor? Узнайте, как качественно выполнить ремонт амкодор в минске с минимальными затратами времени и денег.
Meilleur Code Promo Djibouti vous permettra de recevoir leur excellent bonus de bienvenue allant jusqu’a $130 sur le sport en paris gratuits. Ce bonus de bienvenue est valable un mois. La maniere la plus simple d’obtenir un code promotionnel pour 1xbet est de visiter l’un des sites partenaires. En general, ces ressources publient regulierement des codes frais dans le cadre de leur cooperation constante avec le bookmaker.
Enregistrez-vous en utilisant le 1xBet Mali afin de profiter d’une offre exclusive de bonus de 100% jusqu’a 130$ sur les paris sportifs gratuits. Pour beneficier de cette offre de pari gratuit bonifiee, vous devrez placer 5 paris sur des accumulateurs dans les 30 jours. Il existe diverses strategies pour les paris combines, mais si vous souhaitez gagner et obtenir des paris gratuits, nous vous recommandons de privilegier des selections de cotes plus courtes et de vous concentrer sur des paris combines surs pour commencer.
Code Promo Monaco. Utilisez — le lors de votre inscription pour obtenir un bonus de 100% jusqu’a 130$. Pour obtenir des bonus du bookmaker 1xbet, vous devez remplir certaines conditions, mais les codes promotionnels vous permettent de les obtenir beaucoup plus facilement. La taille des bonus disponibles pour les joueurs via les codes promotionnels 1xBet peut etre petite, mais meme un petit bonus peut augmenter considerablement le potentiel de jeu du client.
Живете в Минске и нуждаетесь в помощи? Узнайте, как вызвать эвакуатор минск оперативно.
It’s intriguing how Mantle’s 3D technology
tackles the challenges of scaling up from prototype to production, which is often a pain point
for manufacturers.
The hybrid approach appears to offer the best of both
worlds in terms of exactness and speed.
The economic advantages of Mantle 3D make it an attractive option for companies
looking to improve their bottom line without compromising quality.
Требуется надежная зернодробилка для вашего хозяйства? Ознакомьтесь с тем, как подобрать подходящее оборудование.
Ищете сервис? Ознакомьтесь с предложениями по ремонт погрузчиков и узнайте, как оперативно организовать восстановление вашей техники.
Проблемы с техникой? Узнайте, как качественно выполнить ремонт погрузчика амкодор с гарантией и в кратчайшие сроки.
Если вы попали в сложную ситуацию на дороге, вам необходимо позвонить к специалистам. Узнайте, как без задержек заказать эвакуатор для решения проблемы.
Для дополнительных данных перейдите на сайт. Там вы найдете полный список услуг для вашего удобства.
Надежная техника — залог производительности вашего хозяйства. Узнайте, как зернодробилка для хозяйства может поддержать ваш бизнес.
Нужны деньги срочно прямо на карту? Ознакомьтесь с тем, как оперативно оформить займы онлайн на карту и обеспечить себе финансы в любое время.
Нужны деньги? Ознакомьтесь с тем, как оперативно оформить займы онлайн, чтобы получить средства без походов в банк.
If you are wondering about create my signature, find out how quickly create my signature with our tips.
Для дополнительной информации перейдите на сайт. Здесь вы найдете варианты, которые помогут вам выбрать оптимальное решение.
Находитесь в Минске и требуете профессионального ремонта техники Amkodor? Узнайте, как удобно выполнить ремонт амкодор в минске с минимальными затратами времени и денег.
Находитесь в Минске и необходим эвакуатор? Узнайте, как вызвать эвакуатор минск в кратчайшие сроки.
Хотите получить деньги прямо на карту? Ознакомьтесь с тем, как быстро взять займ на карту и получить нужные средства.
Нужны деньги, когда срочно требуются деньги? Узнайте, как легко получить деньги в долг и решить свои проблемы в кратчайшие сроки.
эскорт услуги мужчины в москве москва эскорт услуги дорого
эскорт москва услуги дорого секс услуги и секс эскорт в москве
девушки для эскорт услуг москва эскорт москва цены услуги
эскорт услуги с интимом в москве девушки эскорт услуги в москве
If you’re looking for important protection when signing documents, learn more about using digital signature to legality of documents.
Ищете сервис? Ознакомьтесь с возможностями по ремонт погрузчиков и узнайте, как эффективно организовать ремонт вашей техники.
Живете в Минске и потребовалась эвакуация? Узнайте, как вызвать эвакуатор минск круглосуточно.