Índice:
- Etapa 1: Componentes necessários
- Etapa 2: fazer dispositivo remoto
- Etapa 3: softwares e bibliotecas
- Etapa 4: usando SSH e instalando bibliotecas
- Etapa 5: Protocolo Bluetooth
- Etapa 6: usando o Mezanino no DragonBoard 410c
- Etapa 7: Software DragonBoard 410c
Vídeo: Detectando situações emergenciais - Qualcomm Dragonboard 410c: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Buscando sistemas de segurança que atuem no monitoramento de situações emergenciais, percebe-se que é muito difícil processar todas as informações registradas. Pensando nisso, decidimos utilizar nossos conhecimentos em processamento de áudio / imagem, sensores e atuadores para criar um sistema completo que possibilite prever situações de perigo de vida das pessoas.
Este projeto contará com sensores locais e dispositivos remotos para coleta de dados e envio para o dragonboard, que possui poder de processamento capaz de extrair informações importantes dos dados recebidos.
O dispositivo remoto é uma placa Arduino com módulo HC-06 tornando possível a transferência de todas as informações, e uma ampla rede de baixo custo capaz de processar grande quantidade de dados.
Etapa 1: Componentes necessários
Em primeiro lugar, você deve decidir quais sensores e atuatos você vai usar, e fazer o esboço da arquitetura.
No nosso caso, estamos usando esses sensores conectados no ARDUINO Pro Mini, listados abaixo:
- PIR (infravermelho passivo - sensor de presença)
- DHT 11 (sensor de umidade e temperatura)
- Sensor CO (Sensor de Monóxido de Carbono)
- Sensor de ruído
Atuadores:
- servo motor
- campainha
Comunicação:
Módulo Bluetooth HC-06
Para o Dragonboard 410c, teremos alguns sensores e softwares para processar todas as entradas de dados:
Sensores:
- DHT 11
- Sensor de luz solar
Atuadores:
- Relay
- Status do led
- Buzzer
Etapa 2: fazer dispositivo remoto
Agora é hora de conectar todos os seguintes componentes à placa Arduino, criando um dispositivo que receberá os dados do ambiente (ruído, umidade, temperatura, etc), e enviará para o Dragonboard pelo módulo bluetooth HC-06.
É preciso prestar atenção nas conexões, pois todo o sensor possui locais específicos para se conectar.
No sistema, é possível ter mais de um dispositivo para coleta de dados. Quanto mais dispositivos você tiver instalado no ambiente, mais preciso será o diagnóstico gerado pelo processamento dos dados. Pois será possível extrair uma gama mais ampla de informações que podem ser úteis.
Decidimos utilizar uma placa arduino porque possui sensores mais compatíveis, e é possível instalar este dispositivo remoto em diferentes locais, coletando mais informações.
O dispositivo local é o DragonBoard 410c, que processa áudio, vídeo, informações digitais e analógicas com seu poderoso processador SnapDragon 410.
Colocação dos componentes (Remote Devide)
Qual peça possui alguns pinos que devem ser conectados nos pinos certos na miniplaca arduino pro.
O módulo Bluetooth HC-06 possui 4 pinos:
- TX (Transmissor) -> conectado no pino do RX Arduino
- RX (Receptor) -> conectado no pino do TX Arduino
- VCC -> conectado no 5v
- GND
O sensor DHT 11 tem 4 pinos (mas apenas 3 em uso):
- Sinal -> conectado em um pino digital
- VCC -> conectado no 5v
- GND
O sensor PIR tem 3 pinos:
- Sinal -> conectado em um pino digital
- VCC -> conectado no 5v
- GND
O sensor de gás (MQ) tem 4 pinos:
- SAÍDA Digital -> conectado em um pino digital (se você quiser uma informação digital)
- Analog OUT -> no nosso caso, estamos usando isso conectado em um pino analógico
- VCC -> conectado no 5v
- GND
O sensor de ruído (KY-038) tem 3 pinos:
- Sinal -> conectado em um pino analógico
- VCC -> conectado no 5v
- GND
Código para dispositivo remoto Arduino:
/ * * Arduino envia dados por Blutooth * * Os valores dos sensores são lidos, concatenados em * String e enviados via porta serial. * / #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); flutuação úmida, temperatura; booleano pir = 0; int co, microfone; String msg = ""; char nome [40]; void setup () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); temperatura = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); mic = leitura analógica (A0); msg = "#;" + Corda (úmida) + ";" + String (temperatura) + ";" + String (mic) + ";" + String (pir) + ";" + String (co) + "; #" + "\ n"; Serial.print (msg); atraso (2000); }
Explicação do código:
Todos os pinos usados no Arduino são citados no início do código e as respectivas bibliotecas necessárias para a operação dos sensores são inicializadas. Todos os dados serão passados para as respectivas variáveis que receberão os valores lidos de cada sensor a cada 2.000 milissegundos, então todos eles são Concatenados em uma String, a seguir é escrito em Serial. A partir daí, é muito fácil o código pyton presente no DragonBoard capturar esses dados.
Etapa 3: softwares e bibliotecas
Para processar todos os dados recebidos e controlar o sistema de segurança, é necessário utilizar alguns softwares e bibliotecas do Qualcomm DragonBoard 410c.
Neste projeto específico estamos usando:
Programas:
- Pitão
- Arduino
Plataformas:
- Amazon AWS -> servidor online
- Phant -> Serviço de dados do host
Bibliotecas:
- OpenCV - Processamento de vídeo (https://opencv-python-tutroals.readthedocs.io/en/latest/)
- PyAudio - Processamento de áudio (https://people.csail.mit.edu/hubert/pyaudio/)
- Wave (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 - Treine e preveja o aprendizado de máquina (https://scikit-learn.org/stable/install.html)
- cPickle - Salve os parâmetros de aprendizado de máquina (https://pymotw.com/2/pickle/)
- MRAA - Use os GPIOs (https://iotdk.intel.com/docs/master/mraa/python/)
- UPM - Use os GPIOs (https://github.com/intel-iot-devkit/upm)
- PySerial - Use para comunicação serial com dispositivo Bluetooth (https://pythonhosted.org/pyserial/)
Etapa 4: usando SSH e instalando bibliotecas
Primeiramente você precisa obter o endereço IP do Dragonboard, para fazer isso, você precisa ligar o DragonBoard conectado com um mouse, um teclado e um monitor HDMI. Quando a placa liga você precisa se conectar a uma rede, então você vai até o terminal e executa o comando:
sudo ifconfig
depois disso, você pode obter o endereço IP.
Com o endereço IP você pode acessar o Dragonboard via SHH, para isso você precisa abrir um terminal em um computador conectado na mesma rede que a placa. No terminal, você pode executar o comando:
ssh linaro @ {IP}
(você deve substituir {IP} pelo endereço IP que obtém no Dragonboard).
A primeira lib que você precisa instalar é a lib mraa. Para fazer isso, você precisa executar o seguinte comando no terminal:
sudo add-apt-repository ppa: mraa / mraa && sudo apt-ge; t atualizar && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa
Para instalar o opencv para python, você só precisa executar o comando:
sudo apt-get install python-opencv
Para instalar o PyAudio, você precisa executar o comando:
sudo apt-get install python-pyaudio python3-pyaudio
As libs WAVE e AudioOp já estão instaladas na placa. Para instalar o numpy, você precisa executar o comando:
sudo apt-get install python-numpy python-scipy
A última lib que você precisa instalar é o scikit, para instalá-lo você precisa ter o pip instalado. Do que você só precisa executar o comando:
pip install scikit-lear
Etapa 5: Protocolo Bluetooth
Conexão DragonBoard com o Arduino por meio de Bluetooth
O módulo Bluetooth (HC-06) foi inicialmente conectado ao Arduino Nano de acordo com o seguinte exemplo:
Usando a interface gráfica do Linaro (Sistema Operacional Usado no projeto atual no DragonBoard), no lado direito da barra inferior clique no símbolo Bluetooth e a seguir clique em "Configurar Novo Dispositivo" e configure com seu módulo Bluetooth deixando-o emparelhado. Verifique se o seu módulo está realmente conectado clicando no símbolo Bluetooth novamente, clique em "Dispositivos…" e veja se o nome do seu dispositivo está listado e conectado. Agora selecione o seu dispositivo na tela "Dispositivos Bluetooth" e clique com o botão direito sobre ele e observe a porta à qual o seu módulo Bluetooth está conectado (ex.: "rfcomm0"). Nota: O nome da porta à qual seu dispositivo está conectado será importante para a próxima etapa para habilitar a troca de dados.
Estabelecendo DragonBoard Data Exchange e Bluetooth
Basicamente seguimos o passo a passo do link: https://www.uugear.com/portfolio/bluetooth-communi… mas não realizamos a parte do emparelhamento apenas a execução dos códigos python e Arduino. Em python foi utilizada a biblioteca serial que é inicializada na porta conectada ao bluetooth, daí o código python ler os dados dos sensores que estão conectados ao arduino através do módulo bluetooth.
Etapa 6: usando o Mezanino no DragonBoard 410c
Para fazer as conexões entre o dragonboard e os componentes, estamos usando um tipo de escudo denominado por Mezannine, desenvolvido pela 96boards.
Usando esta blindagem, conectar periféricos se torna muito mais fácil.
O uso de conectores é do kit de desenvolvimento do grove, então é só usar um cabo específico que conecta os dois lados, Todas as peças podem ser facilmente encontradas neste site:
Estamos usando os kits abaixo:
- Grove Relay
- Sensor Grove Sunlight
- Soquete led bosque
- Sensor de temperatura e humi Grove
- Grove Buzzer
Etapa 7: Software DragonBoard 410c
A parte do programa no DragonBoard foi codificada em Python e o programa usado no Arduino foi desenvolvido em C ++. A cada 2 minutos, o Arduino lê todo o sensor conectado a ele. Em seguida, o Arduino envia a leitura para o DragonBoard por Bluetooth. O DragonBoard combina a leitura vinda do Arduino com a leitura que ele faz pelo escudo Mezanino com os recursos das amostras de áudio e vídeo.
Com esses dados, a diretoria tenta prever se está ocorrendo uma situação de emergência. O Conselho envia para o Amazon Web Service usando o Phant os dados brutos e a previsão que ele fez. Caso a placa preveja que está ocorrendo uma situação estranha ela tenta alertar o usuário piscando um led e uma campainha no Mezanino e mostrar no aplicativo web. Na aplicação web também é possível ver os dados brutos para entender o que está acontecendo nesta área.
Recomendado:
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 etapas
Vision 4all - Sistema Visão 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 internos como casas ou shopping centers e aeroportos.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
Shake Detectando Talking Hat With Circuit Playground Express: 12 etapas (com fotos)
Chapéu falante de detecção de tremor com Circuit Playground Express: Este tutorial fácil e rápido ensina como fazer um chapéu falante! Ele responderia com uma resposta cuidadosamente processada quando você 'fizesse' uma pergunta e talvez pudesse ajudá-lo a decidir se você tem alguma preocupação ou problema. Na minha aula de tecnologia wearable, eu
Google Assistant no DragonBoard ™ 410c: 57 etapas
Google Assistant no DragonBoard ™ 410c: Este Instructables irá ensiná-lo a executar o Google Assistant no DragonBoard e configurar um ambiente smarthome com alguns dispositivos.Required: -DragonBoard ™ 410c (com uma nova instalação do linaro-alip); - 12V / 1A fonte de alimentação de 5,5 mm; -CC2531 zigbee modu
Detectando o vovô fora da cama por muito tempo: 7 etapas
Detectando o vovô fora da cama por muito tempo: Histórico Embora haja monitores de alarme de cama por muitos anos que são apenas fechamentos de contato de almofada de cama simples, tocando um alarme local para os prestadores de cuidados quando alguém sai da cama, não havia uma maneira para famílias remotas cuidadores para rastrear um lo
Detectando obstáculos e advertências - Arduino UNO e ultrassônico: 4 etapas (com imagens)
Detectando Obstáculos e Advertências - Arduino UNO e Ultrasonic: Este é um tutorial para ajudá-lo a entender o ultrassom e a campainha e se aprofundar no aprendizado do Arduino, siga estas etapas e me dê feedback