Tabla de contenido:

Control remoto y vigilancia fotográfica a través de MQTT: 8 pasos
Control remoto y vigilancia fotográfica a través de MQTT: 8 pasos

Video: Control remoto y vigilancia fotográfica a través de MQTT: 8 pasos

Video: Control remoto y vigilancia fotográfica a través de MQTT: 8 pasos
Video: IoT con MQTT + Mosquitto + Python 2024, Noviembre
Anonim
Control remoto y vigilancia fotográfica a través de MQTT
Control remoto y vigilancia fotográfica a través de MQTT

Hola.

Hoy me gustaría hablar sobre cómo hacer un sistema de control y monitoreo remoto que se pueda usar, por ejemplo, para controlar puertas de garaje, iluminación, calefacción, control de presión, temperatura y muchos otros parámetros. Pero la característica principal de este sistema es que puede recibir fotos de forma remota desde un objeto remoto. Antes de comenzar la historia, un breve prefacio. Una vez quise hacer un sistema de vigilancia fotográfica usando una placa Arduino M0-SD compatible, una cámara VC0706 y un protector 3G / GPRS / GSM / GPS para Arduino. La placa compatible con Arduino M0-SD se eligió a partir de las condiciones de que es muy fácil de programar (al igual que el Arduino UNO), el voltaje de funcionamiento es de 3.3V; esto es muy conveniente para trabajar con la cámara VC0706, una gran cantidad de ROM y RAM, varios puertos el UART, un puerto virtual separado del USB, pero la principal ventaja es la presencia de un conector micro SD directamente en la placa (es muy conveniente almacenar grandes cantidades de datos, como imágenes).

El protector 3G / GPRS / GSM / GPS para Arduino es muy conveniente para usar con una placa Arduino M0-SD compatible. Hay varias bibliotecas en Internet, así como muchos ejemplos para trabajar con este escudo. La tasa de transferencia de datos (3G) es mucho más alta que la de los escudos GPRS convencionales (especialmente conveniente para transmitir imágenes). La disponibilidad del módulo GPS es una ventaja adicional.

Elegí una tarifa de bajo costo de un operador celular para la transmisión de datos (fotos) a través de Internet. Pero surgió la pregunta: ¿cómo transferir datos? MMS? FTP? ¿Cómo recibir una notificación sobre la recepción de datos (foto)? Como resultado, tomé la decisión de enviar datos (fotos) al correo electrónico y ver cartas a través de la aplicación instalada en un teléfono móvil. ¡Resultó muy conveniente!:-) El proyecto terminado se puede ver en este enlace.

También hay un proyecto similar para Arduino UNO por referencia.

Entonces decidí ampliar la funcionalidad de mi dispositivo. Por ejemplo, agregue la capacidad de controlar LED (aunque en realidad las posibilidades son mucho más amplias). El correo electrónico para esto no es muy adecuado. La opción de SMS es cara e incómoda. Y luego me enteré del MQTT. No describiré lo que es. Permítanme decirles: ¡Esto es algo realmente genial!:-) Con la ayuda de MQTT, puede intercambiar no solo mensajes, sino también archivos binarios (imágenes). En la aplicación para el teléfono, puede crear fácilmente su propia interfaz.

Busqué ejemplos de implementación del protocolo MQTT para mi escudo 3G / GPRS / GSM / GPS (SIM5320) y, desafortunadamente, no encontré la implementación que necesitaba. Pero eso no me dejó solo. Decidí implementar de forma independiente la funcionalidad necesaria. Como resultado, logré crear un dispositivo que se controla (indicado por tres LED) a través de MQTT desde una aplicación instalada en un teléfono móvil, y también envía una foto al teléfono cuando el teléfono lo ordena. (Les diré un secreto: no he visto ningún ejemplo de envío de imágenes a través del corredor de MQTT antes y lo hice por primera vez. ¡Y cuando logré transferir la primera imagen, estaba inmensamente feliz!:-)) Y por lo tanto, propongo ir directamente al primer paso: una lista de componentes necesarios.

Paso 1: lista de componentes

Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes
Lista de componentes

Necesitamos los siguientes componentes:

1) Compatible con Arduino M0-SD.

2) Cámara TTL VC0706.

3) Escudo 3G / GPRS / GSM / GPS para Arduino.

4) LED rojo, verde, amarillo, 3 resistencias (100-500 Ohm), cables, conector en ángulo de clavija con paso de 2,54 mm.

5) Adaptador de corriente AC-DC (6V 1A), antena 3G, etc.

Paso 2: preparación de la cámara

Preparación de la cámara
Preparación de la cámara
Preparación de la cámara
Preparación de la cámara
Preparación de la cámara
Preparación de la cámara

La cámara tiene una salida RS-232 para conexión directa a una PC. Es necesario quitar el MAX232 (convertidor RS-232) y cerrar las almohadillas de contacto entre los pines correspondientes 7-10 (TX), 8-9 (RX).

El cable de seis hilos que vino con la cámara debe rehacerse ligeramente:

  • Retire los dos cables del conector.
  • Reorganice los cables rojo (+ 5V) y negro (GND) como se muestra en la figura.

En los extremos desnudos de los cables se deben soldar puntas como "hembra".

Paso 3: preparación de Arduino M0-SD compatible

Preparación de Arduino M0-SD compatible
Preparación de Arduino M0-SD compatible
Preparación de Arduino M0-SD compatible
Preparación de Arduino M0-SD compatible
Preparación de Arduino M0-SD compatible
Preparación de Arduino M0-SD compatible

Como ya se mencionó, el Arduino M0-SD compatible es hardware y software compatible con el Arduino M0 original, pero también tiene un conector microSD integrado para conectar una tarjeta de memoria.

Para conectar la cámara al Arduino M0-SD compatible en la placa es necesario soldar el conector angular a los terminales TXD, RXD (conector X6) como se muestra en la figura. Este puerto coincide con el "Serial".

Los cables blanco (Camera RX) y amarillo (Camera TX) de la cámara deben conectarse respectivamente a los terminales del TXD y RXD (conector X6) como se muestra en la figura.

Paso 4: Preparación de 3G / GPRS / GSM / GPS Shield SIM5320

Preparación de 3G / GPRS / GSM / GPS Shield SIM5320
Preparación de 3G / GPRS / GSM / GPS Shield SIM5320
Preparación de 3G / GPRS / GSM / GPS Shield SIM5320
Preparación de 3G / GPRS / GSM / GPS Shield SIM5320
Preparación de 3G / GPRS / GSM / GPS Shield SIM5320
Preparación de 3G / GPRS / GSM / GPS Shield SIM5320

Antes de instalar una tarjeta SIM en la ranura, debe desactivar la solicitud del código PIN. Luego instale la tarjeta SIM en la ranura en la parte inferior de la placa como se muestra en la figura. Se deben instalar dos puentes en la posición RX-1 (D1), TX-0 (D0).

Paso 5: Montaje de hardware

Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware
Ensamblaje de hardware

El montaje del hardware consta de varias operaciones sencillas:

  • Para controlar los LED, primero debe soldar un pequeño diseño de LED y resistencias limitadoras de corriente (100-500 Ohm) como se muestra en la figura. Preste atención a la polaridad de los LED: el ánodo debe soldarse a las resistencias (+). Para reducir la exposición parasitaria de los LED, hice una pantalla negra con cartón normal.
  • Conecte los LED y la cámara a una placa Arduino M0-SD compatible como se muestra en el diagrama. La fuente de alimentación de la cámara (cable rojo "+ 5V" y cable negro "GND") debe tomarse de los terminales "+ 5V" y "GND" de la ranura. También puede usar un conector en ángulo para esto.
  • Después de eso, conecte el escudo 3G / GPRS / GSM / GPS a la placa Arduino M0-SD compatible. No olvide conectar una antena 3G.

Paso 6: Configuración de MQTT Broker

Configuración de MQTT Broker
Configuración de MQTT Broker
Configuración de MQTT Broker
Configuración de MQTT Broker
Configuración de MQTT Broker
Configuración de MQTT Broker

Elegí un www.cloudmqtt.com muy conveniente y claro como corredor de MQTT. Proporciona pruebas gratuitas. También es posible recibir y enviar mensajes directamente en el sitio.

El procedimiento de configuración es el siguiente:

  1. Registro en línea.
  2. Presione el botón "Crear nueva instancia".
  3. Establezca el nombre, por ejemplo, "MqttCamera".
  4. Presione el botón "Seleccionar región". Por ejemplo, seleccione "US-East-1 (Northern Virginia)".
  5. Presione el botón "Revisar".
  6. Presione el botón "Crear instancia". Ver mensaje "Instancia creada con éxito".
  7. Haga clic en "MqttCamera".
  8. Recuerde la información: servidor, usuario, contraseña, puerto, clave API (la necesitaremos en los pasos 7 y 8).
  9. Luego puede ir a la ventana "WEBSOCKET UI", donde puede probar y depurar, ver y enviar mensajes (necesitaremos esta ventana en el siguiente paso).

Paso 7: Aplicación MQTT Dash

Aplicación Dash MQTT
Aplicación Dash MQTT
Aplicación Dash MQTT
Aplicación Dash MQTT
Aplicación Dash MQTT
Aplicación Dash MQTT

Para crear un panel de control en un teléfono móvil, elegí una aplicación MQTT Dash muy fácil de usar y clara.

Instale la aplicación MQTT Dash en su teléfono y realice los siguientes ajustes:

  1. Abra la aplicación.
  2. En la ventana del tablero de MQTT, haga clic en (+) para agregar un nuevo panel de control.
  3. En la ventana que aparece, complete los campos obligatorios, como: Nombre (por ejemplo, MqttCamera), Dirección, Puerto, Nombre de usuario, Contraseña de usuario (Tome los datos del paso 6).
  4. Después de completar los campos, haga clic en el icono del disquete (operación "Guardar").
  5. En la ventana con la lista de paneles de control, haga clic en la línea que aparece "MqttCamera".
  6. En la ventana del panel de control que se abre, haga clic en el icono de flecha para cargar las métricas.
  7. Luego, en la ventana emergente, haga clic en el botón "SUSCRIBIRSE Y ESPERAR LA MÉTRICA".
  8. En una computadora personal, abra una cuenta en un corredor de MQTT (vea el paso anterior), abra la ventana "WEBSOCKET UI", configure el tema "métricas / intercambio" en la ventana "Enviar mensaje" y registre el texto del adjunto archivo metrics.txt en la ventana "Mensaje", haga clic en el botón "Enviar".
  9. Espere 10 segundos, asegúrese de que la métrica se reciba en el teléfono y el panel de control esté actualizado.

Luego puede proceder a programar Arduino M0-SD compatible.

Paso 8: Programación y trabajo

Programación y trabajo
Programación y trabajo
Programación y trabajo
Programación y trabajo
Programación y trabajo
Programación y trabajo
Programación y trabajo
Programación y trabajo

Antes de programar Arduino M0-SD compatible, debe instalar en la computadora todas las bibliotecas necesarias (pubsubclient-master, TinyGSM-master), que cito a continuación. Estas bibliotecas se modificaron ligeramente para que funcionen con una placa Arduino M0-SD compatible, una cámara VC0706 y un protector 3G / GPRS / GSM / GPS SIM5320.

Necesita conectar su cable y fuente de alimentación (6V 1A para alimentar 3G / GPRS / GSM / GPS shield) al Arduino M0-SD compatible.

Inicie Arduino IDE. En Arduino, el IDE debe elegir: Herramientas-> Placa: Arduino M0 Pro (Puerto USB nativo).

Abra el boceto MqttCamera.ino. Complete los campos: nombre de usuario, contraseña de usuario, clave API, puerto, servidor (tome los datos del paso 6).

Abra la ventana Serial Monitor.

Cargar boceto. No describo en detalle el procedimiento de programación (hay suficientes instrucciones en Internet).

Después de una carga exitosa y un ensamblaje adecuado, la siguiente información debería aparecer en la ventana del Monitor en serie:

Cámara VC0706 + Arduino M0 + SIM5320 + MQTT

Cámara init… versión: ----------------- VC0703 1.00 Ctrl infr existe Sensor definido por el usuario 525 ----------------- éxito ! Inicializando módem… Módem: AT + CGMM SIMCOM_SIM5320E Esperando red… OK Conectando a Internet OK Conectando a 3.83.68.228 falla Conectando a 3.83.68.228 OK Ping: 0

La línea "Ping: XX" es un mensaje periódico del Arduino M0-SD compatible al servidor. En lugar de esta información, puede enviar medidas ADC, estado de entrada y más.

En la aplicación MQTT Dash, haga clic en los iconos de las bombillas (LED_YELLOW, LED_GREEN, LED_RED) - encender / apagar. Mire en la ventana del monitor serial; debería haber información sobre algo como esto:

LED_YELLOW encendido

LED_YELLOW_Off LED_GREEN encendido LED_GREEN apagado LED_RED encendido LED_RED apagado

Haga clic en el icono de la cámara, envíe el comando "DISPARAR" y espere un poco. La siguiente información debería aparecer en la ventana Serial Monitor:

¡Empieza a disparar!

¡Foto tomada! crea IMAGE332-j.webp

Y después de un tiempo (5-10 segundos) en la ventana "VER IMAGEN" debería mostrarse la foto.

Para la demostración, dirigí la cámara VC0706 a los LED para que pueda ver su estado después de cambiarlos de manera arbitraria. Pero en uso real, puedes dirigir la cámara a una habitación, puerta, calle, portón, coche, etc. (Por supuesto, debes tener en cuenta los requisitos de la ley). A modo de demostración, presento varias capturas de pantalla de un teléfono móvil, donde se muestran los estados instalados y reales de los LED.

Espero que mi instrucción haya sido interesante y útil para usted. Estaré encantado de recibir sus comentarios y sugerencias. En mis planes para desarrollar mi dispositivo y compartir con ustedes nuevas innovaciones. ¡Gracias por ver!

Recomendado: