#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,2); // присваиваем имя lcd для дисплея
#include "DHT.h" // подключаем библиотеку для DHT22
DHT dht(2, DHT22); // к какому порту подключаем датчик
// создаем символ градуса и присваиваем имя "gradus"
byte gradus[8] = {
0b01100,0b10010,0b10010,0b01100,0b00000,0b00000,0b00000,0b00000
};
// создаем русскую букву "П"
byte P[8] = {
0b11111,0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b00000
};
// создаем русскую букву "У"
byte Y[8] = {
0b10001,0b10001,0b10001,0b01111,0b00001,0b00001,0b01110,0b00000
};
// создаем русскую букву "Л"
byte L[8] = {
0b00111,0b01001,0b10001,0b10001,0b10001,0b10001,0b10001,0b00000
};
// создаем русскую букву "Ж"
byte ZH[8] = {
0b10101,0b10101,0b10101,0b01110,0b10101,0b10101,0b10101,0b00000
};
// создаем русскую букву "Ь"
byte znak[8] = {
0b10000,0b10000,0b10000,0b11110,0b10001,0b10001,0b11110,0b00000
};
int AC = 7;
void setup() {
Serial.begin(9600); // запуск последовательного порта
lcd.init(); // инициализация LCD дисплея
lcd.backlight(); // включение подсветки дисплея
lcd.createChar(1, gradus);
lcd.createChar(2, P);
lcd.createChar(3, Y);
lcd.createChar(4, L);
lcd.createChar(5, ZH);
lcd.createChar(6, znak);
}
void loop() {
// если нужны точные значение, то используйте float, вместо byte
float h = dht.readHumidity( ); // считываем значение температуры
float t = dht.readTemperature() * 1.8 + 32; // считываем значение влажности
if (t>50) {digitalWrite (AC, HIGH);} else {digitalWrite (AC, LOW);}
Serial.print("Temperature: ");
Serial.println(t); // отправляем значение температуры на монитор
Serial.print("Humidity: ");
Serial.println(h); // отправляем значение температуры на монитор
Serial.println(" "); // пустая строка
lcd.setCursor(0,0); // ставим курсор на 1 символ первой строки
lcd.print("TEM"); // используем латинские буквы
lcd.print(char(2)); // выводим русскую букву "П"
lcd.print("EPAT"); // используем латинские буквы
lcd.print(char(3)); // выводим русскую букву "У"
lcd.print("PA: "); // используем латинские буквы
lcd.print(t); // выводим значение температуры на LCD
lcd.print(char(1)); // выводим знак градуса
lcd.setCursor(2,1); // ставим курсор на 3 символ второй строки
lcd.print("B"); // используем латинские буквы
lcd.print(char(4)); // выводим русскую букву "Л"
lcd.print("A"); // используем латинские буквы
lcd.print(char(5)); // выводим русскую букву "Ж"
lcd.print("HOCT"); // используем латинские буквы
lcd.print(char(6)); // выводим русскую букву "Ь"
lcd.print(": "); // используем латинские буквы
lcd.print(h); // выводим значение влажности на LCD
lcd.print("%"); // выводим знак процент
delay(1000);
}