Привет! Сегодня рассмотрим новый датчик и подключим его к Ардуино. На очереди у нас датчик температуры и влажности DHT11.
Содержание
Рассмотрим схему подключения датчика DHT11 к Ардуино и простой скетч. Выведем данные от датчика в монитор последовательного порта.
Если вы уже забыли или пропустили урок использования монитора последовательного порта, то посмотрите его здесь.
Для того, чтобы выполнить этот урок нам понадобиться.
- Ардуино UNO
- Макетная плата
- Перемычки
- Резистор номиналом 220 Ом
- Датчик DHT11
- Кабель USB
Характеристики датчика температуры DHT11
- Питание: DC 3,5 – 5,5 В
- Ток питания
- в режиме измерения 0.3mA
- в режиме ожидания 60μA
- определение влажности 20–80 % с точностью 5 %
- определение температуры 0–50 °С с точностью 2 %
- частота опроса не более 1 Гц (не более одного раза в 1 сек.)
- размеры 15,5´12´5,5 мм
Схема подключения датчика
Программа
Мы хотим просто получить от датчика значение температуры, влажности и вывести их в монитор последовательного порта. Так что соберем схему и настроим вывод данных с порта 2 в сом порт.
Используем специальную библиотеку DHT.h для этого датчика. Не забудьте установить ее через менеджер библиотек.
Подключим библиотеку и создадим экземпляр класса. В функции setup() запустим порт и датчик.
#include "DHT.h"
DHT dht(2, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
Далее проверяем температуру и влажность каждые 0.2 секунды и если параметры определены, выводим данные в монитор порта.
А если нет, то выводим сообщение об ошибке. Это довольно просто.
void loop() {
delay(200);
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) {
Serial.println("Ошибка");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" C ");
}
В обычных условиях датчик показывает влажность 30% и температуру 25.1 градус.
Но если поставить рядом с датчиком кружку с горячим кофе, то показания влажности сразу скакнули к 95% а температура начала постепенно увеличиваться.
Полный текст программы
#include "DHT.h"
DHT dht(2, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(200);
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) {
Serial.println("Ошибка");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" C ");
}
Заключение
Сегодня мы рассмотрели новый датчик для платформы Ардуино. Датчик влажности и температуры DHT11. И использовали библиотеку производителя для обработки данных от датчика.