#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6zhhXZHtC"
#define BLYNK_TEMPLATE_NAME "Iotpologyid"
#define BLYNK_AUTH_TOKEN "9BBLiITWHel9uaOICkdYfx3TKeYgpNDu"
#include <WiFi.h>
#include <WiFiClient.h>
#include <Blynk.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int arus,suhu,maxsuhu,maxarus,vibra,vibracount,
vibrastat = 1,getarstat,getarnotif,notif;
int choose, up, down, enter;
int menu,main_menu;
String getar = "Normal";
int ledNormal = 27,
ledAbnormal = 26;
Adafruit_SSD1306 display = Adafruit_SSD1306(128,64, &Wire);
void setup()
{
// Serial.begin(115200);
// Serial.println("Hello, ESP32!");
// Blynk.begin(auth, ssid, pass);
pinMode(ledNormal, OUTPUT);
pinMode(ledAbnormal, OUTPUT);
digitalWrite(ledNormal, 0);
digitalWrite(ledAbnormal, 0);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE,BLACK);
display.setCursor(15,0);
display.println("Smart Monitoring");
display.display();
Blynk.begin(auth, ssid, pass);
delay(1000);
}
void loop()
{
Blynk.run();
arus = analogRead(32);
arus = map(arus, 0 , 4095, 0 , 100);
suhu = analogRead(33);
suhu = map(suhu, 0 , 4095, 0 , 100);
vibra = analogRead(35);
vibra = map(vibra, 0 , 4095, 0 , 1);
enter = analogRead(36);
enter = map(enter, 0 , 4095, 0 , 1);
up = analogRead(34);
up = map(up, 0 , 4095, 0 , 1);
down = analogRead(39);
down = map(down, 0 , 4095, 0 , 1);
// choose = analogRead(36);
// choose = map(choose, 0 , 4095, 0 , 1);
if(suhu <= maxsuhu && arus <= maxarus && getarnotif == 0)
{
digitalWrite(ledNormal, 1);
digitalWrite(ledAbnormal, 0);
notif = 0;
}
if(suhu > maxsuhu || arus > maxarus || getarnotif == 1)
{
digitalWrite(ledNormal, 0);
digitalWrite(ledAbnormal, 1);
notif = 1;
}
if(vibra == 1)
{
vibracount = vibracount + 1;
}
if(menu == 0)
{
home();
}
if(enter == 0 && menu <= 4)
{
menu = menu + 1;
display.clearDisplay();
display.display();
}
if(enter == 0 && menu == 4)
{
menu = 0;
display.clearDisplay();
display.display();
}
if(menu == 1)
{
menuarus();
}
if(menu == 2)
{
menusuhu();
}
if(menu == 3)
{
menugetar();
}
if(getarstat <= 360)
{
getarstat = getarstat + 1;
}
if(getarstat > 360)
{
if(vibrastat == 1)
{
if(vibracount <= 300)
{
getarnotif = 0;
}
else
{
getarnotif = 1;
}
}
if(vibrastat == 2)
{
if(vibracount <= 200)
{
getarnotif = 0;
}
else
{
getarnotif = 1;
}
}
if(vibrastat == 3)
{
if(vibracount <= 100)
{
getarnotif = 0;
}
else
{
getarnotif = 1;
}
}
getarstat = 0;
vibracount = 0;
}
delay(100);
}
void home()
{
Blynk.virtualWrite(V0,suhu);
Blynk.virtualWrite(V1,arus);
display.setTextColor(WHITE,BLACK);
if(notif == 0)
{
display.setCursor(15,0);
display.println("Status : Normal ");
Blynk.virtualWrite(V3,"Normal ");
}
if(notif == 1)
{
display.setCursor(15,0);
display.println("Status : Abnormal ");
Blynk.virtualWrite(V3,"Abnormal");
}
if(arus > maxarus)
{
display.setCursor(0,15);
display.println("Arus : " +String(arus) + " A ");
display.display();
delay(100);
display.setCursor(0,15);
display.println("Arus : A ");
display.display();
delay(100);
}
if(suhu > maxsuhu)
{
display.setCursor(0,25);
display.println("Suhu : " +String(suhu) + " C ");
display.display();
delay(100);
display.setCursor(0,25);
display.println("Suhu : C ");
display.display();
delay(100);
}
display.setCursor(0,15);
display.println("Arus : " +String(arus) + " A ");
display.setCursor(0,25);
display.println("Suhu : " +String(suhu) + " C ");
if(getarnotif == 0)
{
display.setCursor(0,35);
display.println("Vibration : Normal ");
Blynk.virtualWrite(V2,"Normal");
}
if(getarnotif == 1)
{
display.setCursor(0,35);
display.println("Vibration : Abnormal ");
display.display();
delay(100);
display.setCursor(0,35);
display.println("Vibration : ");
display.display();
delay(100);
Blynk.virtualWrite(V2,"Abnormal");
}
display.setCursor(50,55);
display.println("Enter to Menu");
display.display();
}
void menuarus()
{
display.setTextColor(WHITE,BLACK);
display.setCursor(35,0);
display.println("Main Menu");
if(up == 0 && maxarus <= 100)
{
maxarus = maxarus + 1;
}
if(up == 0 && maxarus >= 100)
{
maxarus = maxarus;
}
if(down == 0 && maxarus >= 1)
{
maxarus = maxarus - 1;
}
if(down == 0 && maxarus == 0)
{
maxarus = maxarus;
}
display.setCursor(40,20);
display.println("Arus");
display.setCursor(40,35);
display.println(maxarus + String(" A "));
display.setCursor(10,55);
display.println("Enter to Save/Next");
display.display();
}
void menusuhu()
{
display.setTextColor(WHITE,BLACK);
display.setCursor(35,0);
display.println("Main Menu");
if(up == 0 && maxsuhu <= 100)
{
maxsuhu = maxsuhu + 1;
}
if(up == 0 && maxsuhu >= 100)
{
maxsuhu = maxsuhu;
}
if(down == 0 && maxsuhu >= 1)
{
maxsuhu = maxsuhu - 1;
}
if(down == 0 && maxsuhu == 0)
{
maxsuhu = maxsuhu;
}
display.setCursor(40,20);
display.println("Suhu");
display.setCursor(40,35);
display.println(maxsuhu + String(" C "));
display.setCursor(10,55);
display.println("Enter to Save/Next");
display.display();
}
void menugetar()
{
display.setTextColor(WHITE,BLACK);
display.setCursor(35,0);
display.println("Main Menu");
if(up == 0 && vibrastat < 4)
{
vibrastat = vibrastat + 1;
}
if(up == 0 && vibrastat > 4)
{
vibrastat = vibrastat;
}
if(down == 0 && vibrastat >= 1)
{
vibrastat = vibrastat - 1;
}
if(down == 0 && vibrastat == 0)
{
vibrastat = vibrastat;
}
display.setCursor(40,20);
display.println("Getar");
display.setCursor(40,35);
if(vibrastat == 1)
{
display.println("LOW ");
}
if(vibrastat == 2)
{
display.println("MED ");
}
if(vibrastat == 3)
{
display.println("HIGH");
}
display.setCursor(10,55);
display.println("Enter to Save/Next");
display.display();
}