Innholdsfortegnelse:

Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn

Video: Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn

Video: Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn
Video: Koronavirussmitte og vann 2024, November
Anonim
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c

På jakt etter sikkerhetssystemer som jobber med å overvåke nødssituasjoner, er det mulig å legge merke til at det er for vanskelig å behandle all informasjon som er registrert. Når vi tenkte på det, bestemte vi oss for å bruke vår kunnskap innen lyd/bildebehandling, sensorer og aktuatorer for å lage et komplett system som gjør det mulig å forutsi situasjoner der menneskers liv er i fare.

Dette prosjektet har lokal sensor og eksterne enheter for å samle inn data og sende til dragonboardet, som har prosessorkraft som kan trekke ut viktig informasjon fra mottatte data.

Den eksterne enheten er et Arduino-kort med en modul HC-06 som er mulig å overføre all informasjon, og et rimelig, bredt nett som er i stand til å behandle store mengder data.

Trinn 1: Nødvendige komponenter

Først av alt må du bestemme hvilke sensorer og aktuater du skal bruke, og lage arktekturskissen.

I vårt tilfelle bruker vi disse sensorene tilkoblet i ARDUINO Pro Mini, oppført nedenfor:

  • PIR (passiv infrarød-tilstedeværelsessensor)
  • DHT 11 (fuktighets- og temperatursensor)
  • CO-sensor (karbonmonoksidsensor)
  • Støysensor

Aktuatorer:

  • motorservo
  • summer

Kommunikasjon:

Bluetooth-modul HC-06

Til Dragonboard 410c vil vi ha noen sensorer og programvare for å behandle alle datainngangene:

Sensorer:

  • DHT 11
  • Sollys sensor

Aktuatorer:

  • Stafett
  • Led-status
  • Summer

Trinn 2: Lag ekstern enhet

Lag en ekstern enhet
Lag en ekstern enhet

Nå er det på tide å koble alle følgende komponenter til Arduino Board, og lage en enhet som vil motta data fra atmosfæren (støy, fuktighet, temperatur osv.) Og sende til Dragonboard med Bluetooth-modulen HC-06.

Det er nødvendig å være oppmerksom på forbindelsene, fordi all sensoren har bestemte steder å koble til.

På systemet er det mulig å ha mer enn én enhet for å samle inn data. Jo flere enheter du har installert i miljøet, desto mer nøyaktig er diagnosen generert ved databehandling. Siden det vil være mulig å trekke ut et bredere spekter av informasjon som kan være nyttig.

Vi bestemte oss for å bruke et arduino -kort fordi det har mer kompatible sensorer, og det er mulig å installere disse eksterne enhetene på forskjellige steder og samle mer informasjon.

Den lokale enheten er DragonBoard 410c, som behandler lyd, video, digital og analog informasjon med din kraftige SnapDragon 410 -prosessor.

Plassering av komponentene (Remote Devide)

Som ett stykke har noen pinner som må kobles til de riktige pinnene på arduino pro mini -kortet.

Bluetooth-modul HC-06 har 4 pinner:

  • TX (sender) -> koblet til RX Arduino -pinnen
  • RX (mottaker) -> tilkoblet TX Arduino -pinnen
  • VCC -> tilkoblet på 5v
  • GND

DHT 11 -sensoren har 4 pinner (men bare 3 i bruk):

  • Signal -> tilkoblet på en digital pin
  • VCC -> tilkoblet på 5v
  • GND

PIR -sensor har 3 pinner:

  • Signal -> tilkoblet på en digital pin
  • VCC -> tilkoblet på 5v
  • GND

Gassensor (MQ) har 4 pinner:

  • Digital OUT -> tilkoblet på en digital pin (hvis du vil ha digital informasjon)
  • Analog OUT -> i vårt tilfelle bruker vi dette tilkoblet på en analog pin
  • VCC -> tilkoblet på 5v
  • GND

Støysensor (KY-038) har 3 pinner:

  • Signal -> koblet til en analog pin
  • VCC -> tilkoblet på 5v
  • GND

Kode for Arduino ekstern enhet:

/ * * Arduino sender data gjennom Blutooth * * Verdien av sensorer leses, kobles sammen på * String og sendes via seriell port. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); flytende fuktighet, temperatur; boolsk pir = 0; int co, mic; String msg = ""; røye [40]; ugyldig oppsett () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); temperatur = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); mic = analogRead (A0); msg = "#;" + String (fuktighet) + ";" + String (temperatur)+ ";"+ String (mikrofon)+ ";"+ String (pir)+ ";" + String (co) + ";#" + "\ n"; Serial.print (msg); forsinkelse (2000); }

Kode forklaring:

Alle pinnene som brukes i Arduino er sitert i begynnelsen av koden, og de respektive bibliotekene som kreves for drift av sensorene initialiseres. Alle data vil bli overført til de respektive variablene som vil motta verdiene som er lest fra hver sensor hvert 2000 millisekund, deretter blir alle sammenkoplet i en streng, deretter skrives det i serie. Derfra er det veldig enkelt med pytonkoden som er tilstede i DragonBoard å fange slike data.

Trinn 3: Programvare og biblioteker

For å behandle alle mottatte data og kontrollere sikkerhetssystemet, er det nødvendig å bruke noen programvarer og biblioteker i Qualcomm DragonBoard 410c.

I dette spesifikke prosjektet bruker vi:

Programvare:

  • Python
  • Arduino

Platformer:

  • Amazon AWS -> online server
  • Phant -> Host data service

Biblioteker:

  • OpenCV-Video Processing (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Lydbehandling (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 - Tren og forutse maskinlæring (https://scikit-learn.org/stable/install.html)
  • cPickle - Lagre maskinlæringsparametrene (https://pymotw.com/2/pickle/)
  • MRAA - Bruk GPIO -ene (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM-Bruk GPIO-ene (https://github.com/intel-iot-devkit/upm)
  • PySerial - Bruk til seriell kommunikasjon med Bluetooth -enhet (https://pythonhosted.org/pyserial/)

Trinn 4: Bruke SSH og installere Libs

Først av alt må du få IP -adressen fra Dragonboard, for å gjøre det må du slå på DragonBoard som er koblet til med en mus, et tastatur og en HDMI -skjerm. Når kortet ble slått på må du koble til et nettverk, enn du går til terminalen og kjører kommandoen:

sudo ifconfig

etter det kan du få IP -adressen.

Med IP -adressen kan du få tilgang til Dragonboard via SHH. For å gjøre dette trenger du å åpne en terminal på en datamaskin som er koblet til det samme nettverket som kortet. I terminalen kan du kjøre kommandoen:

ssh linaro@{IP}

(du bør erstatte {IP} med IP -adressen du får på Dragonboard).

Den første lib du må installere er mraa lib. For å gjøre det må du kjøre følgende kommando i terminalen:

sudo add-apt-repository ppa: mraa/mraa && sudo apt-ge; t oppdater && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

For å installere opencv for python trenger du bare å kjøre kommandoen:

sudo apt-get install python-opencv

For å installere PyAudio må du kjøre kommandoen:

sudo apt-get install python-pyaudio python3-pyaudio

Libs WAVE og AudioOp er allerede installert i kortet. For å installere numpy må du kjøre kommandoen:

sudo apt-get install python-numpy python-scipy

Den siste lib som du må installere er scikit, for å installere den må du ha pip installert. Da trenger du bare å kjøre kommandoen:

pip installere scikit-lear

Trinn 5: Bluetooth -protokoll

Bluetooth -protokoll
Bluetooth -protokoll
Bluetooth -protokoll
Bluetooth -protokoll
Bluetooth -protokoll
Bluetooth -protokoll

DragonBoard -tilkobling med Arduino via Bluetooth

Bluetooth-modulen (HC-06) ble opprinnelig koblet til Arduino Nano i henhold til følgende eksempel:

Ved å bruke det grafiske grensesnittet Linaro (operativsystemet som brukes i det nåværende prosjektet i DragonBoard), klikker du på høyre side av den nederste linjen på Bluetooth -symbolet og klikker deretter på "Oppsett ny enhet" og konfigurerer med Bluetooth -modulen slik at den er paret. Kontroller at modulen din faktisk er tilkoblet ved å klikke på Bluetooth -symbolet igjen, klikk på "Enheter …" og se om navnet på enheten din er oppført og tilkoblet. Velg nå enheten din på "Bluetooth -enheter" -skjermbildet og høyreklikk på den og noter porten som Bluetooth -modulen er koblet til (f.eks.: "rfcomm0"). Merk: Portnavnet som enheten din er koblet til, vil være viktig for neste trinn for å aktivere datautveksling.

Etablering av DragonBoard Data Exchange og Bluetooth

I utgangspunktet følger vi trinn for trinn i lenken: https://www.uugear.com/portfolio/bluetooth-communi…, men vi utførte ikke delen av sammenkoblingen bare utførelsen av pythonkodene og Arduino. I python ble det serielle biblioteket brukt som initialiseres i porten som er koblet til bluetooth, og derfor leser pythonkoden dataene til sensorene som er koblet til arduinoen via Bluetooth -modulen.

Trinn 6: Bruk Mezzanine på DragonBoard 410c

Bruk Mezzanine på DragonBoard 410c
Bruk Mezzanine på DragonBoard 410c

For å få tilkoblingene mellom dragen og komponentene bruker vi en type skjold kalt Mezannine, utviklet av 96boards.

Ved å bruke dette skjoldet blir tilkobling av eksterne enheter mye enklere.

Koblingene bruker er fra lundens utviklingssett, så det er bare å bruke en especif -kabel som kobler begge veier, Alle delene er lett å finne på dette nettstedet:

Vi bruker disse settene nedenfor:

  • Grove stafett
  • Grove sollys sensor
  • Grove ledet stikkontakt
  • Grove temp & humi sensor
  • Grove summer

Trinn 7: DragonBoard 410c -programvare

Delen av programmet i DragonBoard ble kodet i Python og programmet som ble brukt på Arduino ble utviklet i C ++. Hvert 2. minutt leser Arduino all sensoren festet til den. Send Arleino enn avlesningen til DragonBoard via Bluetooth. DragonBoard kombinerer avlesningen fra Arduino med lesingen den gjør av mezzaninskjoldet med funksjonene fra lyd- og videosamplene.

Med disse dataene prøver styret å forutsi om det oppstår en nødssituasjon. Styret sender Amazonas webtjeneste ved hjelp av Phant rådataene og spådommen som den har laget. Hvis tavlen forutsier at det oppstår en merkelig situasjon, prøver det å advare brukeren om å blinke med en LED og summer i mellometasjen og vise på webapplikasjonen. I webapplikasjonen er det også mulig å se rådata for å forstå hva som skjer i dette området.

Anbefalt: