Подключение датчика температуры и влажности DHT11 к Arduino UNO R3

Arduino

Подключение датчика температуры DHT11 задача довольно простая.
Всё, что нам понадобится для подключения, это небольшой скетч, собранная схема и библиотека для работы с датчиком.
Первым делом скачаем библиотеку для работы с датчиком, например здесь: https://github.com/adafruit/DHT-sensor-library.
Теперь разберемся с самим датчиком, датчик может быть с готовой обвязкой и тремя контактами — земля, питание и данные.
Либо как у меня, сам датчик без какой либо обвязки, с четырьмя контактами один из которых нам не понадобится.

Вот, сам датчик:
DHT11 Датчик температуры и влажности распиновка
Как представлено на рисунке, если датчик находится к нам решёткой а контакты направлены вниз, то номера контактов будут от 1 до 4 слева на право, как показано на фотографии выше слева.

  1. 1 пин — Питание (от 3.3 до 5.5 v)
  2. 2 пин — Данные (дополнительно соединяем с питанием через резистор на 10kOm)
  3. 3 пин — Не используется
  4. 4 пин — Земля

Схема подключения датчика к Arduino Uno на макетной плате:
DHT11 Подключение к Arduino - Макетная плата

Принципиальная схема подключения DHT11 к Arduino Uno:
DHT11 Подключение к Arduino - Принципиальная схема

Как видно из схем выше, подключение очень простое, теперь перейдем к скетчу, который будет выводить нам в порт температуру и влажность.

Как уже говорилось ранее, не забываем вначале добавить библиотеку для датчиков DHT. (библиотека здесь)

Пример скетча:
/*
* Подключение сенсоров температуры и влажности DHT к Arduino
*
* babakov.net
*
*/

#include "DHT.h"

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

// Инициируем датчик
// Для DHT22 вместо DHT11 вписываем DHT22
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((String)"Влажность: "+h+(String)" %\t"+(String)"Температура: "+t+(String)" *C \r\n");

}


Компилируем скетч и загружаем его на устройство.
Через две секунды в мониторе порта должна появиться информация о влажности и температуре.
Выглядеть это должно вот так:
DHT11 - Данные о температуре и влажности

Вот и всё.

Вопросы и комментарии приветствуются.

Arduino DHT11 DHT22 подключение температура влажность

Оставить первый комментарий: