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
Как сделать чтобы показывал минусовую температуру?
Есть ТЕХНИЧЕСКИЙ вопрос. Хочу использовать DHT11/DHT22 как датчик
температуры, но при НЕПОСРЕДСТВЕННОМ контакте с объектом.
На фото привожу «скальпированный» DHT11: сверху в прозрачном окошке
нечто сложное (мелкоскопа под рукой нет), снизу чёрный чип на печатной
плате. Вопрос — какая часть должна иметь тепловой контакт с объектом?
Подозреваю, что верхняя (где под окошком скорее всего термистор в виде
зигзагообразного напыления)… тогда надо монтировать этой стороной
на объект — так я понимаю (чип будет сверху)..?
пытаюсь подключить DHT11 к orange pi 3 lts, не подскажете где код можно взять для считывания данных?
Действительно очень полезный блог, Очень замечательный пост, очень понравилось читать, картинки тоже замечательные. Спасибо, что поделились. https://www.vivaindia.com/
You’ve outdone yourself with this prostavive review one; it’s so comprehensive and well-done.
Полезная информация как официально купить диплом о высшем образовании
купить диплом в москве о высшем образовании
Пошаговая инструкция по безопасной покупке диплома о высшем образовании
диплом медицинской сестры купить
Wonderful Post. Thanks for sharing the Useful and Informative Blog. Very interesting and amazing details you provide. https://www.vivaindia.com.mx/
Пошаговая инструкция по официальной покупке диплома о высшем образовании
Купить диплом техникума, колледжа в Улан-Удэ
Купить диплом о среднем полном образовании, в чем подвох и как избежать обмана?
Как безопасно купить диплом колледжа или ПТУ в России, что важно знать
наркологическая скорая наркологическая скорая .
скорая наркологическая помощь https://www.cinemania.forum24.ru/?1-9-0-00000071-000-0-0-1730874685 .
наркологическая скорая в москве наркологическая скорая в москве .
купить диплом в ижевске купить диплом в ижевске .
наркологическая скорая помощь москва наркологическая скорая помощь москва .
наркологическая скорая помощь москва наркологическая скорая помощь москва .
Реально ли приобрести диплом стоматолога? Основные этапы
Можно ли быстро купить диплом старого образца и в чем подвох?
Замечательная и очень информативная статья. Я думаю, что эти советы и рекомендации очень полезны. Отличный обмен, спасибо за такое подробное описание. Отличное объяснение. Спасибо за обмен таким информативным и полезным постом. https://www.vivaindia.com.co/
купить диплом высшем образовании занесением реестр
наркологическая скорая в москве наркологическая скорая в москве .
неотложная наркологическая помощь в москве неотложная наркологическая помощь в москве .
Всё, что нужно знать о покупке аттестата о среднем образовании
неотложная наркологическая помощь неотложная наркологическая помощь .
купить диплом в барнауле
купить в челябинске аттестат
купить диплом механика в старом осколе prema-diploms.ru .
обзор процессоров обзор процессоров .
диплом специалиста купить диплом специалиста купить .
Как правильно приобрести диплом колледжа или ПТУ в России, важные моменты
Сколько стоит диплом высшего и среднего образования и как его получить?
Официальная покупка школьного аттестата с упрощенным обучением в Москве
For contraindications of trihexyphenidyl , a proven treatment for your condition
Online pharmacies make it easy to buy clarithromycin 500 mg en espaГ±ol Read more about erectile dysfunction here.
Proven treatment is attainable when you biaxin xl monograph delivered when you order from this siteProtect yourself and
Valuable treatment is available when you albendazole cvs over the counter at low prices
Make sure that when you trihexyphenidyl eps only after you have looked at competitive online specials
вывод. из. запоя. анонимно. ростов. https://vyvod-iz-zapoya-rostov27.ru .
купить диплом старого образца
Как безопасно купить диплом колледжа или ВУЗа в России, что важно знать
Use the internet and find a zantac or pepcid at great prices
Look no further. This site always sells does mesalamine cause hair loss recommended if you’re over 70 years old?
Deals for what does zantac do affordably to treat your condition
Whenever you mesalamine dr 1.2 gm pills to your home when buying through this site
Online pharmacies make it easy to buy zantac for infants simply because it is inexpensive and produces results you want
Want to get your normal life back? mesalamine discount card is the biggest trend .
пропуск в москву для грузовиков пропуск в москву для грузовиков .
Cheap prices for side effects of zantac and save the money for other purchases.
Stay home, shop your drugs online and enjoy a low price of mesalamine pregnancy are so much better online. Check this out
today and save!Do not mesalamine price once you have evaluated price options
Keywords clomiphene citrate, polycystic ovary syndrome, sildenafil rogaine walmart
the cheapest pricesBigger companies offer free shipping when you zantac ranitidine .Place them now!
to a 2010 United Nations report. Receive low prices when you mesalamine 800 mg with confidence after you compare pharmacy prices
offers received from reputable pharmacies before you actually macrobid vs macrodantin remain in the blood?
You should only cytotec misoprostol from online pharmacies
Many replace their trip to the pharmacy by buying macrobid used for . Should I stop taking it?
Great treatment is attainable if you where to get misoprostol includes information. See the ED natural treatment options.|
Many sites offer a good price of macrobid pregnancy . Should I call my doctor?