#define BLYNK_TEMPLATE_ID "*****"
#define BLYNK_TEMPLATE_NAME "*****"
#define BLYNK_AUTH_TOKEN "*****"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <BlynkSimpleEsp8266.h>
#define PIR_PIN 2
#define RELAY_PIN 3
#define BUZZER_PIN 4
#define SERVO_PIN 5
Servo servo;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char auth[] = "*****";
char ssid[] = "*****";
char pass[] = "*****";
bool pestCaught = false;
BLYNK_CONNECTED() {
Blynk.syncAll();
}
BLYNK_WRITE(V0) {
int value = param.asInt();
if (value == 1) {
openTrapDoor();
}
}
void setup() {
Serial.begin(9600);
pinMode(PIR_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
servo.attach(SERVO_PIN);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Welcome");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("IoT RODENT GUARD");
delay(5000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("PEST AWAITING");
Blynk.begin(auth, ssid, pass);
}
void loop() {
if (!pestCaught && digitalRead(PIR_PIN) == HIGH) {
caughtPest();
}
Blynk.run();
}
void caughtPest() {
lcd.clear();
lcd.print("PEST CAUGHT");
Blynk.virtualWrite(V1, "Rodent Alert: A pest has been caught!");
digitalWrite(BUZZER_PIN, HIGH);
delay(20000);
digitalWrite(BUZZER_PIN, LOW);
pestCaught = true;
digitalWrite(RELAY_PIN, HIGH); // Activate electric shock
delay(10000); // Keep electric shock active for 10 seconds
digitalWrite(RELAY_PIN, LOW); // Turn off electric shock
}
void openTrapDoor() {
servo.write(90); // Assuming 90 degrees is the position to open the trap door
delay(1000); // Delay to allow servo to move
pestCaught = false;
lcd.clear();
lcd.print("PEST AWAITING");
}
ERROR:
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
MICROCONTROLLER : ARDUINO UNO R3
BOARD : GENERIC ESP8266 MODULE (esp8266 community)
PORT : COM5
