Как подключить DHT11 к "Ардуино" и вывести данные на дисплей

При создании проектов, где требуется узнать влажность и температуру воздуха, необходим соответствующий датчик. При большом ассортименте на рынке разбегаются глаза, и не знаешь что выбрать. Однако есть проверенные датчики, которыми уже пользуются тысячи радиолюбителей. Одним из таких является DHT11. В этой статье будут рассмотрены особенности подключения DHT11 к "Ардуино".

использование I2C вместе с DHT11 и Ардуино

О датчике DHT11

Этот датчик включает в себя гигрометр и термометр, что дает ему возможность узнавать температуру и влажность воздуха:

  • Что касается точности прибора, то тут все в порядке, учитывая его низкую цену. Процент максимальных отклонений - всего 5 %.
  • Измеряет температуру в диапазоне от 0 °С до +50 °С. Как можно заметить, при морозах с этим датчиком не поработаешь, к сожалению.
  • Что касается гигрометра внутри DHT11, он тоже неплохой, измеряет влажность в диапазоне от 20 до 80 %.
  • Скорость работы средняя, можно отправлять не более 1 запроса в секунду. Много или это мало - зависит от проекта. В большинстве случае этот датчик используют для обучения или для мелких проектов, например, измерения температуры в автоматической теплице. Там нет необходимости измерять температуру и влажность быстрее 1 раза в секунду, скорее наоборот, нужно заботиться об экономии энергии, чтобы ваш проект как можно больше работал от портативного источника питания.
  • При запросе DHT11 потребляет 2.5 мА.
Датчик DHT11 для измерения температуры и влажности

Где приобрести

Приобрести описываемый прибор можно в Aliexpress совсем по низкой цене - в среднем, 50 рублей. Продается он, в основном, всегда с проводами для подключения DHT11 к "Ардуино". Но покупать датчик стоит только у проверенных продавцов, у которых положительные отзывы, так как бывает такое, что прибор работает некорректно.

Кстати, подключение DHT11 к "Ардуино" с аналоговым входом не используется, так как датчик устроен таким образом, что переводит значения из аналогового в цифровой, чтобы было удобнее работать.

Работа с DHT11

Продается датчик в 2 версиях:

  1. Чисто датчик. При покупке такой версии, вам придется подключать его через резистор, что доставляет некие неудобства при эксплуатации. Он имеет 4 контакта, но используется только 3.
  2. Модуль. На модуле 3 контакта, резистор при подключении не требуется, так как он уже имеется на модуле. Предпочтительнее брать данный вариант, так как цена не отличается, а работать с модулем намного удобнее.

Как уже упоминалось, у датчика 3 контакта: земля, питание, логика (вывод данных). Для работы и подключения DHT11 к "Ардуино" требуется:

  • Установить библиотеку, которая позволяет проводить операции с этим датчиком. Скачать ее можно в Интернете, а чтобы установить, требуется содержимое архива перенести в папку Libraries в корневой папке Arduino.
  • Питание подключаем на 5V в Arduino, GND-земля и третий контакт - вывод данных - подключаем к какому-либо цифровому пину в Arduino, например, 2.
  • После подключения DHT11 к "Ардуино", нужно залить программный код в плату. Пример кода:
#include "DHT.h"

#define DHTPIN 2 // номер пина, к которому подсоединен датчик

// Инициируем датчик

DHT dht(DHTPIN, DHT11);

void setup() {

Serial.begin(9600);

dht.begin();

}

void loop() {

// Задержка 2 секунды между измерениями

delay(2000);

//Считываем влажность

float h = dht.readHumidity();

// Считываем температуру

float t = dht.readTemperature();

// Проверка удачно прошло ли считывание.

if (isnan(h) || isnan(t)) {

Serial.println("Не удается считать показания");

return;

}

Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");

}
 

Что же делает код:

  • Первым делом подключаем библиотеку для работы с Arduino.
  • Далее обозначаем контакт, к которому подключен DHT11 и говорим программе, какой именно датчик и на каком контакте расположен.
  • Начинаем считывать значения, узнаем, удачно ли прошло считывание. Если никаких проблем нет, на мониторе порта появляется показания влажности и температуры, которые насчитал датчик.
Подключение DHT11 к Ардуино

Вывод на дисплей

Выводить на монитор порта - это не очень интересно, давайте рассмотрим подключение DHT11 к "Ардуино" с выводом на LCD 1602 I2C.

Это маленький дисплей с платой I2C, чтобы удобнее было работать с ним. Для работы дисплея так же требуется библиотека, которую можно скачать в Интернете.

Подключается I2C к Arduino следующим образом: земля и питание, а SDA и SCL на I2C подключаем к Arduino на контакты A4 и A5, соответственно. После чего загружаем программный код в Arduino:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <dht11.h>
dht11 sensor;
#define DHT11PIN 2
byte degree[8] = // кодируем символ градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.createChar(1, degree); // Создаем символ под номером 1
}
void loop()
{
  int chk = sensor.read(DHT11PIN);
  lcd.setCursor(0, 0);
  lcd.print("Hum:          %");
  lcd.setCursor(11, 0);
  lcd.print(sensor.humidity);
  lcd.setCursor(0, 1);
  lcd.print("temp:         1C");
  lcd.setCursor(11, 1);
  lcd.print(sensor.temperature);
  delay(2000);
}

Опять же, код очень простой:

  • Сначала подключаются библиотеки для работы с дисплеем и датчиком DHT11.
  • Потом кодируем символ градуса, чтобы дисплей его мог отображать.
  • После чего считываем значения с датчика и передаем их на дисплей.

В итоге при помощи дисплея и DHT11 мы получаем устройство, которое показывает влажность и температуру нашей комнаты!

Статья закончилась. Вопросы остались?
Комментариев 3
Подписаться
Я хочу получать
Правила публикации
0
А какая используется версия Arduino IDE??
Копировать ссылку
Помогите пожалуйста!!!
Копировать ссылку
0
Я сейчас только испытываю
Копировать ссылку
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.