Un hogar más seguro con un sistema de detección de movimiento fácil de construir
Pocas cosas son tan universales e importantes como sentirse seguro en casa. Cualquier perturbación de este sentimiento puede ser suficiente para tener un impacto negativo en toda tu vida. Por eso, independientemente de cuán reales sean las amenazas, priorizamos nuestra seguridad y tratamos de reducir los riesgos tanto como sea posible, una realidad que se pone de relieve por el hecho de que se estima que el mercado de la seguridad del hogar está valorado en alrededor de 56,9 mil millones USD .
Un contribuyente importante al crecimiento de este mercado ha sido el surgimiento de IoT , que, junto con la mayor disponibilidad de tecnologías de conectividad confiables, ha brindado a los propietarios la oportunidad de obtener todo tipo de dispositivos que graban video, alarman a los usuarios o cierran puertas. entre otros beneficios.
Y aunque estos dispositivos son asequibles y muy fáciles de usar (lo que resulta en una fácil instalación y uso), aquí en Ubidots somos fabricantes, razón por la cual nuestro primer instinto suele ser buscar las piezas y construir los dispositivos que necesitamos con nosotros mismos. manos.
Ese fue el caso de Leonardo, uno de nuestros ingenieros de Customer Success, quien recientemente enfrentó una situación en la que la seguridad de su casa y su familia estaba potencialmente en riesgo.
Para resumir, algunas personas de aspecto sospechoso fueron vistas varias veces deambulando por su vecindario y, aunque todavía no había sucedido nada, había consenso en la comunidad sobre lo incómodos que se sentían.
En el caso de Leonardo, esta situación era aún más estresante porque viaja con su familia la mayoría de los fines de semana, dejando la casa vacía y dándoles a estas personas (u otras) una oportunidad ideal para entrar ilegalmente.
Con todo esto en mente, llegó el momento de ponerse manos a la obra… Después de evaluar todas las herramientas y recursos que ya tenía a su disposición, Leonardo decidió hacer un sistema de detección de movimiento que toma una fotografía cada vez que se activa, ya que, de De todas las demás opciones, esta fue la más efectiva para su problema.
El sistema que imaginó tenía las ventajas de ser a la vez sutil y extremadamente eficiente, ya que no tendría que monitorear las imágenes constantemente (dado que lo alertaría de cada nueva imagen/movimiento) y siempre podría llamar a la policía en cualquier momento. el sistema fotografió algo que pensó que era problemático, independientemente de su ubicación.
El sistema funciona mediante el uso de un sensor infrarrojo pasivo que, al registrar un movimiento, activa un ESP32-CAM para tomar una fotografía. Luego, la imagen se envía a Google Drive y su ID de archivo , ID de carpeta y nombre de archivo se envían a Ubidots donde las imágenes se pueden visualizar en un dashboard . Ubidots también genera las alertas que Leonardo recibe en su teléfono cada vez que se toma una fotografía, lo que facilita estar al tanto de cualquier novedad.
Construyendo el sistema de detección de movimiento, paso a paso
Hardware utilizado en el proyecto
- Sensor de movimiento PIR (1)
- Placa de desarrollo del módulo de cámara M5Stack ESP32 (1)
- Conexión básica SparkFun FTDI - 3,3 V (1)
- Cables de puente (1)
Software/herramientas en la nube utilizadas en el proyecto
- Una cuenta activa Ubidots
- IDE de Arduino
- secuencia de comandos de Google
1. Conecte el sensor de movimiento PIR al ESP32-CAM
Con la ayuda de algunos cables de puente, conecte el sensor de movimiento PIR al ESP32-CAM siguiendo el esquema que se muestra en la imagen a continuación. Tenga en cuenta que puede cambiar el pinout dentro del código.
2. Programación del proyecto Google Script.
Para crear un nuevo proyecto de Google Script, siga estos pasos:
- Vaya al de Google Apps Script .
- Haga clic en el botón superior izquierdo “+ Nuevo proyecto” y cree un nuevo proyecto.
- Copie el código que se encuentra en este repositorio y péguelo en su proyecto de Google Script.
- Pon el token de tu Ubidots en la variable llamada " TOKEN ". De esta manera, el sistema enviará el ID de archivo , el ID de carpeta y el nombre de archivo dentro del contexto del punto en formato de cadena. Normalmente, el contexto se utiliza para almacenar cadenas en pares clave-valor.
const TOKEN = "TU-TOKEN";
Puede cambiar la etiqueta de variable y la etiqueta del dispositivo como desee. En dichos dispositivos y variables, almacenará el ID de archivo , el ID de carpeta y el nombre de archivo de la imagen tomada por el ESP32-CAM.
- Implemente su código y cambie los permisos del script para permitir que todos lo vean.
- Copie el ID que aparece en "ID de implementación" una vez que publique el script. Lo usaremos dentro del ESP32-CAM.
3. Programando su ESP32-CAM.
Hay muchos tutoriales en Internet sobre cómo programar el ESP32-CAM, por ejemplo este . Descarga el código respectivo de este repositorio y ábrelo en tu IDE de Arduino.
Sin embargo, se deben realizar algunos cambios en el código para que se ejecute correctamente en su ESP32-CAM.
- Coloque sus credenciales de red inalámbrica en los campos SSID y Contraseña.
const char* ssid = "SU-SSID"; const char* contraseña = "SU CONTRASEÑA";
- Pega el ID de tu Google Script en la siguiente variable.
String myScript = "/macros/s/SU-ID-URL/exec"; //Reemplazar solo "TU-URL-ID"
Finalmente, ejecute todo el código en su IDE de Arduino y actualice su ESP32-CAM.
4. Personaliza tu widget Ubidots
El widget de lienzo HTML le permite crear su propio widget personalizado. Haga clic aquí para obtener más información. Con el widget creado en los siguientes pasos, podrás ver las fotografías tomadas por el ESP32-CAM. Además, verás un desplegable con algunos registros de las imágenes que, si lo prefieres, puedes eliminar.
Ahora, creemos nuestro propio widget usando estos fragmentos de código:
- Vaya al menú desplegable "Datos" Ubidots en la barra de navegación, luego a " Dashboards " y finalmente seleccione el dashboard en el que trabajará.
- Haga clic en el botón “+” superior derecho en su dashboard .
- Seleccione la opción "Lienzo HTML".
- Copie los HTML , CSS y JavaScript y péguelos en el editor de código del widget.
- En el código JavaScript, coloca el token de tu Ubidots en la variable llamada " TOKEN ".
var TOKEN = 'TU-TOKEN';
- Verifique los permisos en la carpeta de Google Drive que contiene todas las imágenes. Tienes que permitir el acceso a “cualquiera que tenga el enlace”.
Nota importante: debe confirmar que las etiquetas de dispositivo y de variable establecidas en el proyecto de Google Script coincidan con las etiquetas de dispositivo y de variable establecidas en el código JavaScript.
5. Configure una alerta
Los eventos Ubidots le permiten activar notificaciones por correo electrónico, SMS, llamadas de voz e incluso webhooks en función de los datos de sus sensores. En este caso, usaremos los eventos para recibir correos electrónicos con las imágenes capturadas por el ESP32-CAM. Siga estos pasos.
- Vaya al menú desplegable "Datos" en la barra de navegación, luego a "Eventos".
- Haga clic en el botón “+” superior derecho y cree un nuevo evento.
- Configure su evento para que se active una vez que la variable reciba "1".
- Tenga en cuenta que Ubidots le permite utilizar campos personalizados dentro de las acciones de eventos. Por ejemplo, incluiremos la URL del archivo de imagen, que se almacena en el contexto del punto de datos. Para acceder al contexto, utilice esta notación:
Hola, el sistema ha detectado un extraño en: {{variable.last_value_timestamp}}
, verifique la imagen en el siguiente enlace: https://drive.google.com/file/d/ {{variable.last_value_context.fileID} }
/view?usp=compartir
En "ENTONCES acciones", establezca un cero en la variable para restablecer el activador del evento.
Y así, como Leonardo, puedes construir un sistema IoT simple pero eficaz que mejore la seguridad de tu hogar y aporte tranquilidad a tu vida.