#define LCD_LEN 16
#define LCD_WID 2
#include "lcdinit.h"
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
DHT dht(DHTPIN, DHT22);
LiquidCrystal_I2C lcd1(0x27,LCD_LEN,LCD_WID);
LiquidCrystal_I2C lcd2(0x28,LCD_LEN,LCD_WID);
void setup() {
Serial.begin(9600);
dht.begin();
lcd1 = lcd_init(lcd1);
lcd2 = lcd_init(lcd2);
// put your setup code here, to run once:
}
void loop() {
delay(1000); // 2 секунды задержки
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
Serial.println("Ошибка считывания");
return;
}
my_mes(lcd1, h);
my_mes(lcd2, t);
delay(2000);
my_mes(lcd1, h, "Humidity");
my_mes(lcd2, t, "Temperature");
}
LiquidCrystal_I2C lcd_init(LiquidCrystal_I2C lcd){
lcd.init();
lcd.backlight();
return lcd;
}
void my_mes(LiquidCrystal_I2C lcd, float num)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print(String(num));
}
void my_mes(LiquidCrystal_I2C lcd, float num, char*arr)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print(arr);
lcd.setCursor(12,0);
lcd.print(String(num));
}