Innholdsfortegnelse:
- Trinn 1: Nødvendige komponenter
- Trinn 2: Lag ekstern enhet
- Trinn 3: Programvare og biblioteker
- Trinn 4: Bruke SSH og installere Libs
- Trinn 5: Bluetooth -protokoll
- Trinn 6: Bruk Mezzanine på DragonBoard 410c
- Trinn 7: DragonBoard 410c -programvare
Video: Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
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
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:
Raspberry Pi DIY Smart dørklokke som kan oppdage mennesker, biler osv.: 5 trinn
Raspberry Pi DIY Smart Doorbell That Can Detect People, Cars, Etc .: Denne designen med steampunk-tema kan integreres med hjemmeassistent og vårt lydrom for flere rom for å kommunisere med resten av vårt DIY smart-hjem. I stedet for å kjøpe en ringedørklokke (eller Nest, eller en av de andre konkurrentene) Jeg bygde vår egen smarte dørklokke
Bruke en radio til å oppdage lyn: 4 trinn
Bruke en radio til å oppdage lyn: Små radioer kan brukes til mer enn å lytte til musikk eller sport. Alle radioer (til og med billige AM -radioer) kan brukes til å oppdage lyn og andre atmosfæriske fenomener. Med et trent øre kan man til og med avgjøre om lynet beveger seg
Enkel, men kraftig statisk elektrisitetsdetektor som også kan oppdage "spøkelser": 10 trinn
Enkel, men kraftig statisk elektrisitetsdetektor som også kan oppdage "spøkelser": Hei, dette er min første instruerbare så vennligst gi meg beskjed om feilene jeg har gjort i denne instruerbare. I denne instruksen skal jeg lage en krets som kan oppdage statisk elektrisitet. En av skaperne har hevdet at han oppdaget og sa
Hvordan oppdage plantesykdommer ved hjelp av maskinlæring: 6 trinn
Hvordan oppdage plantesykdommer ved hjelp av maskinlæring: Prosessen med å oppdage og gjenkjenne syke planter har alltid vært en manuell og kjedelig prosess som krever at mennesker visuelt inspiserer plantekroppen, noe som ofte kan føre til feil diagnose. Det har også blitt spådd at som globalt
Å oppdage bestefar for lenge ute av sengen: 7 trinn
Oppdage bestefar for lenge ute av sengen: Bakgrunn Selv om det har vært sengealarmmonitorer i mange år som bare er enkle lukninger for sengeputer som ringer en lokal alarm for omsorgsleverandører når noen kommer seg ut av sengen, har det ikke vært noen måte for fjerntliggende familie omsorgspersoner for å spore en lo