Tabla de contenido:

Sistema de seguridad láser Raspberry Pi: 13 pasos (con imágenes)
Sistema de seguridad láser Raspberry Pi: 13 pasos (con imágenes)

Video: Sistema de seguridad láser Raspberry Pi: 13 pasos (con imágenes)

Video: Sistema de seguridad láser Raspberry Pi: 13 pasos (con imágenes)
Video: TODO ESTO PUEDES HACER CON UNA RASPBERRY PI 😈💻 2024, Noviembre
Anonim
Image
Image
Imagen
Imagen

Gracias por revisar mi instructable. Al final de este instructivo, construirá el sistema de cable trampa láser raspberry pi con funcionalidad de alerta por correo electrónico que se muestra en el video.

Para completar este instructivo, deberá estar familiarizado con los circuitos generales y la soldadura, saber cómo usar una placa de pruebas y sentirse cómodo usando el terminal en el pi. Tener experiencia en Python también será útil.

Este proyecto consta de tres sistemas principales. La frambuesa pi, el circuito de cable trampa láser y una computadora de observación. Nuestro objetivo es usar el raspberry pi para detectar un cambio de voltaje en el circuito del cable trampa láser y luego alertar a una computadora de observación en forma de correo electrónico y transmisión de video.

Vamos a empezar.

Paso 1: redondear los componentes necesarios

Para completar este proyecto, necesitará los siguientes elementos.

  1. Al menos una Raspberry Pi operativa. En esta compilación utilicé un modelo Pi estilo B con raspbian wheezy. Estoy seguro de que este tutorial funcionará bien si está ejecutando raspbian jessie.
  2. Una fuente de alimentación externa para Raspberry Pi. Estaremos consumiendo una cantidad significativa de amperaje una vez que todo esto esté conectado. Pasé mucho tiempo diagnosticando una fuente de alimentación de mala calidad como mi fuente de problemas durante mi primera construcción. Asegúrese de tener una potencia robusta capaz de generar al menos 2 amperios.
  3. Un puntero láser barato. Encontré el mío junto a la caja registradora de una gasolinera. Si desea el láser exacto, puede encontrarlo aquí. La etiqueta dice 630-680 nm para la longitud de onda. Cualquiera que sea el láser que obtenga, determinará algunos de los otros componentes de la construcción. Así que asegúrese de que su etiqueta identifique su longitud de onda.
  4. Una cámara web estilo usb. Esta cámara web tiene un pie ajustable que le permite colocar la cámara de forma agradable. Descubrí que el cable USB que venía con la cámara web era demasiado corto para mi aplicación, así que encontré una extensión en monoprice.
  5. Algún tipo de kit de conexión para la Raspberry Pi para que pueda tener fácil acceso a los pines del procesador.

    Imagen
    Imagen
    Imagen
    Imagen
  6. Una placa de pruebas.
  7. Un soldador.
  8. Cables de puente para la placa de pruebas.
  9. Componentes del circuito. Multiplique por la cantidad de cables de conexión que desee.

    • Un led de trabajo
    • Una resistencia de 100 ohmios
    • Una resistencia de 1k
    • Una resistencia de 10k
    • Una resistencia de 200k Realmente, cualquier resistencia grande servirá. Lo probé con una resistencia de 1 M y funcionó bien. FYI 10k era demasiado pequeño.
    • Un transistor PNP PN: 2N4403-APCT-ND
    • Un fotodiodo (haga coincidir esto con la longitud de onda de su láser) PN: PDB-C142-ND

Adjuntaré los archivos kicad para la placa de circuito, pero no repasaré la fabricación de la placa en este instructivo.

A lo largo del curso de este proyecto, encontré las siguientes herramientas opcionales útiles:

  1. Instalando sinergia en el raspberry pi. En caso de que no esté familiarizado, este software le permitirá controlar el mouse y el teclado de la raspberry pi con otra computadora. Esto es bueno si eres como yo y te sientes más cómodo en una computadora diferente. Además, este es un software que todo el mundo debería tener.
  2. Un concentrador USB. Para cada cámara web que desee utilizar, necesitará un puerto.
  3. Medidor de voltaje u osciloscopio si lo tiene.
  4. Usando MobaXterm para controlar el raspberry pi y manipular archivos a través de ssh. Es imprescindible para cualquier persona que se haya elevado en las ventanas. Vea este tutorial para configurar su uso.

Paso 2: Pon en marcha el Pi

  • Imagen
    Imagen

    El pi con componentes mínimos adjuntos

  • Antes de que podamos disparar cualquier láser, hay varias capas de software que deben construirse. Para tener la mejor oportunidad de éxito, es una buena práctica comenzar con una pizarra limpia. Para hacer esto, desconecte cualquier elemento innecesario del Pi. Esto reducirá las posibilidades de tener interferencias de un dispositivo conectado.

    A continuación, asegúrese de que su Raspberry Pi esté funcionando con el software más reciente ingresando lo siguiente en la terminal

    sudo apt-get update

    Con la frambuesa pi actualizada, es hora de dar el siguiente paso

    Paso 3: cree el circuito de detección láser

    Coloque los componentes en la placa de pruebas como se muestra. Encienda la placa de pruebas utilizando la salida de 5v del pi o una fuente de alimentación de sobremesa. En la figura 1, el suministro de 5v está conectado al riel positivo de la placa de pruebas en la parte inferior izquierda de la imagen y al suelo en la parte superior izquierda. Este circuito usa el fotodiodo como interruptor para activar el transistor. El transistor convierte el pequeño cambio de voltaje en el fotodiodo en una señal algo digital que el pi puede leer. Para todos los pasos posteriores, el punto entre los 100 ohmios y el led de señal será el lugar donde muestreemos el circuito con el pi.

    • Imagen
      Imagen

      Fig 1: Diseño de la placa de pruebas del circuito en la parte superior

    • Imagen
      Imagen

      Fig 2: Vista alternativa del diseño de la placa de pruebas del circuito

    Si desea una apariencia más limpia, adjunté los archivos kicad para la placa que se muestra a continuación.

    • Imagen
      Imagen

      Fig 3: Vista superior de la placa del sensor

    • Imagen
      Imagen

      Fig 4: Placa de sensor ISO

    • Paso 4: Modifique el láser para alimentación externa

      En los siguientes pasos, construirá el conjunto del puntero láser.

      - Desmontar el puntero láser. Al hacerlo, observe la orientación de los terminales de la batería con respecto al emisor láser.- A continuación, desolde el resorte de conexión de la batería y el pulsador momentáneo del láser.- Suelde un trozo de cable entre los terminales donde estaba el botón. Ahora, cuando se suministre energía al láser, se encenderá automáticamente.- Ahora suelde los cables positivo y negativo al láser. Si está utilizando el mismo láser de la lista de piezas, puede utilizar la siguiente imagen para ver los puntos de soldadura. Si no es así, es posible que deba buscar los puntos de soldadura usted mismo. Puede utilizar la orientación de la batería como una pista para el cable positivo o negativo. Para encontrar el último punto de soldadura, puede usar una fuente de alimentación de 5v y sondear el circuito con dos cables de prueba. Cuando haya creado el circuito adecuado, habrá encontrado el punto de soldadura y el láser se encenderá.

      • Imagen
        Imagen

        El cable naranja reemplaza el botón pulsador momentáneo

      • Imagen
        Imagen

        Mostrar las pistas positivas y negativas

      - El paso final es hacer un poste de montaje direccional para el láser para que pueda ajustarse fácilmente para apuntar al receptáculo del láser. He descubierto que la mayoría de los kits de lego bionicle son una excelente fuente de rótulas baratas. Pegue una pieza de la rótula al puntero láser con superpegamento. Ahora puede montar la junta de enchufe en cualquier superficie y encajar el láser.

      • Imagen
        Imagen

        Rótula

      • Imagen
        Imagen

        Junta de enchufe

      • Imagen
        Imagen

        Montaje de bola y casquillo

      • Paso 5: Encienda el láser y pruebe el circuito de detección

        Conecta el láser a tu protoboard. El positivo deberá estar conectado a 5v y conectar a tierra el cable negativo. Si el láser se enciende muy bien, de lo contrario, verifique que tenga el voltaje adecuado con un multímetro. Si aún no funciona, intente intercambiar los cables en caso de que lo haya conectado al revés. Si aún no funciona, es posible que no haya soldado a las almohadillas correctas, vuelva al último paso.

        • Imagen
          Imagen

          Trabajando con láser con un rayo saludable

        Una vez que tenga el rayo láser, es hora de probar el circuito de detección. Apunte el láser al fotodiodo. El LED debe apagarse para indicar que el rayo está activo. Mueva la mano a través del haz y el LED debería encenderse indicando un viaje.

        • Imagen
          Imagen

          El haz no está roto y el led está apagado

        • Imagen
          Imagen

          El intruso rompe el haz provocando que el led se encienda

        • Paso 6: conecte su cámara web y pruebe su funcionalidad

          Conecte su cámara web al puerto USB. Para transmitir el video, necesitamos obtener la utilidad mjpg-streamer. Aquí hay un gran tutorial sobre cómo hacer precisamente eso. Una vez que haya instalado correctamente mjpg-streamer. Comience a transmitir video ingresando el siguiente comando en la terminal.

          cd / donde instaló mjpg-streamer / mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y / dev / video0" -o "./output_http.so -w./www -p 8081"

          Este comando configurará una transmisión en el puerto 8081 usando la fuente video0. Si desea varias cámaras web, ingrese el comando anterior nuevamente, pero cambie video0 a video1 y 8081 a 8082. He transmitido hasta 3 cámaras web de esta manera y el pi no se estaba sobrecargando.

          Pruebe que la conexión funciona abriendo un navegador en otra computadora e ingrese ip-address-of-pi: 8081 o en el pi puede ingresar localhost: 8081. Si no conoces tu ip del pi ingresa lo siguiente en la terminal

          ifconfig

          Si todo está funcionando, debería ver la página de inicio de mpg-streamer. Haga clic en la pestaña de transmisión para ver la transmisión de su cámara web. A continuación se muestra una captura de pantalla de la interfaz.

          • Imagen
            Imagen

            salida de muestra mjpg-streamer

          Al hacer este tutorial por segunda vez, pude acceder a la página de inicio de mjpg-streamer pero no vi ninguna transmisión. Para solucionar esto, leí esta publicación (el enlace ahora está roto), específicamente la parte sobre el formato de píxel YUYV, si encuentra una secuencia en blanco, debe consultarla también.

          Paso 7: intermedio

          Bien, en este punto deberíamos tener nuestra Raspberry Pi en funcionamiento. Nuestro láser ha sido modificado para alimentación externa. Nuestro circuito de detección se ha construido y usted ha confirmado que cuando el rayo láser incide en el fotodiodo el led se apaga y cuando se interrumpe el rayo el led debe encenderse. Por último, debe tener su cámara web conectada y funcionalmente transmitiendo.

          Ahora es el momento de ponerlo todo junto. Comencemos de manera simple tratando de detectar el disparo del rayo láser con el software.

          Conecte el circuito de detección a la placa de pruebas como se muestra. Asegúrese de conectar el cable de señal del sensor al pin 25 como preparación para el siguiente paso. La resistencia de extracción no es opcional. Tenía un 10k por ahí, pero cualquier resistencia debería servir.

          • Imagen
            Imagen

            Diseño de tablero con PiCobler

          • Paso 8: Monitoree el láser con software

            Escribamos un programa corto para escuchar la señal láser y publiquemos esa salida en el terminal. Puede descargar el código como adjunto.

            Probablemente necesitará instalar las dependencias para este script. Python y el módulo gpio. Para instalar estos ingrese

            sudo apt-get install python-rpi.gpio python3-rpi.gpio

            Una vez que tenga una instalación exitosa de Python, descargue el script de Python adjunto llamado read_pin.py y ejecute

            cd / directorio donde pones el archivo / chmod 777 read_pin.py

            El comando chmod le dará permiso al script para ejecutarse. Luego, pruebe que todo está bien ejecutando

            sudo python3 read_pin.py

            Si todo va bien, debería ver una salida de consola como se muestra a continuación. Para salir de la secuencia de comandos de Python, ingrese

            Ctrl-C

          • Imagen
            Imagen

            Salida de consola correcta (se muestra usando MobaXterm)

          Mueva su mano frente al rayo láser y debería ver una salida en la consola que le alerta que el rayo se ha roto. Siéntase libre de jugar con el guión para que su sistema funcione de diferentes maneras.

          Paso 9: cree una página web para mostrar su transmisión

          Ahora necesitamos configurar una interfaz de visualización de cámara web. Para este paso, deberá instalar el servidor web apache. Hay muchos tutoriales sobre cómo configurar uno. Pero aquí está la lista corta con una configuración mínima.

          sudo apt-get install apache2

          una vez instalado, debería poder escribir en su navegador en el raspberry pi

          localhost

          Debería ver la página de bienvenida de apache. Si es la primera vez que configura un servidor web, es probable que desee configurar su pi para que tenga una dirección IP estática para que su enrutador siempre asigne la IP adecuada si realiza un ciclo de energía. Si desea ver su sistema de seguridad desde otra ubicación, deberá configurar el reenvío de puertos en su enrutador. Ha pasado un tiempo, pero también creo que necesitará reenviar cualquier puerto que tenga una cámara web. Hay muchos tutoriales que cubren estos procedimientos. Tenga en cuenta que cualquiera puede ver su cámara web si elige configurar el reenvío de puertos en su enrutador.

          Los archivos adjuntos son páginas web de muestra que puede utilizar para configurar su sitio web. Deberá cambiar la extensión del archivo en el archivo html ya que no me dejarían cargarlo. A continuación, coloque los archivos en su carpeta www llamados en su archivo de configuración de apache. La ubicación predeterminada es

          cd / var / www

          Si desea cambiar la ubicación donde el servidor web busca sus archivos html, puede editar el archivo habilitado de su sitio ingresando

          sudo nano / etc / apache2 / sites-enabled / 000-default

          Cambie cualquier instancia de / var / www / a la ubicación que desee. Pongo el mío en / home / pi / Desktop / www /

          Una vez que tenga los archivos html en la carpeta web, ingrese localhost en el navegador o la dirección IP del pi desde otra computadora. Debería ver algo como esto.

          • Imagen
            Imagen

            Captura de pantalla de los archivos adjuntos en funcionamiento

          ¡DULCE!

          Paso 10: configurar alertas por correo electrónico

          ¡Están pasando cosas buenas! Vamos a presionar nuestra suerte intentando enviar una alerta por correo electrónico desde el pi a una dirección de correo electrónico predefinida. La secuencia de comandos de Python adjunta creará su correo electrónico que desea enviar, se conectará a un proveedor de correo electrónico como gmail y enviará el correo electrónico utilizando el proveedor de correo electrónico. Esto se logra usando el paquete smtp de python. Le sugiero que cree una dirección de correo electrónico ficticia solo para su sistema de seguridad, ya que tendremos que reducir la seguridad de su cuenta de gmail para que el paquete smtp funcione.

          Tendrá que modificar el script en varios lugares para lograr una transmisión exitosa. Está muy comentado y producirá muchas salidas en el terminal para su conveniencia.

          Las cosas que necesitarás cambiar serán

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • send_email_username = "su nombre de usuario de correo electrónico"
          • send_email_password = "su contraseña"

          your_ip_optional_port probablemente estará vacío a menos que su servidor apache se esté ejecutando en un puerto que no sea el predeterminado 80. Ya tenía un servidor ejecutándose en 80, así que configuré mi pi para que se ejecutara en 8080. port_to_camera será el puerto que especifique su cámara seguir usando mjpeg streamer.

          Una vez que haya cambiado estas variables al comienzo del script, ejecute el programa ingresando lo siguiente en la terminal.

          cd / carpeta donde pones el script /

          sudo python3 send_mail.py

          Si las estrellas están alineadas correctamente y todas las variables son correctas, debería recibir un correo electrónico similar al que se muestra a continuación.

          • Imagen
            Imagen

            Captura de pantalla de los archivos adjuntos en funcionamiento

          Hay muchos lugares donde este script puede fallar. No se frustre si no funciona la primera vez. Utilice los puntos de depuración del script para delimitar las áreas problemáticas y luego concéntrese en un problema a la vez.

          Paso 11: Active el script de correo electrónico cuando se active el láser

          Ahora que el pi puede enviar correos electrónicos, automaticémoslo para que cada vez que se dispare el láser recibamos un correo electrónico. Descargue el archivo adjunto que es una versión modificada de read_pin.py que contiene una nueva función para ejecutar el script de correo. La principal línea adicional es la siguiente

          sm_pid = os.spawnlp (os. P_NOWAIT, "/ usr / bin / python3", "python3", "/home/pi/Desktop/security/send_mail.py")

          Esta línea lanzará la secuencia de comandos de envío de correo en paralelo con la secuencia de comandos de detección láser. Esto es deseable porque la secuencia de comandos de envío de correo tarda unos segundos en completarse y bloquearía la ejecución de la secuencia de comandos de detección láser hasta que se envíe el correo electrónico. Esto no es un problema para un solo sistema de cámara, pero si tuviera varias cámaras, querría detectar un disparo láser en la cámara 1 incluso si la cámara 2 ha activado un evento de correo electrónico. La variable sm_pid contendrá el pid del proceso que se inicia con este comando. Verificamos esta identificación si el disparador de correo electrónico se llama nuevamente si existe, el correo electrónico todavía se está enviando, por lo que ignoramos el evento. Si no existe, es probable que se trate de un nuevo evento y se envía un correo electrónico.

          Prueba que todo funciona ejecutando

          cd / directorio donde pones el archivo /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Cuando rompa el rayo láser, debería recibir un correo electrónico con la instantánea tomada desde la cámara web.

          Paso 12: Cree una secuencia de comandos maestra para iniciar el sistema

          En este punto, el proyecto está casi terminado. Un último paso es simplificar el inicio del sistema con un último script. Lanzará todos los subprogramas y configurará la cámara web con un script. El archivo adjunto se puede iniciar al inicio editando su archivo /etc/rc.local. Debe cambiar la extensión del archivo y es posible que deba editar el script para incluir las rutas adecuadas si coloca los scripts en una ubicación diferente.

          Paso 13: Conclusión

          Bueno, eso es todo. ¡Espero que hayas disfrutado de este instructivo! Hágame saber en los comentarios si tiene alguna pregunta o necesita información más detallada en cualquier área. ¡Sigue jugando!

          • Imagen
            Imagen

    Recomendado: