Tabla de contenido:

Detección de situaciones de emergencia - Qualcomm Dragonboard 410c: 7 pasos
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c: 7 pasos

Video: Detección de situaciones de emergencia - Qualcomm Dragonboard 410c: 7 pasos

Video: Detección de situaciones de emergencia - Qualcomm Dragonboard 410c: 7 pasos
Video: Implementando IoT com dispositivos poderosos, seguros e conectados 2024, Noviembre
Anonim
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c
Detección de situaciones de emergencia - Qualcomm Dragonboard 410c

Buscando sistemas de seguridad que trabajen para monitorear situaciones de emergencia, es posible notar que es demasiado difícil procesar toda la información registrada. Pensando en eso, decidimos utilizar nuestros conocimientos en procesamiento de audio / imágenes, sensores y actuadores para crear un sistema completo que permita predecir situaciones en las que la vida de las personas esté en peligro.

Este proyecto cuenta con sensores locales y dispositivos remotos para recopilar datos y enviarlos al tablero, que tiene un poder de procesamiento capaz de extraer información importante de los datos recibidos.

El dispositivo remoto es una placa Arduino con un módulo de giro HC-06 posible para transferir toda la información, y una amplia red de bajo costo capaz de procesar gran cantidad de datos.

Paso 1: componentes necesarios

En primer lugar, debes decidir qué sensores y actuadores vas a utilizar, y hacer el boceto de la arquitectura.

En nuestro caso, estamos usando estos sensores conectados en ARDUINO Pro Mini, que se enumeran a continuación:

  • PIR (infrarrojo pasivo - sensor de presencia)
  • DHT 11 (sensor de temperatura y humedad)
  • Sensor de CO (sensor de monóxido de carbono)
  • Sensor de ruido

Actuadores:

  • servo motor
  • zumbador

Comunicación:

Módulo Bluetooth HC-06

Para el Dragonboard 410c, tendremos algunos sensores y softwares para procesar todas las entradas de datos:

Sensores:

  • DHT 11
  • Sensor de luz solar

Actuadores:

  • Relevo
  • Estado del led
  • Timbre

Paso 2: hacer un dispositivo remoto

Hacer dispositivo remoto
Hacer dispositivo remoto

Ahora es el momento de conectar todos los siguientes componentes a la placa Arduino, creando un dispositivo que recibirá los datos del ambiente (ruido, humedad, temperatura, etc), y los enviará al Dragonboard por el módulo bluetooth HC-06.

Es necesario prestar atención a las conexiones, porque todo el sensor tiene lugares específicos para conectarse.

En el sistema, es posible tener más de un dispositivo para recopilar datos. Cuantos más dispositivos tenga instalados en el entorno, más precisos serán los diagnósticos generados por el procesamiento de datos. Ya que será posible extraer un abanico más amplio de información que puede resultar de utilidad.

Decidimos utilizar una placa arduino porque tiene más sensores compatibles y es posible instalar estos dispositivos remotos en diferentes lugares, recolectando más información.

El dispositivo local es el DragonBoard 410c, que procesa información de audio, video, digital y analógica con su potente procesador SnapDragon 410.

Colocación de los componentes (Remote Devide)

Que una pieza tiene algunos pines que deben conectarse en los pines correctos en la placa arduino pro mini.

El módulo Bluetooth HC-06 tiene 4 pines:

  • TX (transmisor) -> conectado en el pin de RX Arduino
  • RX (receptor) -> conectado en el pin de TX Arduino
  • VCC -> conectado en el 5v
  • GND

El sensor DHT 11 tiene 4 pines (pero solo 3 en uso):

  • Señal -> conectado a un pin digital
  • VCC -> conectado en el 5v
  • GND

El sensor PIR tiene 3 pines:

  • Señal -> conectado en un pin digital
  • VCC -> conectado en el 5v
  • GND

El sensor de gas (MQ) tiene 4 pines:

  • SALIDA digital -> conectado a un pin digital (si desea información digital)
  • SALIDA analógica -> en nuestro caso, estamos usando esto conectado en un pin analógico
  • VCC -> conectado en el 5v
  • GND

El sensor de ruido (KY-038) tiene 3 pines:

  • Señal -> conectado en un pin analógico
  • VCC -> conectado en el 5v
  • GND

Código para dispositivo remoto Arduino:

/ * * Arduino envía datos a través de Blutooth * * El valor de los sensores se lee, se concatenan en * String y se envían a través del puerto serie. * / #incluya "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); humedad del flotador, temperatura; pir booleano = 0; int co, mic; String msg = ""; char nome [40]; configuración vacía () {Serial.begin (9600); dht.begin (); } bucle vacío () {humedad = dht.readHumidity (); temperatura = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); micrófono = analogRead (A0); msg = "#;" + Cadena (humidificación) + ";" + String (temperatura) + ";" + String (mic) + ";" + String (pir) + ";" + Cadena (co) + "; #" + "\ n"; Serial.print (msg); retraso (2000); }

Explicación del código:

Todos los pines utilizados en el Arduino se citan al principio del código y se inicializan las respectivas bibliotecas necesarias para el funcionamiento de los sensores. Todos los datos se pasarán a las variables respectivas que recibirán los valores leídos de cada sensor cada 2000 milisegundos, luego todos se concatenan en una cadena, luego se escriben en serie. A partir de ahí, es muy fácil que el código Pyton presente en DragonBoard capture dichos datos.

Paso 3: software y bibliotecas

Para procesar todos los datos recibidos y controlar el sistema de seguridad, es necesario utilizar algunos softwares y bibliotecas en el Qualcomm DragonBoard 410c.

En este proyecto específico estamos usando:

Software:

  • Pitón
  • Arduino

Plataformas:

  • Amazon AWS -> servidor en línea
  • Phant -> Servicio de datos del host

Bibliotecas:

  • OpenCV - Procesamiento de video (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Procesamiento de audio (https://people.csail.mit.edu/hubert/pyaudio/)
  • Ola (https://www.physionet.org/physiotools/wave-installation.shtm)
  • AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
  • Numpy (https://www.numpy.org)
  • SciKit1: entrena y predice el aprendizaje automático (https://scikit-learn.org/stable/install.html)
  • cPickle: guarde los parámetros de aprendizaje automático (https://pymotw.com/2/pickle/)
  • MRAA: use los GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM: use los GPIO (https://github.com/intel-iot-devkit/upm)
  • PySerial: se utiliza para la comunicación en serie con un dispositivo Bluetooth (https://pythonhosted.org/pyserial/)

Paso 4: uso de SSH e instalación de Libs

En primer lugar, debe obtener la dirección IP del Dragonboard, para hacerlo, debe encender el DragonBoard conectado con un mouse, un teclado y un monitor HDMI. Cuando la placa se enciende, debe conectarse a una red, luego debe ir a la terminal y ejecutar el comando:

sudo ifconfig

después de eso, puede obtener la dirección IP.

Con la dirección IP puedes acceder a la Dragonboard vía SHH, para ello necesitas abrir un terminal en un ordenador conectado en la misma red que la placa. En la terminal puedes ejecutar el comando:

ssh linaro @ {IP}

(debe reemplazar {IP} con la dirección IP que obtiene en el Dragonboard).

La primera lib que necesita instalar es mraa lib. Para hacer eso, debe ejecutar el siguiente comando en la terminal:

sudo add-apt-repository ppa: mraa / mraa && sudo apt-ge; t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

Para instalar opencv para python solo necesita ejecutar el comando:

sudo apt-get install python-opencv

Para instalar PyAudio necesitas ejecutar el comando:

sudo apt-get install python-pyaudio python3-pyaudio

Las librerías WAVE y AudioOp ya están instaladas en la placa. Para instalar numpy necesitas ejecutar el comando:

sudo apt-get install python-numpy python-scipy

La última lib que tienes que instalar es scikit, para instalarla necesitas tener instalado pip. De lo que solo necesita ejecutar el comando:

pip instalar scikit-Lear

Paso 5: Protocolo Bluetooth

Protocolo de Bluetooth
Protocolo de Bluetooth
Protocolo de Bluetooth
Protocolo de Bluetooth
Protocolo de Bluetooth
Protocolo de Bluetooth

Conexión DragonBoard con Arduino a través de Bluetooth

El módulo Bluetooth (HC-06) se conectó inicialmente al Arduino Nano de acuerdo con el siguiente ejemplo:

Usando la interfaz gráfica de Linaro (sistema operativo utilizado en el proyecto actual en DragonBoard), en el lado derecho de la barra inferior haga clic en el símbolo de Bluetooth y luego haga clic en "Configurar nuevo dispositivo" y configure con su módulo Bluetooth dejándolo emparejado. Verifique que su módulo esté realmente conectado haciendo clic en el símbolo de Bluetooth nuevamente, haga clic en "Dispositivos …" y vea si el nombre de su dispositivo está en la lista y conectado. Ahora seleccione su dispositivo en la pantalla "Dispositivos Bluetooth" y haga clic derecho sobre él y observe el puerto al que está conectado su módulo Bluetooth (por ejemplo: "rfcomm0"). Nota: El nombre del puerto al que está conectado su dispositivo será importante para el siguiente paso para habilitar el intercambio de datos.

Establecimiento de intercambio de datos DragonBoard y Bluetooth

Básicamente seguimos el paso a paso del enlace: https://www.uugear.com/portfolio/bluetooth-communi… pero no realizamos la parte del emparejamiento solo la ejecución de los códigos python y Arduino. En python se utilizó la librería serial que se inicializa en el puerto conectado a bluetooth, de ahí el código python lee los datos de los sensores que están conectados al arduino a través del módulo bluetooth.

Paso 6: Uso de Mezzanine en DragonBoard 410c

Uso de Mezzanine en DragonBoard 410c
Uso de Mezzanine en DragonBoard 410c

Para hacer las conexiones entre el dragonboard y los componentes, estamos usando un tipo de escudo llamado por Mezannine, desarrollado por 96boards.

Usando este escudo, conectar periféricos se vuelve mucho más fácil.

El uso de conectores es del kit de desarrollo de grove, por lo que solo se usa un cable específico que se conecta en ambos sentidos, Todas las piezas se pueden encontrar fácilmente en este sitio web:

Estamos usando estos kits a continuación:

  • Relé de Grove
  • Sensor de luz solar Grove
  • Toma led Grove
  • Sensor de temperatura y humi Grove
  • Timbre de Grove

Paso 7: Software DragonBoard 410c

La parte del programa en DragonBoard se codificó en Python y el programa utilizado en Arduino se desarrolló en C ++. Cada 2 minutos, el Arduino lee todos los sensores conectados. Entonces el Arduino envía la lectura al DragonBoard por Bluetooth. El DragonBoard combina la lectura proveniente del Arduino con la lectura que hace el escudo Mezzanine con las características de las muestras de audio y video.

Con estos datos, la Junta intentará predecir si se está produciendo una situación de emergencia. La Junta envía al servicio web de Amazon utilizando el Phant los datos sin procesar y la predicción que hizo. Si la placa predice que está ocurriendo una situación extraña, intenta advertir al usuario parpadeando un led y un timbre en el Mezzanine y lo muestra en la aplicación web. En la aplicación web también es posible ver los datos sin procesar para comprender qué está sucediendo en esta área.

Recomendado: