#define BLYNK_TEMPLATE_ID "TMPLz_DgiUoN"
#define BLYNK_TEMPLATE_NAME "DHT22 ESP32 AIS"
#define BLYNK_AUTH_TOKEN "HCsIK8DanuB-HCF6BocNgZYWTCyYNiMi"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define LED1 13
#define LED2 12
#define LED3 27
#define LED4 14
#define BUZZ 26
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
char auth[] = "HCsIK8DanuB-HCF6BocNgZYWTCyYNiMi";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);
#include<RTClib.h>
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Monitoring Suhu");
Serial.println("=================================================");
dht.begin();
Blynk.begin(auth, ssid, pass);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(BUZZ, OUTPUT);
lcd.init();
lcd.backlight();
if (! rtc.begin()){
lcd.print("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()){
lcd.print("RTC is NOT running!");
}
lcd.setCursor(0, 0);
lcd.print("I Gede Aiswarya P K");
lcd.setCursor(0, 1); lcd.print("2015344022");
lcd.setCursor(0, 2); lcd.print("6B Teknik Otomasi");
DateTime now = rtc.now(); lcd.setCursor(0, 3);
lcd.print(now.day());
lcd.print('/');
lcd.print(now.month());
lcd.print('/');
lcd.print(now.year());
lcd.print(";");
lcd.print(" Time ");
lcd.print(now.hour());
lcd.print(':');
lcd.print(now.minute());
lcd.print(':');
delay(5000);
lcd.clear();
}
void loop() {
float temp = dht.readTemperature();
float humi = dht.readHumidity();
lcd.clear();
Serial.print("Temperature : ");;
Serial.print(temp);
Serial.println(" C");
if(temp < 10){
lcd.setCursor(3, 0);
lcd.print("Temp : ");
lcd.print("0");
lcd.print(temp);
lcd.print(" C");
} else {
lcd.setCursor(3, 0);
lcd.print("Temp : ");
lcd.print(temp);
lcd.print(" C");
}
if(humi < 10){
lcd.setCursor(2, 1);
lcd.print("Humidity :");
lcd.print("0");
lcd.print(humi);
lcd.print(" %");
} else {
lcd.setCursor(2, 1);
lcd.print("Humidity :");
lcd.print(humi);
lcd.print("%");
}
if(temp < 20){
lcd.setCursor(3, 2);
lcd.print("COLD : GREEN");
lcd.setCursor(4, 3);
lcd.print("BUZZER OFF");
// Serial.println("Status Suhu : DINGIN");
// Serial.println("Green Light On");
// Serial.println("Buzzer Off");
// Serial.println("=================================================");
digitalWrite(LED3,HIGH);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED4,LOW);
// Blynk.virtualWrite(V2, HIGH);
// Blynk.virtualWrite(V1, LOW);
// Blynk.virtualWrite(V3, LOW);
// Blynk.virtualWrite(V4, LOW);
// Blynk.virtualWrite(V5, LOW);
// Blynk.virtualWrite(V6, LOW);
tone(BUZZ,0,0);
} else if(temp >= 20 && temp < 30 ){
lcd.setCursor(3, 2);
lcd.print("NORMAL : BLUE");
lcd.setCursor(0, 3);
lcd.print("BUZZER ON : 100Hz");
// Serial.println("Status Suhu : NORMAL");
// Serial.println("Blue Light On");
// Serial.println("Buzzer Fequencies 100Hz...");
// Serial.println("=================================================");
digitalWrite(LED4, HIGH);
digitalWrite(LED3, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED1, LOW);
// Blynk.virtualWrite(V3, HIGH);
// Blynk.virtualWrite(V4, LOW);
// Blynk.virtualWrite(V2, LOW);
// Blynk.virtualWrite(V1, LOW);
// Blynk.virtualWrite(V5, LOW);
// Blynk.virtualWrite(V6, HIGH);
tone(BUZZ,100,2000);
} else if(temp >= 30 && temp < 40){
lcd.setCursor(2, 2);
lcd.print("WARM : YELLOW");
lcd.setCursor(0, 3);
lcd.print("BUZZER ON : 500Hz");
// Serial.println("Status : WARM");
// Serial.println("Yellow Light On");
// Serial.println("Buzzer Fequencies 500Hz...");
// Serial.println("=================================================");
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
// Blynk.virtualWrite(V4, HIGH);
// Blynk.virtualWrite(V3, LOW);
// Blynk.virtualWrite(V2, LOW);
// Blynk.virtualWrite(V1, LOW);
// Blynk.virtualWrite(V5, LOW);
// Blynk.virtualWrite(V6, HIGH);
tone(BUZZ,500,1000);
} else if(temp >= 40){
lcd.setCursor(3, 2);
lcd.print("HOT : RED");
lcd.setCursor(0, 3);
lcd.print("BUZZER ON : 1000Hz");
// Serial.println("Status : HOT");
// Serial.println("Red Light On");
// Serial.println("Buzzer Fequencies 1000Hz...");
// Serial.println("=================================================");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
// Blynk.virtualWrite(V5, HIGH);
// Blynk.virtualWrite(V2, LOW);
// Blynk.virtualWrite(V3, LOW);
// Blynk.virtualWrite(V4, LOW);
// Blynk.virtualWrite(V1, HIGH);
// Blynk.virtualWrite(V6, HIGH);
tone(BUZZ,1000,100);
}
// Blynk.virtualWrite(V0,temp);
Serial.print("Temperature : ");;
Serial.print(temp);
Serial.println(" C");
// Blynk.run();
// timer.run();
delay(1500);
}