Sommario:
- Passaggio 1: componenti richiesti
- Passaggio 2: creazione di un dispositivo remoto
- Passaggio 3: software e librerie
- Passaggio 4: utilizzo di SSH e installazione di librerie
- Passaggio 5: protocollo Bluetooth
- Passaggio 6: utilizzo di Mezzanine su DragonBoard 410c
- Passaggio 7: software DragonBoard 410c
Video: Rilevamento di situazioni di emergenza - Qualcomm Dragonboard 410c: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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
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
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
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:
COME REALIZZARE UN CIRCUITO LUCE DI EMERGENZA AUTOMATICO UTILIZZANDO IL TRANSISTOR D882: 3 passaggi
COME REALIZZARE UN CIRCUITO LUCE DI EMERGENZA AUTOMATICO UTILIZZANDO IL TRANSISTORE D882: CIAO AMICI, BENVENUTI NEL MIO CANALE, OGGI VI MOSTRER COME REALIZZARE UN CIRCUITO LUCE DI EMERGENZA AUTOMATICO UTILIZZANDO IL TRANSISTORE D882
Torcia LED di emergenza senza batteria: 10 passaggi
Torcia LED di emergenza senza batteria: ciao a tutti, questo è il mio primo Instructables, quindi il tuo feedback sarà davvero utile per me per migliorare ulteriormente. Dai un'occhiata anche al mio canale YouTube per altri progetti.https://www.youtube.com/channel/UCy7KKu5hVrFcyWw32…Oggi ti mostrerò h
Robot di Halloween con rilevamento del volto e rilevamento del sorriso: 8 passaggi (con immagini)
Monitoraggio del viso e rilevamento del sorriso Robot di Halloween: Halloween sta arrivando! Abbiamo deciso di costruire qualcosa di interessante. Incontra i robot Ghosty e Skully. Possono seguire il tuo viso e sanno quando sorridi per ridere con te! Questo progetto è un altro esempio dell'utilizzo dell'app iRobbie che converte l'iPhone in
Realizza un dispositivo di rilevamento e rilevamento a ultrasuoni a casa: 7 passaggi (con immagini)
Crea un dispositivo di rilevamento e distanza ad ultrasuoni a casa: ciao! Sono Sourabh Kumar, ero ansioso di creare un radar allarmante ma non ci proverò di nuovo, ma oggi ti guiderò a fare un rilevamento a ultrasuoni e un dispositivo di rilevamento a casa usando un sensore a ultrasuoni (ricetrasmettitore) so che ce ne sono molti professionista
Rilevamento di oggetti con Dragonboard 410c o 820c utilizzando OpenCV e Tensorflow.: 4 passaggi
Rilevamento di oggetti con Dragonboard 410c o 820c utilizzando OpenCV e Tensorflow.: Queste istruzioni descrivono come installare OpenCV, Tensorflow e framework di apprendimento automatico per Python 3.5 per eseguire l'applicazione Object Detection