Ардуино. Датчик температуры и влажности

На этом занятии мы познакомимся с цифровым датчиком температуры и влажности DTH11 с трех пиновым разъемом стандарта 2.54 мм. Рассмотрим устройство и назначение датчиков влажности и температуры. Расскажем, как подключить датчик температуры и влажности к Ардуино, как получить данные с датчика а мониторе порта. Научимся добавлять библиотеки для датчиков и плат расширений Arduino.

Устройство датчика температуры и влажности

На занятии мы будем использовать датчик DHT11, смонтированный на плате. DHT11 — это цифровой датчик, состоящий из термистора и емкостного датчика влажности. Наряду с невысокой стоимостью DHT11 имеет следующие характеристики: питание осуществляется от 3,5-5V, определение температуры от 0 до 50 градусов с точностью 2 град, определение влажности от 20% до 95% с 5% точностью.

Устройство датчика температуры и влажности (dht11)
Устройство датчика температуры и влажности (dht11) для Ардуино

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

Емкостной датчик влажности — это конденсатор с переменной емкостью, который содержит токопроводящие обкладки из медной фольги на текстолите. Этот конденсатор заключен в герметичный чехол, поверх которого расположен влагопоглощающий слой. При попадании частиц воды на этот слой, меняется его диэлектрическая проницаемость, что приводит к изменению емкости конденсатора.

Как подключить модуль DHT11 к Ардуино

На этом занятии мы приведем для примера два скетча. Первый скетч будет отсылать данные с модуля DHT11 на последовательный монитор порта  компьютера. Во втором скетче мы будем использовать вывод данных на ЖК дисплей (LCD модуль). LCD модуль можно будет использовать в дальнейшем в любом автономном устройстве, например, при конструировании «Домашней метеостанции» или «Умной теплицы».

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno;
  • Макетная плата;
  • USB-кабель;
  • Модуль DHT11;
  • 2 светодиода;
  • 2 резистора на 220 Ом;
  • Провода «папка-папка» и «папка-мамка».

Первым делом необходимо установить библиотеку для датчика DHT11, поскольку ее нет в стандартных библиотеках программы Arduino IDE. Для этого необходимо скачать архив с файлами здесь. Извлечь из архива папку «DHT11» и переместить ее в раздел «C:\Program Files\Arduino\libraries» на своем компьютере. Теперь, при использовании датчика DHT11, необходимо лишь подключать библиотеку в скетче.

Ардуино. Датчик температуры и влажности dht11
Ардуино. Датчик температуры и влажности dht11

Модуль DHT11 оборудован трех пиновым разъемом и подключается по схеме:

G — Подключается к выводу GND
V — Подключается к выводу +5V
S — Подключается к цифровому выводу ( Pin2 )

После установки библиотеки и подключения DHT11 к Ардуино, загрузите скетч.

Скачать готовый скетч zanyatie11_dht11.ino

#include "DHT.h" // подключаем библиотеку для датчика

DHT dht(2, DHT11); // сообщаем на каком порту будет датчик

void setup() // процедура setup

{

dht.begin(); // запускаем датчик влажности DHT11

Serial.begin(9600); // подключаем монитор порта
Serial.println("DHT TEST"); // пишем один раз

}

void loop() // процедура loop

{

// считываем температуру (t) и влажность (h) каждые 250 мс

float h = dht.readHumidity();
float t = dht.readTemperature();

// выводим температуру (t) и влажность (h) на монитор порта

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");

}

Пояснения к коду:

  1. Процедура void setup() выполняется один раз, поэтому при открытии монитора порта вы увидите надпись «DHT TEST» только один раз;
  2. В скетче мы не задавали переменные «h» и «t» с помощью операторов int, как раньше — все это уже предусмотрено в библиотеке датчика DHT.h.

На что обратить внимание:

  1. Команда Serial.print()выводит информацию на порт без переноса строки;
  2. Команда Serial.println()выводит информацию на порт с переносом строки.

Задание для самостоятельного выполнения:

  1. Подышите на датчик и понаблюдайте за изменениями показания датчика;
  2. Задайте в скетче включение/выключение светодиода при достижении определенной температуры или влажности.

1 Star2 Stars3 Stars4 Stars5 Stars (11 votes, average: 4,64 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *