// #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 <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // SDA = A4, D2 | SCL = A5, D1
#define SOIL_MOISTURE_PIN A0
#define DHT_PIN 2 // D5
#define RELAY_PIN 3 // D6
#define LED_PIN 4 // D7
#define LED2_PIN 5 // D8
#define DHTTYPE DHT22
#define SOIL_DRY_THRESHOLD 30
DHT dht(DHT_PIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(SOIL_MOISTURE_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
// Blynk.begin(auth, ssid, pass);
dht.begin();
lcd.init();
lcd.backlight();
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 soilValue = analogRead(SOIL_MOISTURE_PIN);
int soilPercent = map(soilValue, 0, 1023, 100, 0);
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
Serial.print("Soil Moisture: ");
Serial.print(soilPercent);
Serial.print(" | Temp: ");
Serial.print(temperature);
Serial.print(" C | Hum: ");
Serial.print(humidity);
Serial.println(" %");
// Blynk.virtualWrite(V0, 1);
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(temperature, 1);
lcd.print("C H: ");
lcd.print(humidity, 0);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Soil: ");
lcd.print(soilPercent);
lcd.print("%");
if (soilPercent < SOIL_DRY_THRESHOLD) {
digitalWrite(RELAY_PIN, LOW);
digitalWrite(LED_PIN, HIGH);
digitalWrite(LED2_PIN, LOW);
lcd.print(" BASAH");
} else {
digitalWrite(RELAY_PIN, HIGH);
digitalWrite(LED_PIN, LOW);
digitalWrite(LED2_PIN, HIGH);
lcd.print(" KERING");
}
delay(2000);
}