Free Shipping over ₹1199

ESP32 PIR Motion with Arduino IDE

Introduction

The PIR (Passive Infrared) sensor detects motion by sensing changes in infrared radiation.
It outputs a digital HIGH signal to the ESP32 when motion is detected, and LOW when idle.
Commonly used in security systems, motion-activated lights, and automation projects.
In this tutorial, we’ll connect a PIR sensor to the ESP32 and detect motion events.

Required Components

  • ESP32 Board
  • PIR Motion Sensor
  • Jumper wires
  • Breadboard (optional)

Pinout

Circuit Diagram / Wiring

  • PIR VCC → VIN/5V (ESP32)
  • PIR GND → GND (ESP32)
  • PIR OUT → 14 (ESP32)

Code / Programming

/*
  Filename: pir_motion_sensor.ino
  Description: Detects motion using a PIR sensor connected to ESP32 and prints status via Serial Monitor.
  Author: www.oceanlabz.in
  Modification Date: 1/4/2025
*/

#define PIR_Pin 14  // Use GPIO14 or any other available digital pin

void setup() {
  Serial.begin(115200);           // Use a higher baud rate for ESP32
  pinMode(PIR_Pin, INPUT);        // Set PIR pin as input
  Serial.println("PIR Sensor Initialized");
}

void loop() {
  int val = digitalRead(PIR_Pin); // Read PIR sensor value

  if (val == HIGH) {
    Serial.println("Motion Detected");
  } else {
    Serial.println("No motion detected.");
  }

  delay(1000);  // Delay for stability
}

Explanation

  • The PIR sensor detects motion by sensing changes in infrared radiation from moving objects.
  • It sends a HIGH signal to ESP32 when motion is detected and LOW when idle.
  • ESP32 reads this digital signal to trigger actions like alerts, lights, or automation tasks.

Troubleshooting

  • If motion is never detected, wait 30–60 seconds after powering up for the PIR sensor to stabilize.
  • Ensure the OUT pin is connected to a proper digital GPIO, like GPIO14 (avoid boot-sensitive pins like GPIO0, 2, or 15).
  • If false triggers occur, adjust the PIR sensor’s sensitivity and delay knobs to filter out noise.

Project 1: ESP32-Based PIR Motion Detection Alarm System

Introduction

This project is a PIR Motion Detection Alarm System using an ESP32, a PIR sensor, a buzzer, and an LED.
It detects motion using the PIR sensor and immediately alerts with a buzzer sound and LED light.
The ESP32 also prints real-time movement status to the Serial Monitor for monitoring.
Ideal for home security and automation, it’s a simple way to learn motion detection and output control.

Required Components

  • ESP32 Board
  • PIR Motion Sensor
  • Buzzer
  • LED with Resistor 220 Ohm
  • Jumper wires
  • Breadboard

Circuit Diagram / Wiring

  • PIR VCC → VIN/5V (ESP32)
  • PIR GND → GND (ESP32)
  • PIR OUT → GPIO 14 (ESP32)
  • Buzzer VCC → VIN (ESP32)
  • Buzzer GND → GND (ESP32)
  • Buzzer SINGNAL → GPIO 23 (ESP32)
  • Connect the  LED anode to GPIO 22 (via a 220-ohm resistor) and cathode to GND.

Code / Programming

/*
  Filename: PIR_Motion_Detection_Alarm_System.ino
  Description: Uses a PIR sensor to detect motion and triggers a buzzer and LED using ESP32.
  Author: www.oceanlabz.in
  Modification Date: 1/4/2025
*/

int Buzz = 23;    // GPIO 23 for Buzzer
int LED = 22;     // GPIO 22 for LED
int PIR = 14;     // GPIO 21 for PIR Sensor
int val = 0;      // Initialize value

void setup() {
  pinMode(Buzz, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(PIR, INPUT);
  Serial.begin(115200);  // ESP32 uses higher baud rates
}

void loop() {
  val = digitalRead(PIR); // Read PIR sensor value

  if (val == HIGH) {
    digitalWrite(LED, HIGH);   // Turn LED ON
    digitalWrite(Buzz, HIGH);  // Turn Buzzer ON
    Serial.println("Movement Detected");
  } else {
    digitalWrite(LED, LOW);    // Turn LED OFF
    digitalWrite(Buzz, LOW);   // Turn Buzzer OFF
    Serial.println("Movement not Detected");
  }

  delay(200);  // Small delay for stability
}

Explanation

  • The PIR sensor detects motion and sends a HIGH signal to the ESP32’s input pin.
  • When motion is detected, the ESP32 turns ON the buzzer and LED as visual and audible alerts.
  • Serial Monitor prints real-time status updates: either “Movement Detected” or “Movement not Detected”.

Troubleshooting

  • No Output on Serial Monitor: Ensure correct COM port and baud rate (115200) in Arduino IDE.
  • False Triggering: Power cycle the PIR sensor after uploading code; wait 30–60 seconds for it to stabilize.
  • No LED or Buzzer Response: Check wiring and GPIO pin numbers; confirm your ESP32 board supports the assigned pins.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    Need Help?