#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define DHTPIN D4
#define DHTTYPE DHT22
#define API_SENSOR D2
#define LAMP1 D5
#define LAMP2 D6
#define FAN D0
#define BUZZER D7
#define SERVO_PIN D3
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo pintu;
float suhu;
int api;
void setup() {
Serial.begin(115200);
pinMode(API_SENSOR, INPUT_PULLUP);
pinMode(LAMP1, OUTPUT);
pinMode(LAMP2, OUTPUT);
pinMode(FAN, OUTPUT);
pinMode(BUZZER, OUTPUT);
dht.begin();
lcd.init();
lcd.backlight();
pintu.attach(SERVO_PIN);
lcd.setCursor(0, 0);
lcd.print("SMART HOME");
delay(2000);
}
void loop() {
suhu = dht.readTemperature();
api = digitalRead(API_SENSOR);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu:");
lcd.print(suhu);
if (api == LOW) {
lcd.setCursor(0, 1);
lcd.print("API TERDETEKSI");
digitalWrite(BUZZER, HIGH);
digitalWrite(FAN, HIGH);
pintu.write(90);
digitalWrite(LAMP1, HIGH);
digitalWrite(LAMP2, HIGH);
}
else {
digitalWrite(BUZZER, LOW);
if (suhu > 30) {
digitalWrite(FAN, HIGH);
lcd.setCursor(0, 1);
lcd.print("Kipas ON");
} else {
digitalWrite(FAN, LOW);
lcd.setCursor(0, 1);
lcd.print("Normal");
}
pintu.write(0);
}
delay(1000);
}Loading
esp32-s2-devkitm-1
esp32-s2-devkitm-1