#define BLYNK_TEMPLATE_ID "TMPL3pwF-ZKzP"
#define BLYNK_TEMPLATE_NAME "HOME PLANTS SAFETY SENSOR"
#define BLYNK_AUTH_TOKEN "EZ-MHJVMfxS9ZQkEJqz8AuabTq1X2fE_"
const int led=19;
const int pir=14;
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
//Initializing OLED display
Adafruit_SSD1306 display(128,64,&Wire,-1);
//Characterizing the TEMPELATE_ID, NAME and AUTH_TOKEN
char auth[]=BLYNK_AUTH_TOKEN;
char ssid[]="Wokwi-GUEST";
char password[]="";
BlynkTimer timer;
const int buzz=12;
void sendDataToBlynk()
{
int ir1=digitalRead(pir);
Blynk.virtualWrite(V1,ir1);
}
void setup()
{
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC,0x3C))
{
Serial.write("Failed....");
for(;;);
}
pinMode(led, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(pir, INPUT);
ledcAttach(buzz, 0); // Attach pin 12 to channel 0
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,10);
display.setTextColor(WHITE);
display.println("Welcome");
display.display();
//Connecting to WiFi
Serial.println("Connecting to WiFi");
WiFi.begin(ssid,password);
while (WiFi.status()!=WL_CONNECTED)
{
delay(1000);
Serial.println("Attempting to connect WiFi");
}
Serial.println("Connected to WiFi");
//Connecting to Blynk platform
Serial.println("Connecting to Blynk");
Blynk.begin(BLYNK_AUTH_TOKEN,ssid,password);
while (!Blynk.connected())
{
delay(1000);
Serial.println("Attempting to connect Blynk");
}
Serial.println("Connected to Blynk");
timer.setInterval(2000L,sendDataToBlynk);
}
void loop()
{
// put your main code here, to run repeatedly:
//Run Blynk
Blynk.run();
timer.run();
int ir1=digitalRead(pir);
// Send the PIR sensor value to Blynk
Blynk.virtualWrite(V1, pir);
if (ir1==0)
{
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,10);
display.setTextColor(WHITE);
display.println("Pests not detected");
display.display();
}
else
{
Blynk.logEvent("Pests have been detected. Please turn on the ultrasonic sound");
if (Blynk.connected())
{
int frequency = 4000;
int resolution = 8;
ledcWriteTone(0, frequency);
int value = BlynkWidgetRead(led);
digitalWrite(led, value);
}
//Displaying message in oled screen
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,10);
display.setTextColor(WHITE);
display.println("Pests not detected");
display.display();
}
}