#include <Servo.h>
#define MOTION_SENSOR_PIN 22 // ESP32 pin GPIO22 connected to motion sensor's pin
#define SERVO_PIN 26 // ESP32 pin GPIO26 connected to servo motor's pin
Servo servo; // create servo object to control a servo
// variables will change:
int angle = 0; // the current angle of servo motor
int lastMotionState; // the previous state of motion sensor
int currentMotionState; // the current state of motion sensor
void setup() {
Serial.begin(9600); // initialize serial
pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32 pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(angle);
currentMotionState = digitalRead(MOTION_SENSOR_PIN);
}
void loop() {
lastMotionState = currentMotionState; // save the last state
currentMotionState = digitalRead(MOTION_SENSOR_PIN); // read new state
if (currentMotionState==LOW) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!, rotating servo motor to 90°");
servo.write(90);
} else if (currentMotionState == HIGH) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!, rotating servo motor to 0°");
servo.write(0);
}
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
pir1:VCC
pir1:OUT
pir1:GND
servo1:GND
servo1:V+
servo1:PWM