Índice:

Detectando situações emergenciais - Qualcomm Dragonboard 410c: 7 etapas
Detectando situações emergenciais - Qualcomm Dragonboard 410c: 7 etapas

Vídeo: Detectando situações emergenciais - Qualcomm Dragonboard 410c: 7 etapas

Vídeo: Detectando situações emergenciais - Qualcomm Dragonboard 410c: 7 etapas
Vídeo: INTRODUÇÃO DE ENFERMAGEM. AULA 2 - PROCEDIMENTOS BÁSICOS 2024, Novembro
Anonim
Detectando situações emergenciais - Qualcomm Dragonboard 410c
Detectando situações emergenciais - Qualcomm Dragonboard 410c
Detectando situações emergenciais - Qualcomm Dragonboard 410c
Detectando situações emergenciais - Qualcomm Dragonboard 410c
Detectando situações emergenciais - Qualcomm Dragonboard 410c
Detectando situações emergenciais - Qualcomm Dragonboard 410c

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

Fazendo Dispositivo Remoto
Fazendo 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

Protocolo Bluetooth
Protocolo Bluetooth
Protocolo Bluetooth
Protocolo Bluetooth
Protocolo Bluetooth
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

Usando o Mezanino no DragonBoard 410c
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: