Tabla de contenido:
- Paso 1: componentes necesarios
- Paso 2: hacer un dispositivo remoto
- Paso 3: software y bibliotecas
- Paso 4: uso de SSH e instalación de Libs
- Paso 5: Protocolo Bluetooth
- Paso 6: Uso de Mezzanine en DragonBoard 410c
- Paso 7: Software DragonBoard 410c
Video: Detección de situaciones de emergencia - Qualcomm Dragonboard 410c: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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
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
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
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:
Detección facial en Raspberry Pi 4B en 3 pasos: 3 pasos
Detección de rostros en Raspberry Pi 4B en 3 pasos: En este Instructable vamos a realizar la detección de rostros en Raspberry Pi 4 con Shunya O / S usando la Biblioteca Shunyaface. Shunyaface es una biblioteca de reconocimiento / detección de rostros. El proyecto tiene como objetivo lograr la velocidad de detección y reconocimiento más rápida con
Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: 17 Pasos
Desenvolvendo Aplicaciones Remotamente Para un Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é mostrar como etapas necesarias para configurar o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), através de IDE Eclipse compile os c ó digos e exporte para o Alvo (Drag
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 Pasos
Vision 4all - Sistema de visualización Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRI Ç Ã OO intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes interiores como casas o centros comerciales e aeroportos.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensores: 7 pasos
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensores: O objetivo desse tutorial é mostrar como etapas need á rias para configurar o ambiente de desenvolvimento, de modo que seja poss í vel comunicar com a Dragonboard 410c atrav é s de um computador / notebook usando comunica & ccedi
Detección de objetos con Dragonboard 410c o 820c mediante OpenCV y Tensorflow: 4 pasos
Detección de objetos con Dragonboard 410c u 820c con OpenCV y Tensorflow: este instructivo describe cómo instalar OpenCV, Tensorflow y los marcos de aprendizaje automático para Python 3.5 para ejecutar la aplicación de detección de objetos