Sommario:

Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c: 7 passaggi
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c: 7 passaggi

Video: Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c: 7 passaggi

Video: Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c: 7 passaggi
Video: ESERCIZIO GUIDATO SU SITUAZIONE ECONOMICA E PATRIMONIALE 2024, Luglio
Anonim
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c
Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c

Cercando sistemi di sicurezza che operino per monitorare situazioni di emergenza, è possibile notare che è troppo difficile elaborare tutte le informazioni registrate. Pensando a questo, abbiamo deciso di utilizzare le nostre conoscenze nell'elaborazione di audio/immagini, sensori e attuatori per creare un sistema completo che renda possibile prevedere situazioni in cui la vita delle persone è in pericolo.

Questo progetto ha un sensore locale e dispositivi remoti per raccogliere dati e inviarli al dragonboard, che ha una potenza di elaborazione in grado di estrarre informazioni importanti dai dati ricevuti.

Il dispositivo remoto è una scheda Arduino con un modulo HC-06 che rende possibile il trasferimento di tutte le informazioni e un'ampia rete a basso costo in grado di elaborare grandi quantità di dati.

Passaggio 1: componenti richiesti

Prima di tutto, devi decidere quali sensori e attuatori utilizzerai e creare lo schizzo dell'architettura.

Nel nostro caso, stiamo utilizzando questi sensori collegati in ARDUINO Pro Mini, elencati di seguito:

  • PIR (Passive Infrared -- Sensore di presenza)
  • DHT 11 (Sensore di umidità e temperatura)
  • Sensore di CO (sensore di monossido di carbonio)
  • Sensore di rumore

Attuatori:

  • servomotore
  • cicalino

Comunicazione:

Modulo Bluetooth HC-06

Alla Dragonboard 410c, avremo alcuni sensori e software per elaborare tutti i dati in ingresso:

Sensori:

  • DHT 11
  • Sensore di luce solare

Attuatori:

  • Relè
  • Stato led
  • Cicalino

Passaggio 2: creazione di un dispositivo remoto

Creazione di un dispositivo remoto
Creazione di un dispositivo remoto

Ora è il momento di collegare tutti i seguenti componenti alla scheda Arduino, creando un dispositivo che riceverà i dati dall'ambiente (rumore, umidità, temperatura, ecc.) e li invierà alla Dragonboard tramite il modulo bluetooth HC-06.

È necessario prestare attenzione alle connessioni, perché tutti i sensori hanno punti specifici per la connessione.

Sul sistema è possibile avere più di un dispositivo per raccogliere dati. Più dispositivi hai installato nell'ambiente, più accurata è la diagnostica generata dall'elaborazione dei dati. Dal momento che sarà possibile estrarre una gamma più ampia di informazioni che potrebbero essere utili.

Abbiamo deciso di utilizzare una scheda arduino perché ha più sensori compatibili, ed è possibile installare questi dispositivi remoti in luoghi diversi, raccogliendo più informazioni.

Il dispositivo locale è il DragonBoard 410c, che elabora informazioni audio, video, digitali e analogiche con il tuo potente processore SnapDragon 410.

Posizionamento dei componenti (Dispositivo Remoto)

Quale pezzo ha alcuni pin che devono essere collegati nei pin giusti sulla mini scheda arduino pro.

Il modulo Bluetooth HC-06 ha 4 pin:

  • TX (trasmettitore) -> connesso al pin di Arduino RX
  • RX (ricevitore) -> connesso sul pin del TX Arduino
  • VCC -> connesso sul 5v
  • GND

Il sensore DHT 11 ha 4 pin (ma solo 3 in uso):

  • Segnale -> connesso su un pin digitale
  • VCC -> connesso sul 5v
  • GND

Il sensore PIR ha 3 pin:

  • Segnale -> connesso su un pin digitale
  • VCC -> connesso sul 5v
  • GND

Il sensore di gas (MQ) ha 4 pin:

  • Digital OUT -> collegato su un pin digitale (se si desidera un'informazione digitale)
  • Analog OUT -> nel nostro caso, stiamo usando questo collegato su un pin analogico
  • VCC -> connesso sul 5v
  • GND

Il sensore di rumore (KY-038) ha 3 pin:

  • Segnale -> connesso su un pin analogico
  • VCC -> connesso sul 5v
  • GND

Codice per dispositivo remoto Arduino:

/* * Arduino invia i dati tramite Blutooth * * I valori dei sensori vengono letti, concatenati su * Stringa e inviati tramite porta seriale. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); umidità galleggiante, temperatura; pir booleano = 0; int co, microfono; Stringa 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); microfono = analogRead(A0); msg = "#;" +Stringa(umidità) + ";" + String(temperatura) +";"+ String(mic) +";"+ String(pir)+ ";" + Stringa(co) + ";#" +"\n"; Serial.print(msg); ritardo (2000); }

Spiegazione del codice:

All'inizio del codice vengono citati tutti i pin utilizzati in Arduino e vengono inizializzate le rispettive librerie necessarie per il funzionamento dei sensori. Tutti i dati verranno passati alle rispettive variabili che riceveranno i valori letti da ciascun sensore ogni 2000 millisecondi, quindi verranno tutti Concatenati in una Stringa, quindi scritti in Seriale. Da lì è molto semplice tramite il codice pyton presente nella DragonBoard acquisire tali dati.

Passaggio 3: software e librerie

Per elaborare tutti i dati ricevuti e controllare il sistema di sicurezza, è necessario utilizzare alcuni software e librerie nella Qualcomm DragonBoard 410c.

In questo progetto specifico stiamo usando:

Software:

  • Pitone
  • Arduino

Piattaforme:

  • Amazon AWS -> server online
  • Phant -> Servizio dati host

Biblioteche:

  • OpenCV - Elaborazione video (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Elaborazione audio (https://people.csail.mit.edu/hubert/pyaudio/)
  • Onda (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 - Addestra e prevedi l'apprendimento automatico (https://scikit-learn.org/stable/install.html)
  • cPickle - Salva i parametri di apprendimento automatico (https://pymotw.com/2/pickle/)
  • MRAA - Usa i GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM: usa i GPIO (https://github.com/intel-iot-devkit/upm)
  • PySerial - Utilizzare per la comunicazione seriale con il dispositivo Bluetooth (https://pythonhosted.org/pyserial/)

Passaggio 4: utilizzo di SSH e installazione di librerie

Prima di tutto è necessario ottenere l'indirizzo IP dalla Dragonboard, per farlo è necessario accendere la DragonBoard collegata con un mouse, una tastiera e un monitor HDMI. Quando la scheda si accende è necessario connettersi a una rete, quindi andare al terminale ed eseguire il comando:

sudo ifconfig

dopodiché puoi ottenere l'indirizzo IP.

Con l'indirizzo IP è possibile accedere alla Dragonboard tramite SHH, per farlo è necessario aprire un terminale in un computer connesso alla stessa rete della scheda. Nel terminale puoi eseguire il comando:

ssh linaro@{IP}

(dovresti sostituire {IP} con l'indirizzo IP che ottieni nella Dragonboard).

La prima lib che devi installare è mraa lib. Per fare ciò è necessario eseguire il seguente comando nel terminale:

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

Per installare opencv per python devi solo eseguire il comando:

sudo apt-get install python-opencv

Per installare PyAudio devi eseguire il comando:

sudo apt-get install python-pyaudio python3-pyaudio

Le librerie WAVE e AudioOp sono già installate nella scheda. Per installare numpy è necessario eseguire il comando:

sudo apt-get install python-numpy python-scipy

L'ultima lib che devi installare è lo scikit, per installarlo devi avere pip installato. Quindi devi solo eseguire il comando:

pip install scikit-lear

Passaggio 5: protocollo Bluetooth

Protocollo Bluetooth
Protocollo Bluetooth
Protocollo Bluetooth
Protocollo Bluetooth
Protocollo Bluetooth
Protocollo Bluetooth

Connessione DragonBoard con Arduino tramite Bluetooth

Il modulo Bluetooth (HC-06) è stato inizialmente connesso ad Arduino Nano secondo il seguente esempio:

Utilizzando l'interfaccia grafica Linaro (Sistema Operativo Utilizzato nel progetto corrente in DragonBoard), nella parte destra della barra in basso cliccare sul simbolo Bluetooth e poi cliccare su "Configura Nuovo Dispositivo" e configurare con il proprio modulo Bluetooth lasciandolo accoppiato. Verifica che il tuo modulo sia effettivamente connesso cliccando nuovamente sul simbolo Bluetooth, clicca su "Dispositivi…" e verifica se il nome del tuo dispositivo è elencato e connesso. Ora seleziona il tuo dispositivo nella schermata "Dispositivi Bluetooth" e fai clic destro su di esso e annota la porta a cui è connesso il tuo modulo Bluetooth (es.: "rfcomm0"). Nota: il nome della porta a cui è connesso il dispositivo sarà importante per il passaggio successivo per abilitare lo scambio di dati.

Stabilire lo scambio di dati di DragonBoard e Bluetooth

In pratica seguiamo passo passo il link: https://www.uugear.com/portfolio/bluetooth-communi… ma non abbiamo eseguito la parte del pairing solo l'esecuzione dei codici python e Arduino. In python è stata utilizzata la libreria seriale che viene inizializzata nella porta collegata al bluetooth, quindi il codice python legge i dati dei sensori che sono collegati ad arduino tramite il modulo bluetooth.

Passaggio 6: utilizzo di Mezzanine su DragonBoard 410c

Utilizzo di Mezzanine su DragonBoard 410c
Utilizzo di Mezzanine su DragonBoard 410c

Per realizzare i collegamenti tra la dragonboard ei componenti, utilizziamo un tipo di scudo chiamato da Mezannine, sviluppato da 96boards.

Utilizzando questo shield, collegare le periferiche diventa molto più semplice.

I connettori utilizzati provengono dal kit di sviluppo di Grove, quindi utilizza solo un cavo specifico che si collega in entrambe le direzioni, Tutte le parti possono essere facilmente trovate in questo sito Web:

Stiamo usando questo kit qui sotto:

  • Relè Grove
  • Sensore di luce solare Grove
  • Presa led Grove
  • Sensore di temperatura e humi Grove
  • Cicalino del boschetto

Passaggio 7: software DragonBoard 410c

La parte del programma nella DragonBoard è stata codificata in Python e il programma utilizzato su Arduino è stato sviluppato in C++. Ogni 2 minuti Arduino legge tutto il sensore ad esso collegato. Quindi Arduino invia la lettura alla DragonBoard tramite Bluetooth. La DragonBoard combina la lettura proveniente da Arduino con la lettura che effettua dallo shield Mezzanine con le caratteristiche dei campioni audio e video.

Con questi dati, il Consiglio cerca di prevedere se si sta verificando una situazione di emergenza. Il Board invia ad Amazon Web Service utilizzando il Phant i dati grezzi e la previsione che ha fatto. Se la scheda prevede che si stia verificando una situazione anomala cerca di avvisare l'utente facendo lampeggiare un led e un buzzer nel Soppalco e mostrarlo all'applicazione web. Nell'applicazione web è anche possibile vedere i dati grezzi per capire cosa sta succedendo in quest'area.

Consigliato: