Tabla de contenido:
- Paso 1: Configuración de su Pi
- Paso 2: SSH en su PI
- Paso 3: envíe su dirección IP por correo electrónico en el arranque
- Paso 4: Instalación y configuración de Motion
- Paso 5: Enviar videos por correo electrónico desde Motion on Detection
- Paso 6: Solución de problemas y fuentes
Video: Cámara de detección de movimiento Raspberry Pi 3 con transmisión en vivo: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Introducción
En este proyecto, aprenderá a construir una cámara de detección de movimiento que podrá usar como cámara trampa, monitor para mascotas / bebés, cámara de seguridad y mucho más.
Este proyecto está organizado en varios pasos:
- Introducción
- Configurando tu Pi
- SSH en tu Pi
- Enviar por correo electrónico su dirección IP al arrancar
- Instalación y configuración de Motion
- Enviar videos por correo electrónico desde Motion al detectarlo
- Solución de problemas y fuentes
Lo que necesitarás:
- Un modelo Raspberry Pi 3 b ~~ $ 35
- Tarjeta Micro SD de 8 gb ~~ $ 10
- Cámara web USB ~~ $ 20 (este proyecto utilizó una cámara web Logitech HD c270)
- cable micro usb ~~ $ 5
- cualquiera:
- paquete de batería recargable de 5 voltios (batería de respaldo del teléfono), esto hace que su proyecto sea inalámbrico ~~ $ 20
- o
- adaptador de pared usb ~~ $ 5
- Una conexión WiFi
A qué necesitará acceder para la configuración:
- Un monitor
- Un mouse y un teclado
- Una computadora con una ranura para tarjetas SD
- Un convertidor de tarjeta Micro SD a SD (debe venir con su tarjeta micro SD)
Paso 1: Configuración de su Pi
Ahora configuremos tu Pi
Para comenzar, asegúrese de tener todos los elementos necesarios del último paso. Luego, siga los pasos en el sitio web de Raspberry Pi para instalar Raspbian Jessie en su tarjeta Microsd, que se encuentran aquí.
Una vez que tenga Raspbian instalado en su Pi, es hora de configurar algunas funciones básicas.
Wifi
El primer paso para aprovechar al máximo su Pi es conectarlo a Internet. Es posible que ya haya completado este paso ubicando el símbolo de WiFi en la esquina superior derecha de la pantalla principal de su Pi e iniciando sesión allí, o haciendo lo mismo antes de instalar Raspbian en el último paso. Si no puede iniciar sesión en su red WiFi desde la interfaz de escritorio de su Pi, puede seguir las instrucciones aquí para configurar WiFi a través de la línea de comandos.
SSH
Una herramienta muy útil disponible para usted cuando usa su Pi es la opción de emitir comandos a su Pi en lo que se conoce como configuración sin cabeza. Mediante el uso de Secure SHell, o SSH, puede controlar su Pi de forma remota desde una computadora. Con este método, todo lo que necesita para editar su Pi es una fuente de alimentación para mantenerla encendida, ¡no más monitor ni teclado!
Paso 2: SSH en su PI
La conexión SSH en su Raspberry Pi es fácil y muy útil, ya que el proceso le permite emitir comandos a su Pi desde cualquier computadora con nada más que una conexión WiFi.
Para SSH en su Pi, debe seguir estos 3 sencillos pasos.
Primero, debe habilitar SSH en su Pi. Para hacer esto, abra una ventana de comando en su Pi y escriba:
sudo raspi-config
Este comando le permite ingresar a un menú de configuración. desde allí, querrá usar las teclas de flecha, tabulación e ingresar para ir primero a las opciones de interfaz, luego para habilitar SSH, así como la cámara, luego salir y reiniciar el pi.
A continuación, deberá encontrar la dirección IP de su Pi. En una terminal de comando, escriba:
sudo ifconfig
Y su dirección IP debe estar en la sección wlan0 que aparece, justo debajo de Link encap: ethernet. En la imagen de demostración anterior, la dirección IP es 192.168.1.10.
Por último, deberá abrir la aplicación de terminal incorporada en una mac o buscar y seguir las instrucciones para una aplicación ssh de terceros para Windows. En la aplicación Terminal, escriba:
ssh pi @ SU DIRECCIÓN IP
Si no ha cambiado la contraseña mientras estaba en Raspi-config, entonces su contraseña para ingresar cuando se le solicite será la contraseña predeterminada: frambuesa.
A partir de ahí, ¡deberías estar listo!
Paso 3: envíe su dirección IP por correo electrónico en el arranque
En este paso nos centraremos en cómo acceder a su Raspberry Pi, independientemente de la red en la que se encuentre. Dependiendo de la red, la dirección IP de Pi cambia. Y si no tiene una configuración de monitor, deberá ingresar a la Pi para activar el protocolo de detección de movimiento, cambiar las preferencias de movimiento o acceder a cualquier otra cosa en el dispositivo. Para resolver este problema, escribiremos un script en Python que nos envíe por correo electrónico la dirección IP actual de la IP de Pi al iniciar. La secuencia de comandos de Python es la siguiente y se almacenó en un directorio marcado como "fondo".
#start en el directorio de inicio
cd ~
#crear carpeta de fondo
fondo mkdir
#crear secuencia de comandos de Python
sudo nano emailip.py
#escribir en emailip.py
importar socket
s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)
s.connect (("8.8.8.8", 80))
print (s.getsockname () [0]) x = s.getsockname () [0] s.close ()
importar smtplib
desde el correo electrónico MIMEMultipart importar MIMEMultipart
desde el correo electrónico. MIMEText importar MIMEText
fromaddr = "SU DIRECCIÓN"
toaddr = "DIRECCIÓN DE RECEPCIÓN"
msg = MIMEMultipart ()
msg ['Desde'] = fromaddr
msg ['Para'] = toaddr
msg ['Asunto'] = "Dirección IP"
cuerpo = xmsg.attach (MIMEText (cuerpo, 'plano'))
servidor = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, "SU CONTRASEÑA")
texto = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
#entonces esto lo hace al reiniciar
sudo nano /etc/rc.local
#entrar en /etc/rc.local
tiempo ! / sbin / ifconfig wlan0 | grep -q 'dirección inet: [0-9]';
dormir 3
hecho
_IP = $ (nombre de host -I) || cierto
si ["$ _IP"]; luego
printf "Mi dirección IP es% s / n" "$ _IP"
python /home/pi/Background/emailip.py &
fi
salir 0
#y tu estas listo
Paso 4: Instalación y configuración de Motion
#update pi
sudo apt-get update
sudo apt-get upgrade
#descargar
sudo apt-get install motion
# ahora edite este archivo con los siguientes cambios
sudo nano /etc/motion/motion.conf
#para establecer un estándar para este tutorial, cambie
#################
demonio en
stream_localhost desactivado
webcontrol_localhost desactivado
ffmpeg_output_movies en
target_dir / var / lib / motion
##################
#opciones de transmisión del navegador web local
##################
stream_maxrate 100 # Esto permitirá la transmisión en tiempo real, pero requiere más ancho de banda y recursos
velocidad de fotogramas 60 # Esto permitirá capturar 60 fotogramas por segundo # cuanto más alto sea, más lento será el procesamiento del video
ancho 640 # Esto cambia el ancho de la imagen mostrada
altura 480 # Esto cambia la altura de la imagen mostrada
##################
# envío de ajustes de video por correo electrónico en… / motion.conf
##################
# eliminar el ";" delante de la línea, el punto y coma comenta la salida de la línea
on_event_start python /home/pi/background/motionalert.py% f
on_movie_end python /home/pi/background/motionvid.py% f
##################
#tecticos
##################
#choices descritas en el archivo
imágenes_de_salida localizar_estilo_movimiento
##################
#entonces cambia
sudo nano / etc / default / motion
#decir
start_motion_daemon = sí
#por último, comienza el B **** up
sudo service motion start
# puedes cambiar el comando a "detener" o "reiniciar"
Paso 5: Enviar videos por correo electrónico desde Motion on Detection
Correo electrónico cuando se detecta movimiento:
#comience en casa
dircd ~
#create secuencia de comandos de Python de alerta de movimiento
sudo nano /home/pi/background/motionalert.py
#escribir
importar smtplib
desde fecha y hora importar fecha y hora
desde el correo electrónico MIMEMultipart importar MIMEMultipart
desde el correo electrónico. MIMEText importar MIMEText
fromaddr = "TU DIRECCIÓN"
toaddr = "RECIEVINGADDRESS"
msg = MIMEMultipart ()
msg ['Desde'] = fromaddr
msg ['Para'] = toaddr
msg ['Subject'] = "Movimiento detectado"
body = 'Se ha detectado un movimiento. / nTiempo:% s'% str (datetime.now ())
msg.attach (MIMEText (cuerpo, 'plano'))
servidor = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, "SU CONTRASEÑA")
texto = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
Enviar video por correo electrónico del movimiento cuando se guarda el video:
#comience en homedircd ~
#create scripts de python de video en movimientoudo nano /home/pi/background/motionvid.py
importar smtplib
desde el correo electrónico MIMEMultipart importar MIMEMultipart
desde el correo electrónico. MIMEText importar MIMEText
desde el correo electrónico MIMEBase importar MIMEBase
desde codificadores de importación de correo electrónico
fromaddr = "SU CORREO ELECTRÓNICO"
toaddr = "DIRECCIÓN DE CORREO ELECTRÓNICO A LA QUE ENVIÓ"
msg = MIMEMultipart ()
msg ['Desde'] = fromaddr
msg ['Para'] = toaddr
msg ['Subject'] = "Motion Cam activada"
body = "Video de movimiento detectado"
msg.attach (MIMEText (cuerpo, 'plano'))
importar sistema operativo
rootpath = '/ var / lib / motion'
filelist = [os.path.join (rootpath, f) para f en os.listdir (rootpath)]
filelist = [f para f en filelist si os.path.isfile (f)]
más nuevo = max (lista de archivos, clave = lambda x: os.stat (x).st_mtime)
nombre de archivo = más nuevo
importar sistema operativo
rootpath = '/ var / lib / motion'
filelist = [os.path.join (rootpath, f) para f en os.listdir (rootpath)]
filelist = [f para f en filelist si os.path.isfile (f)]
más nuevo = max (lista de archivos, clave = lambda x: os.stat (x).st_mtime)
adjunto = abierto (más reciente, "rb")
part = MIMEBase ('aplicación', 'flujo de octetos')
part.set_payload ((archivo adjunto).read ())
encoders.encode_base64 (parte)
part.add_header ('Content-Disposition', "adjunto; nombre de archivo =% s"% nombre de archivo)
msg.attach (parte)
servidor = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, "SU CONTRASEÑA")
texto = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
Paso 6: Solución de problemas y fuentes
Solución de problemas:
Debido a que este proyecto tiene múltiples etapas, hay varios puntos en los que las cosas pueden salir mal. A continuación se muestran algunos de los posibles errores que podrían ocurrir y cómo solucionarlos.
- Al configurar su pi para que le envíe un correo electrónico con su dirección IP actual, es crucial editar el archivo rc.local como se mostró anteriormente porque esto permite una pequeña demora antes de que el programa se active después de reiniciar. De lo contrario, el pi aún no estará conectado a wifi y el correo electrónico no se enviará.
- Al editar el archivo motion.conf, asegúrese de eliminar el punto y coma delante de ciertos parámetros. El punto y coma suprime una acción determinada; de lo contrario, el cambio no surtirá efecto.
- El archivo motion.conf está muy bien organizado y detallado. Siéntase libre de cambiar la configuración a su gusto, pero comprenda que pueden afectar el éxito del sistema de captura de movimiento.
- Después de configurar la alerta por correo electrónico y las opciones de video por correo electrónico, es importante tener en cuenta que el correo electrónico del video detectado por movimiento tardará un poco más en enviarse que el correo electrónico de alerta inicial. Esto se debe a que el video concluye un par de segundos después de que ya no se detecta movimiento, y porque el archivo adjunto del correo electrónico podría ser lo suficientemente grande como para requerir un par de minutos para recibirlo. En algunos casos, si el movimiento se mantiene durante un período de tiempo muy largo, puede ser demasiado grande para enviarlo. Debido a esto, siempre es una buena idea verificar la transmisión en vivo después de recibir el correo electrónico de alerta inicial.
¿Por qué Motion ?:
Cuando nos embarcamos por primera vez en este proyecto, consideramos varios recursos diferentes. Primero, consideramos usar la PiCam, que es una unidad de cámara construida específicamente para la raspberry pi. La PiCam es ciertamente un dispositivo capaz y tiene muchas aplicaciones, pero se limita a usar programas que están diseñados específicamente para ella y es relativamente costosa en comparación con las cámaras web multipropósito baratas. Entonces, para que este proyecto sea accesible para una audiencia más amplia, decidimos usar una cámara web USB común. El siguiente problema fue qué software incorporar. Inicialmente consideramos OpenCV, que es un software gratuito que permite muchos tipos diferentes de proyectos de imágenes y visión por computadora. Uno de los problemas aquí es que OpenCV es un archivo masivo que ocupa mucha memoria y mucho tiempo configurado. La configuración también tiene varias etapas, lo que deja aún más margen de error. Descubrimos que para nuestro proyecto específico, Motion era más simple de configurar y poner en funcionamiento, pero mucho más robusto en su ejecución.
Fuentes
Fuentes de código:
www.techradar.com/how-to/computing/how-to-b…
pimylifeup.com/raspberry-pi-webcam-server/
www.pyimagesearch.com/2015/06/01/home-surve…
naelshiab.com/tutorial-send-email-python/
www.raspberrypi.org/documentation/linux/us…
learn.adafruit.com/adafruits-raspberry-pi-…
learn.adafruit.com/adafruits-raspberry-pi-…
pinout.xyz/pinout/i2c
Créditos fotográficos:
Caracol SSH:
Logotipo de correo:
Cámara web Logitech:
Ventana SSH:
Recomendado:
Cámara de correo electrónico Arduino Security 3G / GPRS con detección de movimiento: 4 pasos
Cámara de correo electrónico Arduino Security 3G / GPRS con detección de movimiento: En este manual, me gustaría contarle acerca de una versión de cómo construir un sistema de vigilancia de seguridad con un detector de movimiento y enviar fotos al buzón a través del escudo 3G / GPRS. otras instrucciones: instrucción 1 e instrucción
La cámara web más sencilla como cámara de seguridad: detección de movimiento e imágenes enviadas por correo electrónico: 4 pasos
Cámara web más sencilla como cámara de seguridad: detección de movimiento e imágenes enviadas por correo electrónico: ya no es necesario descargar o configurar el software para obtener imágenes de detección de movimiento desde su cámara web a su correo electrónico; simplemente use su navegador. Utilice un navegador Firefox, Chrome, Edge u Opera actualizado en Windows, Mac o Android para capturar la imagen
Transmisión de audio y transmisión de video con Raspberry Pi 3: 6 pasos
Transmisión de audio y transmisión de video usando Raspberry Pi 3 .: La principal utilidad de este proyecto es transmitir audio a Raspberry Pi 3 desde cualquier dispositivo conectado a la red WiFi común y adquirir video de Raspberry Pi 3 a cualquier dispositivo conectado a una red WiFi común
Guardián V1.0 --- Actualización de la cámara de mirilla de la puerta con Arduino (funciones de grabación por detección de movimiento y descarga eléctrica): 5 pasos
Guardián V1.0 ||| Actualización de la cámara de mirilla de puerta con Arduino (funciones de grabación por detección de movimiento y descarga eléctrica): he pedido una cámara de mirilla, pero cuando la uso, me di cuenta de que no hay una función de grabación automática (activada por detección de movimiento). Luego comencé a investigar cómo funciona. Para grabar un video, debes 1- mantener presionado el botón de encendido casi 2 segundos
Salida controlada por movimiento: desde una luz de detección de movimiento: 6 pasos
Salida controlada por movimiento: desde una luz de detección de movimiento: Imagina que eres un truco o trato que va a la casa más aterradora de la cuadra. Después de pasar todos los demonios, fantasmas y cementerios, finalmente llegas al último camino. ¡Puedes ver los dulces en un tazón delante de ti! Pero luego, de repente, un gho