Innehållsförteckning:

Upptäcka nödlägen - Qualcomm Dragonboard 410c: 7 steg
Upptäcka nödlägen - Qualcomm Dragonboard 410c: 7 steg

Video: Upptäcka nödlägen - Qualcomm Dragonboard 410c: 7 steg

Video: Upptäcka nödlägen - Qualcomm Dragonboard 410c: 7 steg
Video: Se lastbilskonvojen i Ottowa: "Någonting jag aldrig tidigare upplevt" 2024, November
Anonim
Upptäcka nödsituationer - Qualcomm Dragonboard 410c
Upptäcka nödsituationer - Qualcomm Dragonboard 410c
Upptäcka nödlägen - Qualcomm Dragonboard 410c
Upptäcka nödlägen - Qualcomm Dragonboard 410c
Upptäcka nödsituationer - Qualcomm Dragonboard 410c
Upptäcka nödsituationer - Qualcomm Dragonboard 410c

Letar du efter säkerhetssystem som arbetar med att övervaka nödsituationer, är det möjligt att märka att det är för svårt att behandla all information som spelats in. När vi tänkte på det bestämde vi oss för att använda vår kunskap inom ljud-/bildbehandling, sensorer och ställdon för att skapa ett komplett system som gör det möjligt att förutsäga situationer där människors liv är i fara.

Detta projekt har lokal sensor och fjärranslutna enheter för att samla in data och skicka till dragonboard, som har processorkraft som kan extrahera viktig information från den mottagna data.

Fjärrenheten är ett Arduino-kort med en modul HC-06 som är möjlig att överföra all information och ett billigt nät som kan hantera stora mängder data.

Steg 1: Obligatoriska komponenter

Först och främst måste du bestämma vilka sensorer och ställdon som du ska använda och göra arkitektskissen.

I vårt fall använder vi dessa sensorer anslutna i ARDUINO Pro Mini, listade nedan:

  • PIR (passiv infraröd-närvarosensor)
  • DHT 11 (fukt- och temperatursensor)
  • CO-sensor (kolmonoxidsensor)
  • Brusgivare

Ställdon:

  • motorservo
  • summer

Kommunikation:

Bluetooth-modul HC-06

Till Dragonboard 410c kommer vi att ha några sensorer och mjukvaror för att bearbeta alla datainmatningar:

Sensorer:

  • DHT 11
  • Solljus sensor

Ställdon:

  • Relä
  • Led status
  • Buzzer

Steg 2: Skapa fjärrenhet

Gör fjärrenhet
Gör fjärrenhet

Nu är det dags att ansluta alla följande komponenter till Arduino Board, skapa en enhet som tar emot data från atmosfären (buller, luftfuktighet, temperatur, etc) och skicka till Dragonboard med Bluetooth-modulen HC-06.

Det är nödvändigt att vara uppmärksam på anslutningarna, eftersom all sensor har specifika platser att koppla.

På systemet är det möjligt att ha mer än en enhet för att samla in data. Ju fler enheter du har installerat i miljön, desto mer exakt är diagnostiken som genereras av databehandling. Eftersom det kommer att vara möjligt att extrahera ett bredare spektrum av information som kan vara användbar.

Vi bestämde oss för att använda ett arduino -kort eftersom det har mer kompatibla sensorer, och det är möjligt att installera dessa fjärranslutna enheter på olika platser och samla in mer information.

Den lokala enheten är DragonBoard 410c, som behandlar ljud, video, digital och analog information med din kraftfulla SnapDragon 410 -processor.

Placering av komponenterna (Remote Devide)

Som en bit har några stift som måste anslutas i de högra stiften på arduino pro mini -kortet.

Bluetooth-modul HC-06 har 4 stift:

  • TX (sändare) -> ansluten på RX Arduinos stift
  • RX (mottagare) -> ansluten på TX Arduinos stift
  • VCC -> ansluten på 5v
  • GND

DHT 11 -sensorn har 4 stift (men endast 3 används):

  • Signal -> ansluten på en digital stift
  • VCC -> ansluten på 5v
  • GND

PIR -sensor har 3 stift:

  • Signal -> ansluten på en digital stift
  • VCC -> ansluten på 5v
  • GND

Gassensor (MQ) har 4 stift:

  • Digital OUT -> ansluten på en digital pin (om du vill ha digital information)
  • Analog OUT -> i vårt fall använder vi detta anslutet på en analog pin
  • VCC -> ansluten på 5v
  • GND

Ljussensor (KY-038) har 3 stift:

  • Signal -> ansluten på en analog stift
  • VCC -> ansluten på 5v
  • GND

Kod för Arduino fjärrenhet:

/ * * Arduino skicka data via Blutooth * * Värdena på sensorer läses, sammanfogas på * String och skickas via seriell port. */ #inkludera "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); flytande luftfuktighet, temperatur; booleska pir = 0; int co, mic; String msg = ""; char nome [40]; void setup () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); temperatur = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); mic = analogRead (A0); msg = "#;" + String (humidaty) + ";" + String (temperatur)+ ";"+ String (mic)+ ";"+ String (pir)+ ";" + String (co) + ";#" + "\ n"; Serial.print (msg); fördröjning (2000); }

Kodförklaring:

Alla stiften som används i Arduino anges i början av koden och de respektive bibliotek som krävs för att sensorerna ska fungera initieras. All data kommer att skickas till respektive variabler som tar emot värdena som läses från varje sensor var 2000 millisekund, sedan sammanfogas alla i en sträng, sedan skrivs det i serie. Därifrån är det mycket enkelt med pytonkoden som finns i DragonBoard att fånga sådana data.

Steg 3: Programvara och bibliotek

För att bearbeta all data som tas emot och styra säkerhetssystemet är det nödvändigt att använda några programvaror och bibliotek i Qualcomm DragonBoard 410c.

I detta specifika projekt använder vi:

Mjukvaror:

  • Pytonorm
  • Arduino

Plattformar:

  • Amazon AWS -> onlineserver
  • Phant -> Värddatatjänst

Bibliotek:

  • OpenCV-Videobearbetning (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - Ljudbehandling (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 - Träna och förutsäga maskininlärning (https://scikit-learn.org/stable/install.html)
  • cPickle - Spara maskininlärningsparametrarna (https://pymotw.com/2/pickle/)
  • MRAA - Använd GPIO: erna (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM-Använd GPIO: erna (https://github.com/intel-iot-devkit/upm)
  • PySerial - Används för seriell kommunikation med Bluetooth -enhet (https://pythonhosted.org/pyserial/)

Steg 4: Använda SSH och installera Libs

Först och främst måste du få IP -adressen från Dragonboard, för att göra det måste du slå på DragonBoard anslutet med en mus, ett tangentbord och en HDMI -bildskärm. När kortet är på måste du ansluta till ett nätverk, än du går till terminalen och kör kommandot:

sudo ifconfig

efter det kan du få IP -adressen.

Med IP -adressen kan du komma åt Dragonboard via SHH, för att göra det behöver du öppna en terminal i en dator ansluten i samma nätverk som kortet. I terminalen kan du köra kommandot:

ssh linaro@{IP}

(du bör ersätta {IP} med den IP -adress som du får i Dragonboard).

Den första lib som du behöver installera är mraa lib. För att göra det måste du köra följande kommando i terminalen:

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

För att installera opencv för python behöver du bara köra kommandot:

sudo apt-get install python-opencv

För att installera PyAudio måste du köra kommandot:

sudo apt-get install python-pyaudio python3-pyaudio

Libs WAVE och AudioOp är redan installerade i kortet. För att installera numpy måste du köra kommandot:

sudo apt-get install python-numpy python-scipy

Det sista lib som du måste installera är scikit, för att installera det måste du ha pip installerat. Än du behöver bara köra kommandot:

pip installera scikit-lear

Steg 5: Bluetooth -protokoll

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

DragonBoard -anslutning med Arduino via Bluetooth

Bluetooth-modulen (HC-06) var ursprungligen ansluten till Arduino Nano enligt följande exempel:

Med hjälp av det grafiska gränssnittet Linaro (operativsystem som används i det aktuella projektet i DragonBoard) klickar du på Bluetooth -symbolen till höger i den nedre fältet och klickar sedan på "Konfigurera ny enhet" och konfigurerar med din Bluetooth -modul så att den lämnas ihopparad. Kontrollera att din modul faktiskt är ansluten genom att klicka på Bluetooth -symbolen igen, klicka på "Enheter …" och se om namnet på din enhet är listat och anslutet. Välj nu din enhet på skärmen "Bluetooth -enheter" och högerklicka på den och notera porten som din Bluetooth -modul är ansluten till (t.ex. "rfcomm0"). Obs! Portnamnet som din enhet är ansluten till kommer att vara viktigt för nästa steg för att möjliggöra datautbyte.

Etablering av DragonBoard Data Exchange och Bluetooth

I grund och botten följer vi steg för steg i länken: https://www.uugear.com/portfolio/bluetooth-communi… men vi utförde inte parningens del bara utförandet av pythonkoderna och Arduino. I python användes det seriella biblioteket som initieras i porten som är ansluten till bluetooth, därav läser pythonkoden data från sensorerna som är anslutna till arduino via Bluetooth -modulen.

Steg 6: Använda mezzanine på DragonBoard 410c

Använda mezzanine på DragonBoard 410c
Använda mezzanine på DragonBoard 410c

För att göra anslutningarna mellan dragonboard och komponenter använder vi en typ av sköld som kallas av Mezannine, utvecklad av 96boards.

Med denna skärm blir anslutning av kringutrustning mycket enklare.

Anslutningarna använder är från lundens utvecklingssats, så det är bara att använda en speciell kabel som ansluter båda vägarna, Alla delar kan enkelt hittas på denna webbplats:

Vi använder följande kit nedan:

  • Grove Relä
  • Grove Sunlight sensor
  • Grove LED -uttag
  • Grove temp & humi sensor
  • Grove summer

Steg 7: DragonBoard 410c -programvara

Delen av programmet i DragonBoard kodades i Python och programmet som användes på Arduino utvecklades i C ++. Varannan minut läser Arduino all sensor som är ansluten till den. Skicka avläsningen än Arduino till DragonBoard via Bluetooth. DragonBoard kombinerar läsningen från Arduino med den läsning som den gör av mezzaninskölden med funktionerna från ljud- och videosamplarna.

Med dessa uppgifter försöker styrelsen förutsäga om det uppstår en nödsituation. Styrelsen skickar till Amazons webbtjänst med hjälp av Phanten rådata och förutsägelser som den gjorde. Om tavlan förutspår att det inträffar en konstig situation försöker den varna användaren för att blinka en lysdiod och summer i mezzaninen och visa på webbapplikationen. I webbapplikationen är det också möjligt att se rådata för att förstå vad som händer inom detta område.

Rekommenderad: