#define BLYNK_TEMPLATE_ID "TMPL6uPqZNUrw"
#define BLYNK_TEMPLATE_NAME "ProjectIrfan"
#define BLYNK_AUTH_TOKEN "RtEmIirVLbZ-NBsHfiD3tvaJPOVGEQFj"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h> // For ESP32 native WiFi
// WiFi credentials
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Your Blynk credentials
char auth[] = BLYNK_AUTH_TOKEN;
const int redLedPinIR = 23; // Replace with suitable GPIO pin on ESP32
const int greenLedPinIR = 22; // Replace with suitable GPIO pin on ESP32
const int irSensorPin = 5; // GPIO pin 5 for the IR sensor
const int redLedPinWIFI = 19; // Replace with suitable GPIO pin on ESP32
const int greenLedPinWIFI = 18; // Replace with suitable GPIO pin on ESP32
bool irSensorState = false;
// Define virtual pins for Blynk
#define VIRTUAL_PIN_RED_LED_IR V23
#define VIRTUAL_PIN_GREEN_LED_IR V22
#define VIRTUAL_PIN_RED_LED_WIFI V19
#define VIRTUAL_PIN_GREEN_LED_WIFI V18
void setup() {
// Initialize Serial communication at 115200 baud rate
Serial.begin(115200);
while (!Serial) {
// Wait for Serial to be ready
}
// Print initial debug message
Serial.println("Setup started...");
// Initialize pins
pinMode(redLedPinIR, OUTPUT);
pinMode(greenLedPinIR, OUTPUT);
pinMode(irSensorPin, INPUT);
pinMode(redLedPinWIFI, OUTPUT);
pinMode(greenLedPinWIFI, OUTPUT);
// Initialize Blynk
Serial.println("Initializing Blynk...");
Blynk.begin(auth, ssid, password);
// Wait for WiFi connection
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Connected to WiFi");
digitalWrite(greenLedPinWIFI, HIGH);
digitalWrite(redLedPinWIFI, LOW);
}
void loop() {
Blynk.run();
// Read the state of the IR sensor
irSensorState = digitalRead(irSensorPin);
// Send the sensor state to Blynk virtual pin V1
// Blynk.virtualWrite(VIRTUAL_PIN_IR_SENSOR, irSensorState);
Serial.print("IR Sensor State: ");
Serial.println(irSensorState);
if (irSensorState == LOW) { // Assuming LOW means triggered
Serial.println("Present");
digitalWrite(greenLedPinIR, HIGH);
digitalWrite(redLedPinIR, LOW);
Blynk.virtualWrite(VIRTUAL_PIN_GREEN_LED_IR, 1); // 1 for ON
Blynk.virtualWrite(VIRTUAL_PIN_RED_LED_IR, 0); // 0 for OFF
} else {
Serial.println("Absent");
digitalWrite(greenLedPinIR, LOW);
digitalWrite(redLedPinIR, HIGH);
Blynk.virtualWrite(VIRTUAL_PIN_GREEN_LED_IR, 0); // 0 for OFF
Blynk.virtualWrite(VIRTUAL_PIN_RED_LED_IR, 1); // 1 for ON
}
// Check WiFi connection status and update LED status accordingly
if (WiFi.status() == WL_CONNECTED) {
digitalWrite(greenLedPinWIFI, HIGH);
digitalWrite(redLedPinWIFI, LOW);
Blynk.virtualWrite(VIRTUAL_PIN_GREEN_LED_WIFI, 1); // 1 for connected
Blynk.virtualWrite(VIRTUAL_PIN_RED_LED_WIFI, 0); // 0 for disconnected
} else {
digitalWrite(greenLedPinWIFI, LOW);
digitalWrite(redLedPinWIFI, HIGH);
Blynk.virtualWrite(VIRTUAL_PIN_GREEN_LED_WIFI, 0); // 0 for disconnected
Blynk.virtualWrite(VIRTUAL_PIN_RED_LED_WIFI, 1); // 1 for connected
}
delay(100); // Adjust delay as needed
}