#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес 0x27, 16x2
int cycle = 0; // для циклического отображения
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
Serial.println("Weather Station Simulation using DHT22");
}
void loop() {
float temperature = dht.readTemperature(); // °C
float humidity = dht.readHumidity(); // %
// Эмуляция давления (примерное значение, мм рт. ст.)
float pressure = 760 + random(-5, 6);
lcd.clear();
switch (cycle) {
case 0:
lcd.setCursor(0,0);
lcd.print("Temp:");
if (!isnan(temperature)) lcd.print(temperature,1);
else lcd.print("Error");
lcd.print("C");
break;
case 1:
lcd.setCursor(0,0);
lcd.print("Humidity:");
if (!isnan(humidity)) lcd.print(humidity,1);
else lcd.print("Error");
lcd.print("%");
break;
case 2:
lcd.setCursor(0,0);
lcd.print("Pressure:");
lcd.print(pressure);
lcd.print(" mmHg");
break;
}
cycle++;
if (cycle > 2) cycle = 0;
delay(3000); // каждые 3 секунды меняем показатель
}