| Ваш IP: 54.234.228.78 | Online(15) - гости: 7, боты: 8 | Загрузка сервера: 1.14 ::::::::::::

DHT11 (Arduino)

На данной странице будет рассмотрено подключение и вывод информации в монитор порта модуля цифрового датчика температуры и влажности DHT11. Датчик DHT11 смонтирован на плате где установлен подтягивающий резистор и светодиод (индикатор питания). Напряжение питания датчика может быть в диапазоне от 3,5 до 5 В, измерение температуры проводится в интервале от 0 до 50 ºС, а влажности от 20 до 95 %. Погрешность при измерении температуры может достигать 2 ºС, а влажности до 5 %.

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

Подключение модуля с датчиком  DHT11 достаточно простое, VCC +5 В, GND и вывод данных DATA подключаем к цифровому входу Arduino.

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

Индекс жары — температура, ощущаемая человеком в зависимости от влажности окружающего воздуха.

#include <DHT.h> 
DHT dht(2, DHT11); // выход DAT подключен к цыфровому входу 2
 
void setup() { 
  dht.begin(); 
  Serial.begin(9600);
}
 
void loop() {
  // считываем температуру (t), влажность (h) и индекс жары
  byte h = dht.readHumidity();// влажность
  byte t = dht.readTemperature();// температура
  float hic = dht.computeHeatIndex(t, h, false);// индекс жары в гр.Цельсия
  // выводим данные на монитор порта
 
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %  ");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" C  ");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.println(" C ");
 
  delay(1000);
}

Для вывода показаний температуры, влажности и индекса жары на LCD 1602 можно использовать следующий скетч:

#include <DHT.h> 
#include <LiquidCrystal.h>
DHT dht(2, DHT11); // выход DAT подключен к цыфровому входу 2
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
 
void setup() { 
  dht.begin(); lcd.begin(16,2);// LCD 16X2
  Serial.begin(9600);
}
 
int x;
 
void loop() {
  // считываем температуру (t), влажность (h) и индекс жары
  byte h = dht.readHumidity();// влажность
  byte t = dht.readTemperature();// температура
  float hic = dht.computeHeatIndex(t, h, false);// индекс жары в гр.Цельсия
  // выводим данные на LCD
 lcd.setCursor(0,0);
 lcd.print("Temp   ");lcd.print(t);lcd.print(char(223));lcd.print("C  ");
 lcd.setCursor(0,1);
 if(x>=3 && x<10){ // выводить индекс жары каждые 3 секунды из 10
 lcd.print("Hum    ");lcd.print(h);lcd.print(" %         ");}
 else{lcd.print("Index  ");lcd.print(hic,1);lcd.print(char(223));lcd.print("C  ");}
 if(x==10){x=0;}
 delay(1000);
 x++;
}

Если добавить в схему цифровой датчик температуры 18b20 то получится простая погодная станция, датчик 18b20 выносится на улицу, а датчик DHT11 остается в комнате, на индикаторе 1602 отображаются температуры на улице и дома. Выход датчика 18b20 подключается к аналоговому входу А0, а выход датчика DHT11 к цифровому входу 2.

#include <DHT.h> 
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
DHT dht(2, DHT11); // выход DAT подключен к цыфровому входу 2
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
OneWire oneWire(A0);// вход для датчиков 18b20
DallasTemperature temp(&oneWire);
 
void setup() { 
  dht.begin();
  lcd.begin(16,2);// LCD 16X2
  temp.begin(); 
  temp.setResolution(10); // 10 бит 18b20
}
 
int x;
 
void loop() {
  // считываем температуру (t и temp), влажность (h) и индекс жары
  byte h = dht.readHumidity();// влажность
  byte t = dht.readTemperature();// температура
  temp.requestTemperatures();// опрос датчика 18b20
  float hic = dht.computeHeatIndex(t, h, false);// индекс жары в гр.Цельсия
  // выводим данные на LCD
 lcd.setCursor(0,0);
 lcd.print("Temp ");lcd.print(t);lcd.print(char(223));lcd.print("C  ");// термометр DHT11
 lcd.print(temp.getTempCByIndex(0),0);lcd.print(char(223));lcd.print("C ");// термометр 18b20
 
 lcd.setCursor(0,1);
 if(x>=3 && x<10){ // выводить индекс жары каждые 3 секунды из 10
 lcd.print("Hum    ");lcd.print(h);lcd.print(" %         ");} // влажность
 else{lcd.print("Index  ");lcd.print(hic,1);lcd.print(char(223));lcd.print("C  ");} // индекс жары
 
 if(x==10){x=0;}
 delay(1000);
 x++;
}

DHT.h

DallasTemperature.h

OneWire.h

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

Случайные статьи

  • Двухканальный электронный цифровой регулятор громкости на ИМС КА2250

    Предлагаемый регулятор имеет значительно меньший Кг и уровень шумов, чем регулятор на ИМС К174УН12 (A273D). Вторым его достоинством является использование для регулировки вместо аналоговых потенциометров всего двух кнопок SB1 («Тише») и SB2 («Громче»). Типовая схема включения ИМС KA2250 обеспечивает синхронную регулировку громкости двух каналов этими двумя кнопками. К достоинствам ИМС …Подробнее...
  • Двух канальный регулятор тембра на транзисторах

    Двух канальный регулятор тембра на транзисторах

    На рисунке показана схема малошумящего двух канального регулятора тембра. Каждый канал содержит по три транзистора С945, это старые транзисторы но их можно заменить на аналоги: 2SC945, 2SC1000,  BC547, КТ3102Д. Напряжение питания регулятора тембра может быть в пределах от 12 до 24 В, ток потребления каждого канала не превышает 80 мА (при напряжении питания …Подробнее...
  • FM-передатчик

    FM-передатчик

    В этом fm-передатчике используется конденсаторный микрофон, обратите внимание чтобы плюс микрофона через резистор R1 был подключен к положительному полюсу источника питания. Сигнал с микрофона подается на базу транзистора VT1 через разделительный конденсатор С1 (10мкФ). VT1 действует как усилитель ЗЧ и одновременно как генератор ВЧ, в итоге на выходе передатчика мы …Подробнее...
  • LM3915 — 10-и разрядный индикатор уровня

    LM3915 — 10-и разрядный индикатор уровня

    На рисунке показана схема простого десятиразрядного индикатора уровней. Основа схемы ИМС LM3915, напряжение питания от 5 до 20В, при напряжении питания 5В стабилизатор 7805 из схемы можно исключить. Устройство подключается непосредственно к линейному выходу.Подробнее...
  • Блок стабилизатора с регулируемым выходным напряжением 3…30В/3А

    Этот блок стабилизатора обеспечивает выходное регулируемое напряжение от 3 до 30 В при максимальном токе до 3А. Технические характеристики: Защита от перегрузки Защита от КЗ Выходной ток: макс. 3A Выходные пульсации напряжения не более 0.5mV Выходное напряжение: регулируемое от 3 до 30В, стабилизированные Входное напряжение: от 9 до 30 В …Подробнее...