#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Servo.h>
#define Trash_Button 2
#define servo_Trash 7
#define Fan_Button 3
#define Fan_Relay 4
#define Backlight_Button 5
#define BackLight_Led 13
#define DHTPIN 8
#define DHTTYPE DHT22
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
Servo servo;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
pinMode(Trash_Button, INPUT);
pinMode(Fan_Button, INPUT);
pinMode(Backlight_Button, INPUT);
pinMode(Fan_Relay, OUTPUT);
digitalWrite(Fan_Relay, LOW);
servo.attach(servo_Trash);
servo.write(0);
lcd.init();
lcd.backlight();
dht.begin();
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println(F("Failed to read from DHT sensor!"));
lcd.setCursor(0, 0);
lcd.print("Failed to read");
lcd.setCursor(0, 1);
lcd.print("from DHT sensor!");
return;
}
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
//Temperature
lcd.setCursor(0, 0);
lcd.print("R.Temp:");
lcd.setCursor(7, 0);
lcd.print(t);
lcd.setCursor(11, 0);
lcd.print(".");
lcd.setCursor(12, 0);
lcd.print("C");
//Humdity
lcd.setCursor(0, 1);
lcd.print("R.Humi:");
lcd.setCursor(7, 1);
lcd.print(h);
lcd.setCursor(12, 1);
lcd.print("%");
//Fan Status
//Back Light Status
delay(2000);//buton durumu için makine durum yazılacak
}