ESP32 Basic Starter Kit for dummys: Proyecto - 6 Sensor de movimiento PIR
Este proyecto muestra cómo detectar movimiento con el ESP32 usando un PIR (Passive Infrared o detector pasivo de infrarrojos) que en este caso se usa HC-SR501 Motion Sensor.
En el montaje se activará la alarma (sonará el zumbador) cuando se detecte el movimiento de un cuerpo que desprenda calor (radiación infrarroja) y se detendrá cuando no se detecta movimiento durante un tiempo preestablecido (p.e. 4s).
Descripción de la placa que incorpora el sensor de movimiento HC-SR501 junto al ajuste del retardo, del rango de detección y la descripción de los pines |
Como el sensor necesita 5V en lugar de la salida de "3V3" usaremos "Vin"
Contrariamente a lo que dice el manual el programa no aparece en la libreria de ejemplos así que he reescrito uno basandome en ESP32 – PIR motion sensor project on Wokwi - 2022 (usa LED en lugar de zumbador) y muestra mensajes en el monitor serie.
/*Project_6_ESP32_PIR_Motion_Sensor.ino*/int buzzPin = 26; // GPIO del zumbadorint pirPin = 27; // GPIO del PIRint pirState = LOW; // Se inicia el valor de deteccion - sin movimientoint val = 0; // estatus del pinvoid setup() {pinMode(buzzPin, OUTPUT); // declara salida al zumbadorpinMode(pirPin, INPUT); // declara entrada del PIRSerial.begin(115200);}void loop() {val = digitalRead(pirPin); // lee valor dado por el PIRif (val == HIGH) { // si valor HIGHdigitalWrite(buzzPin, HIGH); // zumbadelay(1000);if (pirState == LOW) {Serial.println("¡Movimiento detectado!");pirState = HIGH;}} else {digitalWrite(buzzPin, LOW); // turn LED OFFif (pirState == HIGH) {Serial.println("¡fin del movimiento!");pirState = LOW;}}}
Hay varias cosas a comentar:
- Cuando se quiere hacer un comentario largo o quiere destacarse, en lugar de usar // se puede usar /* para iniciarlo y */ para terminarlo.
- Se usan las funciones digitalRead() y digitalWrite() para leer y escribir en GPIO
- Se usa la variable pirState para saber si es la primera vez que se pasa por un lugar del código o no , este "truco" se conoce como activar o desactivar un switch que nos hace de testigos
Con lo que ya sabe seguramente le resultará sencillo modificar el programa y el montaje para:
- Añadir al zumbido que un LED rojo parpadee.
- Hacer que el sensor de movimiento actue sobre un doble semaforo para ponerlo en rojo el de los vehiculos y verde el de los peatones cuando se detecta la presencia de estos y tras un retardo revertir la situación
Por si quiere comprar otros sensores HC-SR501 aquíe stán disponibles
Continúa en: Proyecto - 7 Web Server
Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor
Comentarios
Publicar un comentario