Дмитро ОбуховDeLy

Найпростіший термометр-гігрометр на Arduino і DHT11

Датчик вологості й температури DHT11 і проста схема термометра-гігрометра на Arduino з LCD-дисплеєм.

Дмитро Обухов · · 1 хв читання
Архівний пост

Це один з найстаріших моїх постів, що писався спеціально для YouTube відео. Оригінал нажаль був російською, як і відос. Тому залишу тут чисто для історії його переклад.

Сьогодні я розповім про датчик вологості й температури DHT11 і просту схему термометра-гігрометра на базі Arduino.

Компоненти і схема підключення

У проєкті я використав такі компоненти:

Схема підключення DHT11 і LCD-дисплея з платою I2C до Arduino Uno
Схема підключення

Програма для Arduino

Завантажити скетч (програму):

Завантажити бібліотеки:

//===============================================================
//----------------------- WEATHER STATION -----------------------
//===============================================================
// Список компонентів і збирання -
//    https://sites.google.com/view/diyle/проекты/thermometer
//===============================================================
// © Diyle 2017
//===============================================================

// Тестувалося на Arduino IDE 1.0.5 і 1.8.3

#include <Wire.h>        // Підключаємо потрібні бібліотеки
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 DHT;               // Оголошення змінної класу dht11
#define DHT11_PIN 4      // Датчик DHT11 підключений до цифрового піна 4

byte degree[8] =         // Бітова маска символу градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Задаємо адресу й розмір дисплея

void setup()
{
  lcd.begin();                       // Ініціалізація LCD
  lcd.backlight();                   // Вмикаємо підсвітку
  lcd.createChar(1, degree);         // Створюємо символ під номером 1
}

void loop()
{
  // Виводимо показники вологості й температури
  lcd.setCursor(0, 0);               // Ставимо курсор на початок 1-го рядка
  lcd.print("Humidity =    % ");     // Виводимо текст
  lcd.setCursor(11, 0);
  lcd.print(DHT.humidity, 1);
  lcd.setCursor(0, 1);               // Ставимо курсор на початок 2-го рядка
  lcd.print("Temp     =   \1C ");    // Виводимо текст, \1 - значок градуса
  lcd.setCursor(11, 1);
  lcd.print(DHT.temperature, 1);

  int chk;
  // Перевірка помилок
  chk = DHT.read(DHT11_PIN);         // Читання даних
  switch (chk) {
  case DHTLIB_OK:
    break;
  case DHTLIB_ERROR_CHECKSUM:
    lcd.clear();
    lcd.print("Checksum error");
    break;
  case DHTLIB_ERROR_TIMEOUT:
    lcd.clear();
    lcd.print("Time out error");
    break;
  default:
    lcd.clear();
    lcd.print("Unknown error");
    break;
  }
  delay(500);
}

Відео з інструкціями

Результат

Результат роботи термометра-гігрометра на Arduino і DHT11
архівембедедArduinoYouTube
Дмитро «DeLy» Обухов

Пише прошивки, які збирають дані, і аналізує ці дані.

Ще почитати

Кенцелінг російської культури

Думка · 4 хв

Перейшов на сліпий друк

Думка · 4 хв

Аналіз повітря в Івано-Франківську за весь 2019 рік

Дослідження · 7 хв