Detector de movimiento Raspberry Pi con grabación de fotografías

¿Quieres mantener un ojo en tu hogar o negocio mientras estás fuera? ¡Con un detector de movimiento Raspberry Pi con capacidad de grabar fotografías, ahora puedes! Descubre cómo construir tu propio sistema de seguridad personalizado a través de este tutorial paso a paso. ¡No te pierdas esta oportunidad de tener control total sobre lo que sucede en tu espacio!

Este proyecto muestra cómo usar una Raspberry Pi para tomar fotografías cuando se detecta movimiento. Se puede utilizar como alarma antirrobo, para tomar fotografías de mascotas u otras aplicaciones. Usamos una cámara Raspberry Pi V2 y el código está escrito en el lenguaje de programación Python.

Detector de movimiento Raspberry Pi con grabación de fotografías

Nota: Este proyecto es un extracto de nuestro libro “20 proyectos fáciles de Raspberry Pi”. Si desea crear proyectos electrónicos con Python en Raspberry Pi, le recomendamos leer nuestro libro «Proyectos Raspberry Pi». Está disponible en versión digital y de bolsillo.

requisitos

  • Deberías estar familiarizado con eso Frambuesa Pi Tablero: lea Introducción a Raspberry Pi
  • Instalar eso Sistema operativo Raspbian o NOOBS en tu frambuesa pi
  • Puede encontrar una introducción al módulo Raspberry Pi Camera V2 aquí: Guía del módulo Raspberry Pi Camera V2

También te puede interesar: ¿Qué cámara Raspberry Pi es mejor para tu proyecto?

Piezas requeridas

Descripción del proyecto

El circuito para este proyecto consta de un sensor de movimiento PIR, un pulsador y un módulo de cámara que se conecta a su Pi. El botón pulsador es un componente adicional que le permite detener el script de Python.

Detector de movimiento Raspberry Pi con grabación de fotografías

Para programar la Raspberry Pi utilizamos un script Python y el incorporado cámara de imagen Biblioteca que facilita el control de la cámara. Para controlar los GPIO utilizamos el Suscribirse a Biblioteca que contiene clases para los componentes más comunes como pulsadores, LED, sensores de movimiento, etc.

Activar la cámara

Debes activar el software de la cámara de tu Raspberry Pi antes de poder utilizar el módulo de la cámara. En el entorno de escritorio, vaya al menú principal y seleccione Ajustes > frambuesa configuración pi. Elegir Interfaces y debería abrirse una ventana como la que se muestra a continuación.

Detector de movimiento Raspberry Pi con grabación de fotografías

Alternativamente, puede ingresar el siguiente comando en la ventana de terminal:

pi@raspberry:~ $ sudo raspi-config

Deberías ver la herramienta de configuración del software Raspberry Pi. Elige el Opciones de interfaz:

Detector de movimiento Raspberry Pi con grabación de fotografías

Habilite la cámara y reinicie su Pi:

Detector de movimiento Raspberry Pi con grabación de fotografías

Conectando la cámara

Con el software de la cámara habilitado, apague su Pi y luego conecte la cámara al puerto CSI. Asegúrese de que la cámara esté conectada con las letras azules hacia arriba y como se muestra en la siguiente imagen. Luego reinicia tu Pi.

Detector de movimiento Raspberry Pi con grabación de fotografías

construir el circuito

Una vez conectada la cámara, siga el siguiente esquema para cablear el resto del circuito.

Detector de movimiento Raspberry Pi con grabación de fotografías

  • Presionar el botón:GPIO 2
  • Sensor de movimiento PIR:GPIO 4

Nota: El sensor de movimiento PIR que utilizamos en este proyecto debe alimentarse desde el pin de 5V. Otros sensores requieren 3,3 V para funcionar. Lea las especificaciones de su sensor antes de cablear el circuito.

Escribe el guión

Para controlar la cámara, utiliza la integrada. cámara de imagen Biblioteca. Aquí hay una descripción general de lo que se supone que debe hacer el código:

  1. Inicialice la cámara.
  2. Tome una foto cuando el sensor de movimiento PIR detecte movimiento.
  3. Guarde las fotos en la carpeta de su escritorio.
  4. Nombra las fotos consecutivamente para saber el orden en que fueron tomadas, p. b. imagen_1.jpg, imagen_2.jpgEtcétera.
  5. Detenga la cámara cuando se presione el botón. Si no habilita esta función, no podrá salir de la vista previa de la cámara que aparece en su pantalla.

Entrando al guión

Usando Python 3 (IDLE), cree un nuevo archivo y copie el siguiente código. Luego guarde el código en la carpeta Escritorio con el siguiente nombre: detector de intrusiones.py.

#Project 13 - Burglar Detector With Photo Capture
#latest code updates available at: https://github.com/RuiSantosdotme/RaspberryPiProject
#project updates at: https://nostarch.com/RaspberryPiProject

#import the necessary packages
from gpiozero import Button, MotionSensor
from picamera import PiCamera
from time import sleep
from signal import pause

#create objects that refer to a button,
#a motion sensor and the PiCamera
button = Button(2)
pir = MotionSensor(4)
camera = PiCamera()

#start the camera
camera.rotation = 180
camera.start_preview()

#image image names
i = 0

#stop the camera when the pushbutton is pressed
def stop_camera():
    camera.stop_preview()
    #exit the program
    exit()

#take photo when motion is detected
def take_photo():
    global i
    i = i + 1
    camera.capture('/home/pi/Desktop/image_%s.jpg' % i)
    print('A photo has been taken')
    sleep(10)

#assign a function that runs when the button is pressed
button.when_pressed = stop_camera
#assign a function that runs when motion is detected
pir.when_motion = take_photo

pause()

Ver código sin formato

Así es como funciona el código

Primero importe las bibliotecas necesarias. Como ya se mencionó, el programa utiliza el cámara de imagen Biblioteca para controlar la cámara. El Suscribirse a La biblioteca contiene clases para controlar el pulsador y el sensor de movimiento: botón Y Sensor de movimiento. El dormir El método nos permite hacer frente a los retrasos y la Romper El método se utiliza para manejar interrupciones.

from gpiozero import Button, MotionSensor
from picamera import PiCamera
from time import sleep
from signal import pause

Luego crea objetos que hacen referencia al botón pulsador, al sensor de movimiento PIR y a la cámara. El pulsador está en GPIO 2 y el sensor de movimiento está en GPIO 4.

button = Button(2)
pir = MotionSensor(4)
camera = PiCamera()

Luego inicialice la cámara con cámara.start_preview().

camera.start_preview()

Dependiendo de la orientación de su cámara, es posible que también necesite girarla 180 grados para que las fotografías no se tomen al revés.

camera.rotation = 180

A continuación, inicialice I Variable que comienza en 0.

i = 0

Luego los creamos detener la cámara() y eso Toma una foto() Funciones que se llaman más adelante en el código.

El Toma una foto() función, utiliza el I Variable para contar y numerar imágenes, aumentando en uno el número en el nombre del archivo con cada imagen capturada.

def take_photo():
  global i
  i = i + 1
  camera.capture('/home/pi/Desktop/image_%s.jpg' % i)
  print('A photo has been taken')
  sleep(10)

Para tomar y guardar una foto, use el cámara.record() método, especificando el directorio donde desea guardar la imagen entre paréntesis. En este caso, guardamos las imágenes en la carpeta Escritorio y les ponemos un nombre. imagen_%s.jpgDónde %S se reemplaza por el número que incrementamos previamente en I.

Si desea guardar sus archivos en una carpeta diferente, reemplace este directorio con la ruta a la carpeta seleccionada. Luego establece un retraso de 10 segundos, lo que significa que la cámara tomará fotografías en intervalos de 10 segundos siempre que el sensor PIR detecte movimiento. Puede aumentar o disminuir el tiempo de retardo como desee, pero tenga cuidado de no sobrecargar el Pi con toneladas de imágenes configurando el tiempo de retardo demasiado pequeño.

El detener la cámara() La función detiene la cámara con el Cámara.Stop_Preview() Método.

def stop_camera():
  camera.stop_preview()
  #exit the program
  exit()

Esta función detiene la vista previa de la cámara y sale del programa. Salida() La función abre una ventana que le pregunta si desea cerrar el programa. Para cerrarlo, simplemente haga clic en «Aceptar».

Finalmente, especifica que la cámara se detenga al presionar el botón.

button.when_pressed = stop_camera

Finalmente, ordene a la cámara que tome una foto presionando el botón Toma una foto() Función cuando se detecta movimiento.

pir.when_motion = take_photo

El Romper() al final del código mantiene su programa en ejecución para que se puedan detectar interrupciones.

demostración

Si está utilizando Python IDLE para escribir su código, presione Q5 o ir a Correr > Ejecutar módulo para ejecutar el script. A medida que se ejecuta el script, deberías ver una vista previa de lo que ve la cámara en tu pantalla. Para salir de la vista previa de la cámara, presione el botón imprimir y haga clic DE ACUERDO en la ventana que aparece.

Alternativamente, puede escribir lo siguiente en la ventana de terminal:

pi@raspberrypi:~ $ python3 burglar_detector.py

Felicitaciones, tu proyecto está listo para detectar movimiento y tomar algunas fotos. Puedes colocar este proyecto en una ubicación estratégica y volver más tarde para revisar las fotos guardadas. La siguiente imagen muestra una fotografía tomada por este proyecto.

Detector de movimiento Raspberry Pi con grabación de fotografías

Envolver

Usar cámaras con Raspberry Pi es una tarea sencilla y puede usarse para una variedad de proyectos. El cámara de imagen Y Suscribirse a Las bibliotecas le brindan una manera fácil de controlar la cámara y los GPIO con Raspberry Pi.

Tenemos otros proyectos con cámaras y Raspberry Pi que te pueden gustar:

  • Transmisión de vídeo con la cámara Raspberry Pi
  • Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED
  • Sistema CCTV basado en Raspberry Pi con almacenamiento usando MotionEyeOS
  • Más proyectos con RPi…

Este es un extracto de nuestro libro “20 proyectos fáciles de Raspberry Pi”. Puede obtener una descripción general de nuestro libro en el siguiente vídeo.

» Obtenga una copia (versión de bolsillo) de nuestro libro Raspberry Pi »

Esperamos que este proyecto le haya resultado útil.

¡Gracias por leer!

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded




Detector de movimiento Raspberry Pi con grabación de fotografías

Detector de movimiento Raspberry Pi con grabación de fotografías

Este proyecto muestra cómo tomar fotos con un Raspberry Pi cuando se detecta movimiento. Puede ser utilizado como un detector de ladrones, para tomar fotos de la vida silvestre u en otras aplicaciones. Usaremos una cámara Raspberry Pi V2 y el código será escrito en el lenguaje de programación Python.

Prerrequisitos

  1. Debes estar familiarizado con la placa Raspberry Pi – lee Cómo empezar con Raspberry Pi
  2. Instalar el sistema operativo Raspbian o NOOBS en tu Raspberry Pi
  3. Para una introducción al módulo de cámara Raspberry Pi V2, lee: Guía del módulo de cámara Raspberry Pi V2

Partes requeridas

  1. Raspberry Pi – lee Mejores kits de inicio de Raspberry Pi
  2. Breadboard
  3. Módulo de cámara Raspberry Pi v2
  4. Sensor de movimiento HC-SR501 PIR
  5. Botón pulsador
  6. Cables de puente

Visión general del proyecto

El circuito de este proyecto consiste en un sensor de movimiento PIR, un botón pulsador y un módulo de cámara que conectarás a tu Pi. El botón pulsador es un componente adicional que te permite detener el script de Python.

Para programar el Raspberry Pi, usaremos un script de Python y la biblioteca picamera integrada, que facilita mucho el control de la cámara. Para controlar los GPIO, utilizaremos la biblioteca gpiozero que contiene clases para la mayoría de los componentes populares como botones pulsadores, LEDs, sensores de movimiento, etc.

Cómo funciona el código

Primero importas las bibliotecas necesarias; este programa utiliza la biblioteca picamera para controlar la cámara. La biblioteca gpiozero contiene clases para controlar el botón pulsador y el sensor de movimiento PIR. El método sleep te permite manejar los retrasos, y el método pause se utiliza para manejar las interrupciones.

Luego, creas objetos para referenciar al botón pulsador, al sensor de movimiento PIR y a la cámara.

Luego, inicializas la cámara con camera.start_preview(). Dependiendo de cómo esté orientada tu cámara, es posible que también necesites girarla 180 grados para que no tome las fotos al revés.

Conclusión

Usar cámaras con el Raspberry Pi es una tarea sencilla y se puede aplicar a una amplia variedad de proyectos. Las bibliotecas picamera y gpiozero te brindan una forma fácil de controlar la cámara y los GPIO con el Raspberry Pi.

Esperamos que hayas encontrado útil este proyecto. Si deseas explorar más proyectos con cámaras y Raspberry Pi, te recomendamos echar un vistazo a nuestros otros proyectos disponibles en nuestro libro «20 Proyectos Fáciles Raspberry Pi».


2 comentarios en «Detector de movimiento Raspberry Pi con grabación de fotografías»

Deja un comentario