/*********
*** D'SUDON ***
*** MONITORING SUHU MAINTANK ***
KPP-TMRB
PROJECT MANAGEMENT-ICT
*********/
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL66xn1Tulw"
#define BLYNK_TEMPLATE_NAME "SUDON"
#define BLYNK_AUTH_TOKEN "CLJgRmfS3-LOIz5pN_WZIcRcLqlN6KuZ"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
//BlynkTimer timer;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// GPIO where the DS18B20 is connected to
const int oneWireBus = 32;
const int relay = 2;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
void setup() {
pinMode(relay, OUTPUT);
//digitalWrite(relay, LOW);
// Start the Serial Monitor
Serial.begin(115200);
// Start the DS18B20 sensor
sensors.begin();
lcd.init();
lcd.backlight();
Blynk.begin(auth, ssid, pass);
//imer.setInterval(1000L, myTimer);
}
/*
void myTimer (){
sensors.requestTemperatures();
int temperatureC = sensors.getTempCByIndex(0);
int temperatureF = sensors.getTempFByIndex(0);
Serial.print(temperatureC);
Serial.println("ºC");
Serial.print(temperatureF);
Serial.println("ºF");
Blynk.virtualWrite(V0, temperatureC);
Blynk.virtualWrite(V1, temperatureF);
//Blynk.virtualWrite(V2, temperature);
if (temperatureC > 50){
Serial.println("Alert!!!, Relay Aktif");
//digitalWrite(relay, HIGH);
//delay(10);
digitalWrite(relay, LOW);
delay(10);
Blynk.logEvent("alert", "Temperature Warning!!! Segera Dinginkan Maintank!!!");
}
}*/
void loop() {
Blynk.run();
lcd.clear();
sensors.requestTemperatures();
int temperatureC = sensors.getTempCByIndex(0);
int temperatureF = sensors.getTempFByIndex(0);
Serial.print(temperatureC);
Serial.println("ºC");
lcd.setCursor(0,0);
lcd.print("Temperature=");
lcd.print(temperatureC);
//lcd.setCursor(15,0);
lcd.print((char)223);
lcd.print("C");
//Serial.print(temperatureF);
//Serial.println("ºF");
Blynk.virtualWrite(V0, temperatureC);
Blynk.virtualWrite(V1, temperatureF);
if (temperatureC >= 70) {
// Danger! Shut down the system.
Serial.println("Alert!!!, Relay Active");
digitalWrite(relay, HIGH);
//delay(10);
lcd.setCursor(0,1);
lcd.print("Pompa Aktif!!!");
Blynk.logEvent("alert", "Temperature Warning!!! Segera Dinginkan Maintank!!!");
}
else if (temperatureC >= 50) { // 60 <= temperature < 70
// Warning! User attention required.
Serial.println("Alert!!!, Relay Active");
digitalWrite(relay, HIGH);
//delay(10);
lcd.setCursor(0,1);
lcd.print("Pompa Aktif!!!");
Blynk.logEvent("alert", "Temperature Warning!!! Segera Dinginkan Maintank!!!");
}
else { // temperature < 60
// Safe! Continue usual tasks.
Serial.println("Alert!!!, Relay Non Active");
digitalWrite(relay, LOW);
delay(10);
//Blynk.logEvent("alert", "Temperature Warning!!! Segera Dinginkan Maintank!!!");
}
delay(100);
//timer.run();
}