// #define BLYNK_TEMPLATE_ID "TMPL6owEBDgWa"
// #define BLYNK_TEMPLATE_NAME "UAP"
// #define BLYNK_AUTH_TOKEN "dlPKyycmdwqwzK0-ssYnaWJChVyhtpAp"
// #include <ESP8266WiFi.h>
// #include <BlynkSimpleEsp8266.h>
// WiFi Credentials
// char ssid[] = "zachriek";
// char pass[] = "bn4jxzju";
#include <DHT.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // SDA = A4, D2 | SDL = A5, D1
#define DHTPIN 2 // D2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define LDRPIN A0
#define TRIGPIN 3 // D5
#define ECHOPIN 4 // D6
#define LEDPIN 5 // D7
#define LED2PIN 6 // D8
#define SERVOPIN 9 // D1
// #define WATER_PUMP_PIN 6 // D9
int servoPosition = 0;
Servo myServo;
long readUltrasonicDistance() {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
long duration = pulseIn(ECHOPIN, HIGH);
long distance = duration * 0.034 / 2;
return distance;
}
void setup() {
Serial.begin(9600);
dht.begin();
myServo.attach(SERVOPIN);
lcd.init();
lcd.backlight();
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(LEDPIN, OUTPUT);
pinMode(LED2PIN, OUTPUT);
// Blynk.begin(auth, ssid, pass);
lcd.setCursor(0, 0);
lcd.print("KELOMPOK 2A");
lcd.setCursor(0, 1);
lcd.print("Taufik Zachrie Zira");
delay(1000);
for (int lcdPosition = 0; lcdPosition < 20; lcdPosition++) {
lcd.scrollDisplayLeft();
delay(300);
}
lcd.clear();
}
void loop() {
// Blynk.run();
int ldrValue = analogRead(LDRPIN);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
long distance = readUltrasonicDistance();
lcd.setCursor(0,0);
lcd.print("Suhu: ");
lcd.print(temp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Kelembaban: ");
lcd.print(hum);
lcd.print("%");
// Blynk.virtualWrite(V0, distance);
// Blynk.virtualWrite(V1, temp);
// Blynk.virtualWrite(V2, hum);
if (ldrValue < 500) {
digitalWrite(LEDPIN, LOW);
// Blynk.virtualWrite(V3, 0);
} else {
digitalWrite(LEDPIN, HIGH);
// Blynk.virtualWrite(V3, 1);
}
if (temp < 30) {
digitalWrite(LED2PIN, HIGH);
// Blynk.virtualWrite(V4, 1);
} else {
digitalWrite(LED2PIN, LOW);
// Blynk.virtualWrite(V4, 0);
}
if (distance < 30) {
myServo.write(0);
} else {
myServo.write(180);
}
delay(2000);
}