#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 24, 4);
const float GAMMA = 0.7;
const float RL10 = 50;
const int ledPin = 8;
void setup() {
pinMode(ledPin, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
Serial.begin(9600);
dht.begin();
}
void loop() {
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
if(lux<400){
digitalWrite(ledPin, HIGH);
} else{
digitalWrite(ledPin, LOW);
}
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Освітленість: ");
Serial.print(lux);
Serial.println(" lux ");
Serial.print("Вологість: ");
Serial.print(h);
Serial.print(" % Температура: ");
Serial.print(t);
Serial.println(" °C ");
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(t);
lcd.print(" C ");
lcd.setCursor(0, 1);
lcd.print("H: ");
lcd.print(h);
lcd.print(" % ");
lcd.setCursor(0, 2);
lcd.print("P: ");
lcd.print(lux);
lcd.print(" lux");
delay(2000);
}