Arduino урок 7 — датчик температуры и влажности DHT22

Датчики DHT (11, 22, 21)  предназначены для снятия показаний температуры и влажности. Конструктивно они достаточно просты- одна часть это емкостный датчик влажности, другая часть термистор.

Внутри установлен АЦП и на выходе предоставляет информацию в виде цифрового сигнала.

Для этого примера был использован датчик температуры и влажности DHT22 . У этого датчика более лучшие параметры чем у DHT11 (но немного отличаются от DHT21- он уличный)

  • определение влажности в диапазоне 0-100%
  • определение температуры от -40°C до +125°C
  • частота опроса 1 раз в 2 секунды

Датчики имеют 4 выхода

Датчики имеют 4 выхода

  1. питание.
  2. вывод данных
  3. не используется.
  4. GND (земля).

При подключении такого датчика нужно использовать резистор на 10 Ком. Но есть датчики смонтированные на плате и резистор уже встроен.

Соединяем как на схеме2

 

Для урока нам понадобятся:

  • Arduino
  • Макетная плата
  • DHT22
  • Соед. провода
  • Резистор 10 к

 

Соединяем как на схеме

Соединяем как на схеме1

 

Перед тем как загрузить скетч в Arduino, нужно скачать и у сохранить в паке /libraries библиотеку DHT.h. Скачать можно тут

#include "DHT.h"   // подключаем библиотеку
#define DHTPIN 2     // вывод, к которому подключается датчик
DHT dht(DHTPIN, DHT22); // определяем тип датчика: 22 или 11

void setup() {
  Serial.begin(9600);
  dht.begin();  // датчик передает данные
}

void loop() {

  delay(2000); // ждем пару секунд перед началом измерений

  // считывание температуры или влажности занимает примерно 250 мс!
  // считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик)
  float h = dht.readHumidity(); // показания влажности в переменную h
  // Считывание температуры в цельсиях
  float t = dht.readTemperature();  // показания температуры в переменную t

  // проверяем, были ли ошибки при считывании и, если были, начинаем заново
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

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

В скетче подробно прокоментированны важные строчки. После того как все подключено и скетч отправлен, в мониторе порта можно наблюдать параметры температуры и влажности.

мониторе порта

Поделись с друьями:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • MySpace
  • В закладки Google
  • Яндекс.Закладки
  • LinkedIn
  • Reddit

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

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