Turinys:

Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“: 7 žingsniai
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“: 7 žingsniai

Video: Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“: 7 žingsniai

Video: Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“: 7 žingsniai
Video: „Kelių patruliai: viskas užfiksuota“: „Volvo“ sukėlė net dvi avarines situacijas per minutę 2024, Lapkritis
Anonim
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“
Avarinių situacijų nustatymas - „Qualcomm Dragonboard 410c“

Ieškant saugumo sistemų, kurios stebi ekstremalias situacijas, galima pastebėti, kad per sunku apdoroti visą įrašytą informaciją. Pagalvoję apie tai, nusprendėme panaudoti savo žinias garso/vaizdo apdorojime, jutikliuose ir pavarose, kad sukurtume vieną pilną sistemą, kuri leistų numatyti situacijas, kai žmonių gyvybėms gresia pavojus.

Šis projektas turi vietinį jutiklį ir nuotolinius įrenginius, kad galėtų rinkti duomenis ir nusiųsti į drakono lentą, kuri turi apdorojimo galią, galinčią išgauti svarbią informaciją iš gautų duomenų.

Nuotolinis įrenginys yra „Arduino“plokštė su moduliu HC-06, kurį galima pasukti, kad būtų galima perduoti visą informaciją, ir nebrangus platus tinklas, galintis apdoroti didelį duomenų kiekį.

1 žingsnis: reikalingi komponentai

Visų pirma, jūs turite nuspręsti, kuriuos jutiklius ir pavaras naudosite, ir sukurti architektūros eskizą.

Mūsų atveju mes naudojame šiuos jutiklius, sujungtus su ARDUINO Pro Mini, išvardytais žemiau:

  • PIR (pasyvus infraraudonųjų spindulių-buvimo jutiklis)
  • DHT 11 (drėgmės ir temperatūros jutiklis)
  • CO jutiklis (anglies monoksido jutiklis)
  • Triukšmo jutiklis

Pavaros:

  • variklio servo
  • garsinis signalas

Bendravimas:

„Bluetooth“modulis HC-06

„Dragonboard 410c“turėsime kai kuriuos jutiklius ir programinę įrangą, kad galėtume apdoroti visus įvestus duomenis:

Jutikliai:

  • DHT 11
  • Saulės šviesos jutiklis

Pavaros:

  • Estafetė
  • LED būsena
  • „Buzzer“https://www.seeedstudio.com/Grove-Buzzer-p-768.ht…

2 žingsnis: sukurkite nuotolinį įrenginį

Nuotolinio įrenginio kūrimas
Nuotolinio įrenginio kūrimas

Dabar atėjo laikas prijungti visus toliau nurodytus komponentus prie „Arduino“plokštės, sukuriant įrenginį, kuris gaus duomenis iš aplinkos (triukšmo, drėgmės, temperatūros ir tt) ir nusiųs į „Dragonboard“per „Bluetooth“modulį HC-06.

Būtina atkreipti dėmesį į sujungimus, nes visuose jutikliuose yra nurodytos sujungimo vietos.

Sistemoje galima rinkti daugiau nei vieną įrenginį duomenims rinkti. Kuo daugiau įrenginių įdiegėte aplinkoje, tuo tikslesnė duomenų apdorojimo sukurta diagnostika. Kadangi bus galima išgauti daugiau informacijos, kuri gali būti naudinga.

Mes nusprendėme naudoti „arduino“plokštę, nes ji turi daugiau suderinamų jutiklių, ir šį nuotolinį įrenginį galima įdiegti skirtingose vietose, renkant daugiau informacijos.

Vietinis įrenginys yra „DragonBoard 410c“, kuris su galingu „SnapDragon 410“procesoriumi apdoroja garso, vaizdo, skaitmeninę ir analoginę informaciją.

Komponentų išdėstymas (nuotoliniu būdu)

Vienoje dalyje yra keletas kaiščių, kuriuos reikia prijungti prie tinkamų kaiščių ant arduino pro mini plokštės.

„Bluetooth“modulis HC-06 turi 4 kontaktus:

  • TX (Transmissor) -> prijungtas prie „RX Arduino“kaiščio
  • RX (imtuvas) -> prijungtas prie „TX Arduino“kaiščio
  • VCC -> prijungtas prie 5v
  • GND

DHT 11 jutiklis turi 4 kaiščius (tačiau naudojami tik 3):

  • Signalas -> prijungtas prie skaitmeninio kaiščio
  • VCC -> prijungtas prie 5v
  • GND

PIR jutiklis turi 3 kaiščius:

  • Signalas -> prijungtas prie skaitmeninio kaiščio
  • VCC -> prijungtas prie 5v
  • GND

Dujų jutiklis (MQ) turi 4 kaiščius:

  • Skaitmeninis išėjimas -> prijungtas prie skaitmeninio kaiščio (jei norite skaitmeninės informacijos)
  • Analog OUT -> mūsų atveju mes naudojame tai prijungtą prie analoginio kaiščio
  • VCC -> prijungtas prie 5v
  • GND

Triukšmo jutiklis (KY-038) turi 3 kaiščius:

  • Signalas -> prijungtas prie analoginio kaiščio
  • VCC -> prijungtas prie 5v
  • GND

Nuotolinio „Arduino“įrenginio kodas:

/ * * „Arduino“siunčia duomenis per „Blutooth“* * Jutiklių vertė nuskaitoma, sujungiama * eilute ir siunčiama per nuoseklųjį prievadą. */ #įtraukti „DHT.h“#define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE); plūdė drėgmė, temperatūra; loginis pir = 0; int, mikrofonas; Eilutė msg = ""; char nome [40]; void setup () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); temperatūra = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); mic = analogRead (A0); msg = "#;" + Styga (drėgna) + ";" + Eilutė (temperatūra)+ ";"+ Eilutė (mikrofonas)+ ";"+ Eilutė (pir)+ ";" + Eilutė (co) + ";#" + "\ n"; Serial.print (msg); vėlavimas (2000 m.); }

Kodo paaiškinimas:

Visi „Arduino“naudojami kaiščiai nurodomi kodo pradžioje ir inicijuojamos atitinkamos bibliotekos, reikalingos jutikliams veikti. Visi duomenys bus perduoti atitinkamiems kintamiesiems, kurie gaus vertes, nuskaitytas iš kiekvieno jutiklio kas 2000 milisekundžių, tada visi jie yra sujungti į eilutę, tada rašoma serija. Iš ten „DragonBoard“esantis pyton kodas labai lengvai užfiksuoja tokius duomenis.

3 žingsnis: Programinė įranga ir bibliotekos

Norint apdoroti visus gautus duomenis ir valdyti apsaugos sistemą, būtina naudoti kai kurias „Qualcomm DragonBoard 410c“esančias programas ir bibliotekas.

Šiame konkrečiame projekte naudojame:

Programinė įranga:

  • Python
  • Arduino

Platformos:

  • „Amazon AWS“-> internetinis serveris
  • Phant -> Pagrindinio kompiuterio paslauga

Bibliotekos:

  • „OpenCV“-vaizdo apdorojimas (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • „PyAudio“- garso apdorojimas (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“- mokykite ir nuspėkite mašinų mokymąsi (https://scikit-learn.org/stable/install.html)
  • „cPickle“- išsaugokite mašininio mokymosi parametrus (https://pymotw.com/2/pickle/)
  • MRAA - naudokite GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM-naudokite GPIO (https://github.com/intel-iot-devkit/upm)
  • „PySerial“- naudojamas nuosekliam ryšiui su „Bluetooth“įrenginiu (https://pythonhosted.org/pyserial/)

4 veiksmas: SSH naudojimas ir „Libs“diegimas

Pirmiausia turite gauti IP adresą iš „Dragonboard“, kad tai padarytumėte, turite įjungti „DragonBoard“, prijungtą prie pelės, klaviatūros ir HDMI monitoriaus. Kai lenta įjungta, turite prisijungti prie tinklo, tada eikite į terminalą ir paleiskite komandą:

sudo ifconfig

po to galite gauti IP adresą.

Turėdami IP adresą, galite pasiekti „Dragonboard“per SHH, kad tai padarytumėte, turite atidaryti terminalą kompiuteryje, prijungtame prie to paties tinklo kaip ir plokštė. Terminale galite paleisti komandą:

ssh linaro@{IP}

(turėtumėte pakeisti {IP} IP adresu, kurį gavote „Dragonboard“).

Pirmasis lib, kurį turite įdiegti, yra „mraa lib“. Norėdami tai padaryti, terminale turite paleisti šią komandą:

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

Norėdami įdiegti „opencv“, skirtą „python“, turite paleisti tik šią komandą:

sudo apt-get install python-opencv

Norėdami įdiegti „PyAudio“, turite paleisti komandą:

sudo apt-get įdiegti python-pyaudio python3-pyaudio

„Libs WAVE“ir „AudioOp“jau yra įdiegti plokštėje. Norėdami įdiegti numpy, turite paleisti komandą:

sudo apt-get įdiegti python-numpy python-scipy

Paskutinė lib, kurią turite įdiegti, yra „scikit“, kad ją įdiegtumėte, turite įdiegti „pip“. Jums tereikia paleisti komandą:

pip install scikit-lear

5 veiksmas: „Bluetooth“protokolas

„Bluetooth“protokolas
„Bluetooth“protokolas
„Bluetooth“protokolas
„Bluetooth“protokolas
„Bluetooth“protokolas
„Bluetooth“protokolas

„DragonBoard“ryšys su „Arduino“per „Bluetooth“

„Bluetooth“modulis (HC-06) iš pradžių buvo prijungtas prie „Arduino Nano“pagal šį pavyzdį:

Naudodami „Linaro“(operacinė sistema, naudojama dabartiniame „DragonBoard“projekte) sąsają, dešinėje apatinės juostos pusėje spustelėkite „Bluetooth“simbolį, tada spustelėkite „Nustatyti naują įrenginį“ir konfigūruokite naudodami „Bluetooth“modulį, palikdami jį suporuotą. Patikrinkite, ar jūsų modulis iš tikrųjų prijungtas, dar kartą spustelėdami „Bluetooth“simbolį, spustelėkite „Įrenginiai…“ir pažiūrėkite, ar jūsų įrenginio pavadinimas pateiktas sąraše ir prijungtas. Dabar „Bluetooth“įrenginių ekrane pasirinkite savo įrenginį ir dešiniuoju pelės mygtuku spustelėkite jį ir pažymėkite prievadą, prie kurio prijungtas „Bluetooth“modulis (pvz., „Rfcomm0“). Pastaba: prievado, prie kurio prijungtas jūsų prietaisas, pavadinimas bus svarbus atliekant kitą veiksmą, leidžiantį keistis duomenimis.

„DragonBoard“duomenų mainų ir „Bluetooth“sukūrimas

Iš esmės mes sekame žingsnis po žingsnio nuorodą: https://www.uugear.com/portfolio/bluetooth-communi…, bet neatlikome susiejimo dalies tik vykdydami python kodus ir „Arduino“. „Python“buvo naudojama serijinė biblioteka, kuri inicijuojama prie „Bluetooth“prijungto prievado, todėl python kodas nuskaitė jutiklių, prijungtų prie „arduino“per „Bluetooth“modulį, duomenis.

6 veiksmas: „Mezzanine“naudojimas „DragonBoard 410c“

„Mezzanine“naudojimas „DragonBoard 410c“
„Mezzanine“naudojimas „DragonBoard 410c“

Norėdami sujungti drakono lentą ir komponentus, mes naudojame „Mezannine“pavadintą skydą, kurį sukūrė 96 lentos.

Naudojant šį skydą, periferinius įrenginius prijungti tampa daug lengviau.

Jungčių naudojimas yra iš giraitės kūrimo rinkinio, todėl naudojamas tik especif kabelis, jungiantis abiem būdais, Visas dalis galite lengvai rasti šioje svetainėje:

Mes naudojame šiuos rinkinius žemiau:

  • Grove estafetė
  • „Grove Sunlight“jutiklis
  • Grove led lizdas
  • Grove temperatūros ir humi jutiklis
  • Grove Buzzer

7 žingsnis: „DragonBoard 410c“programinė įranga

„DragonBoard“programos dalis buvo užkoduota „Python“, o „Arduino“naudojama programa buvo sukurta naudojant C ++. Kas 2 minutes „Arduino“nuskaito visą prie jo prijungtą jutiklį. Nei „Arduino“nusiųs skaitymą į „DragonBoard“per „Bluetooth“. „DragonBoard“sujungia „Arduino“rodmenis su „Mezzanine“skydo rodmenimis ir garso bei vaizdo pavyzdžių funkcijomis.

Remdamasi šiais duomenimis, valdyba bando numatyti, ar įvyksta ekstremali situacija. Valdyba siunčia „Amazon“žiniatinklio tarnybai, naudodama „Phant“neapdorotus duomenis ir jos numatytą prognozę. Jei lenta numato, kad įvyksta keista situacija, ji bando įspėti vartotoją, mirksintį šviesos diodu ir garsiniu signalu, ir parodyti žiniatinklio programoje. Žiniatinklio programoje taip pat galima pamatyti neapdorotus duomenis, kad suprastumėte, kas vyksta šioje srityje.

Rekomenduojamas: