Sisukord:

Tee seire: 15 sammu
Tee seire: 15 sammu

Video: Tee seire: 15 sammu

Video: Tee seire: 15 sammu
Video: для тех кто не знал 😐#амина#тендерлибае#коля #некоглай#ситуация#дипортация#молдова#хейт#рек# 2024, Juuli
Anonim
Teede seire
Teede seire

Täna näitame teile, kuidas seadistasime kiirendusmõõturitel, LoRaWANil, Amazoni veebiteenustel ja Google Cloudi API -l põhineva teeanomaaliate seiresüsteemi.

Samm: nõuded

  • DISCO-L072CZ-LRWAN1 plaat
  • X-NUCLEO-IKS01A2 laiendusmoodul (kiirendusmõõturi jaoks)
  • X-NUCLEO-GNSS1A1 (lokaliseerimiseks)
  • AWS -i konto
  • Google'i pilvplatvormi konto

Samm: anduri püsivara ehitamine ja vilkumine

Ühendage tahvli peal olevad IKS01A2 ja GNSS1A1 GPIO tihvtide kaudu. Laadige GitHubist alla püsivara kood. Looge ARM Mbedis konto (kui teil seda veel pole) ja importige kood veebikompilaatori repos. Määrake sihtplatvormiks DISCO-L072CZ-LRWAN1 ja salvestage projekt. Nüüd minge asjade võrku ja looge konto, kui teil seda veel pole. Looge rakendus, looge rakenduses uus seade ja määrake ühenduse režiimiks OTAA. Haarake sobivad parameetrid, et täita failis mbed_app.json järgmised väljad: "lora.appskey", "lora.nwkskey", "lora.device-address".

Andur salvestab perioodiliselt kiirendusmõõturi ja GNSS -i andmed ning saadab need LoRa -ühenduse kaudu lähimale lüüsile, mis edastab need meie asjade võrgu rakendusele. Järgmine samm on pilveserveri seadistamine ja TTN -i HTTP -integratsioon.

3. samm: pilve seadistamine

Pilve seadistamine
Pilve seadistamine

Nüüd oleme valmis seadistama pilvetaristu, mis kogub ja koondab kõigi kasutusele võetud tahvlite andmed. See infrastruktuur on näidatud alloleval joonisel ja see koosneb:

  • Kinesis, sissetuleva andmevoo haldamiseks;
  • Lambda, andmete filtreerimiseks ja eeltöötlemiseks enne nende salvestamist;
  • S3, kõigi andmete salvestamiseks;
  • EC2, andmete analüüsimiseks ja meie kasutajaliidese hostimiseks.

Samm: seadistage AWS Lambda

Seadistage AWS Lambda
Seadistage AWS Lambda

Näitame selle infrastruktuuri seadistamiseks vajalikke samme, alustades Lambdast.

  1. Logige sisse oma AWS -kontoga ja konsooli avalehelt ning minge Lambdasse
  2. Klõpsake nuppu Loo funktsioon
  3. Lehe ülaosas tuleks valida Scratchi autor. Seejärel täitke muud väljad nagu pildil ja seejärel klõpsake nuppu Loo funktsioon
  4. Nüüd, kui olete loonud funktsiooni AWS Lambda, minge aadressile https://github.com/roadteam/data-server ja kopeerige faili aws_lambda.py sisu redaktorisse, mille leiate lehe teisest poolest. Teie Lambda funktsioon on nüüd valmis:)

Samm: seadistage AWS Kinesis Firehose'i andmevoog

Seadistage AWS Kinesis Firehose'i andmevoog
Seadistage AWS Kinesis Firehose'i andmevoog
  1. Naaske kohe AWS -i konsooli avalehele ja minge teenusesse Kinesis
  2. Nüüd olete Kinesise avalehel. Tehke lehe paremal jaotises „Kinesis Firehose tarnevoog” valik „Loo uus tarnevoog”.
  3. Kirjutage väljale „Tarnevoo nimi” „tee jälgimise voog”. Jäta muud väljad vaikimisi ja klõpsa järgmisele
  4. Nüüd valige jaotises „Allikakirjete teisendamine AWS Lambdaga” alt Enabled ja Lambda funktsioonina klõpsake äsja loodud „road-monitoring-lambda”. Ärge muretsege, kui ilmub hoiatus funktsiooni ajalõpu kohta, sest meie toiming ei ole arvutuslikult kallis. Jäta muud väljad vaikimisi ja klõpsa järgmisele
  5. Sihtkohana valige Amazon S3 ja sihtkohana S3 valige Loo uus. Kopa nimena sisestage „teede jälgimise kopp“ja seejärel minge. Nüüd jätke muud väljad vaikimisi ja klõpsake nuppu Edasi
  6. Võimalik, et soovite määrata puhvri suuruseks 1 MB ja puhverintervalliks 60 sekundit. Puhver loputatakse S3 -le, kui üks kahest tingimusest on täidetud. Ärge lahkuge lehelt, vaadake järgmist sammu

6. samm: seadistage IAM -i roll kinesi jaoks

Seadistage kinesi jaoks IAM -i roll
Seadistage kinesi jaoks IAM -i roll

Nüüd seadistame Kinesise turbeõigused, kuna see peab eeltöötlemiseks kutsuma funktsiooni Lambda ja siis kirjutab see S3 -le

  1. Valige lehe „IAM roll” allservas „Loo uus valik”, looge uus IAM -i roll nagu pildil ja klõpsake nuppu Luba
  2. Nüüd olete tagasi eelmisele lehele, klõpsake nuppu Järgmine. Nüüd peaksite võib-olla kontrollima kõiki parameetreid. Kui olete lõpetanud, klõpsake nuppu „Loo tarnevoog”

Toru Kinesis-Lambda-S3 on valmis ja töötab!

Samm: seadistage AWS EC2

Seadistage AWS EC2
Seadistage AWS EC2

Nüüd seadistame EC2 eksemplari koos mõne API -ga, mis võimaldab meil AWS -i pilvest andmeid tõsta ja tõmmata ning ka serverit, kus meie rakenduste kasutajaliides majutada. Tootmiskeskkonnas võiksite avaldada API, kasutades skaleeritumat AWS API lüüsi.

  1. Minge AWS konsooli avalehel EC2 teenusele
  2. Klõpsake käsku Käivita instants
  3. Kleepige ülemisse otsinguribale see kood: „ami-08935252a36e25f85”, see on kasutatava eelkonfigureeritud virtuaalse masina identifitseerimiskood. Klõpsake paremal nuppu Vali
  4. Valige veerust „Tüüp” t2.micro ja klõpsake nuppu „Vaata ja käivita”. Ärge käivitage eksemplari veel, minge järgmise sammu juurde

8. toiming: seadistage EC2 jaoks IAM -i turberoll

Seadistage EC2 jaoks IAM -i turberoll
Seadistage EC2 jaoks IAM -i turberoll
  1. Enne käivitamist tahame muuta oma eksemplari turberühma. Selleks klõpsake jaotise „Turvarühmad” paremas servas nuppu „Muuda turvarühmi”. Seadistage uus turvarühm järgmiselt. See konfigureerib põhimõtteliselt teie eksemplari tulemüüri, mis avab pordi 22 SSH -ühenduse jaoks ja porti 80 http -teenuste jaoks
  2. Klõpsake uuesti nuppu „Vaata ja käivita”. Nüüd kontrollige, kas kõik parameetrid on seatud. Kui olete lõpetanud, klõpsake nuppu Käivita
  3. Klõpsates avaneb uus aken, et seadistada võtmepaar eksemplariga ssh -ühenduse loomiseks. Valige „Loo uus võtmepaar” ja sisestage nimeks „ec2-tee-jälgimine”. Klõpsake nuppu Laadi alla võtmepaar. On äärmiselt oluline, et see fail läheks kaduma või (veel hullem) oleks ebakindlalt salvestatud: te ei saa võtit uuesti alla laadida. Pärast.pem võtme allalaadimist on eksemplar käivitamiseks valmis

9. toiming: pääsete juurde oma EC2 eksemplarile

Juurdepääs oma EC2 instantsile
Juurdepääs oma EC2 instantsile

Teie värske EC2 eksemplar on üleval AWS -i pilves. Saate sellega ühenduse luua varem alla laaditud võtmefailiga (selle õpetuse jaoks eeldame, et teate ssh põhitõdesid). Eksemplari IP saate alla laadida, valides selle jaotises „Kirjeldus” armatuurlaual järgmiselt: saate kasutada nii oma avalikku IP -d kui ka avalikku DNS -i. Nüüd sisestage ssh kliendiga käsk:

ssh -i ec2-road-monitoring.pem ec2-user@YOUR-IP-ADDR-OR-DNS

kus ec2-road-monitoring.pem on teie võti varem loodud.

Nüüd jätkake serveripoolse koodi läbivõtmist

git kloon-rekursiivne

10. toiming: hankige Google Mapsi API

Hankige Google Mapsi API
Hankige Google Mapsi API

Oleme peaaegu valmis. Nüüd peame oma html -lehel seadistama google maps API, et kuvada kasutajale kaardi koos teekonnapunktidega:

  1. Logige sisse oma Google'i kontole ja minge aadressile
  2. Klõpsake lehe vasakus servas käsul „Alusta”
  3. Valige menüüst "Kaardid" ja klõpsake siis nuppu Jätka
  4. Projekti nimeks sisestage teede jälgimine ja klõpsake nuppu Edasi
  5. Sisestage oma arveldusandmed ja klõpsake nuppu Jätka
  6. Nüüd on teie projekt valmis ja me saame API võtme, klõpsates valikul API -d ja teenused -> Mandaadid

Samm: käivitage server

Käivitage server
Käivitage server

Ja see on teie API -võti. Viimane asi, mida peate tegema, on minna aadressile data_visualization/anomalies_map.html ja kopeerida oma võti faili lõppu niimoodi, asendades „YOUR-KEY-SIE”

Nüüd on kõik valmis ja valmis! Selle käivitamiseks EC2 eksemplaris: „cd data-server” „python flask_app.py”

Sisestage oma brauserisse oma EC2 eksemplari IP- või DNS -aadress, peaksite nägema kõrvalekallete kaarti, millel on mõned näivandmed

12. samm: tehke asjade võrgus HTTP -integratsioon

Tehke asjade võrgus HTTP -integratsioon
Tehke asjade võrgus HTTP -integratsioon

Nüüd, kui meil on kogu taustainfrastruktuur valmis ja töötatud, saame töödelda HTTP -integratsiooni teostamiseks.

  1. Looge uus rakendus ja registreerige oma seade. Eeldame TTN -i põhiteadmisi, kui mitte, siis vaadake kiirjuhendit
  2. Valige oma rakenduste menüüs „Integratsioonid” ja seejärel „Lisa integratsioon”
  3. Valige HTTP integratsioon
  4. Sisestage pildile järgnevad väljad ja asendage need oma EC2 ip või avaliku DNS -iga

13. samm: andmetöötlus

Iga andurilt kogutud andmekogumi T puhul peate tegema järgmised toimingud:

  1. Hankige numbrite komplekt, mille GPS -koordinaadid langevad T kohalikku piirkonda. Kohalik piirkond on kõik kaardid, mis on 100 meetri kaugusel T -st.
  2. Arvutage iga lähima tüübi N jaoks kiirendusmõõturi Z-telje ruutkeskmine N.
  3. Arvutage ruutkeskmine hälve. Pseudokoodis: std = summa ([(x. Z_accel ** 2 - keskmine) ** 2 x lähedal])
  4. Väljund selles vormingus: lat, long, Z_accel ** 2, mean, std

Kohaliku piirkonna arvutamiseks kasutage GPS -kaugust meetrites. C ++:

#define D2R (M_PI / 180.0)

#define EARTH_RAY 6371 topeltkaugus (double lat1, double long1, double lat2, double long2) {double dlong = (long2 - long1) * D2R; topelt dlat = (lat2 - lat1) * D2R; kahekordne a = pow (sin (dlat/2,0), 2) + cos (lat1 * D2R) * cos (lat2 * D2R) * pow (sin (dlong/2,0), 2); kahekordne c = 2 * atan2 (sqrt (a), sqrt (1-a));

Kasutage eelmises etapis loodud vaheandmeid kasutades kõrvalekaldeid ja tehke naiivne klassifikatsioon, kasutades seda igale reale rakendatud katkendlikult:

rida = kaart (float, line.split (","))

v = rida [2] keskmine = rida [3] std = rida [4] kui v (keskmine + std*3): kui v (keskmine + std*2): kui v (keskmine + std): o.append ([1, rida [0], rida [1]) else: o.append ([2, rida [0], rida [1]) else: o.append ([3, rida [0], rida [1])

Anomaaliaid klassifitseeritakse reegli 68–95–99,7 abil

Nüüd on teil selle vorminguga kollektsioon [tüüp, lat, long].

Tüübi tähendus on järgmine:

  1. Kerge anomaalia, ilmselt ebaoluline
  2. Keskmine anomaalia
  3. Kriitiline anomaalia

14. samm: visualiseerimine

Visualiseerimine
Visualiseerimine

Visualiseerimise osa mõistmiseks ja võib -olla muutmiseks peame õppima kasutama kohandatud markereid, mis on Google Mapsi API funktsioon

Esiteks tuleb kaart tagasihelistamisel initsialiseerida:

function initMap () {

andmed = queryData (); map = new google.maps. Map (document.getElementById ('map'), {zoom: 15, center: {lat: data [0] [1], lng: data [0] [2]}}); Märkus(); }

Määrake selle tagasihelistamise nimi URL -is (sisestasime siia enne oma API -võtit) HTML -märgendis:

script async defer src = "https://maps.googleapis.com/maps/api/js?key=[KEY]&callback=initMap"

Objekti loomisel saab kaardile lisada markeri:

uus google.maps. Marker ({positsioon: {lat: LATITUDE, lng: LONGITUDE}, kaart: kaart, ikoon: “/path/to/icon.png”})

Koodist näete, et anomaaliate andmekogumi igale teabele sisestatakse marker (vt märkuse () funktsiooni) ja ikoon põhineb anomaalia klassil. Selle brauserisse käivitamisel saame uurida kaarti, kus anomaaliaid saab märkeruutude abil filtreerida, nagu pildil näha.

Samm 15: Autorid ja välislingid

Selle projekti tegid Giovanni De Luca, Andrea Fioraldi ja Pietro Spadaccino, Rooma Sapienza Ülikooli arvutiteaduse üliõpilased.

  • Slaidid, mida autorid selle kontseptsiooni tõestamiseks kasutasid:

    www.slideshare.net/PietroSpadaccino/road-m…

  • GitHubi repod kogu koodiga:

    github.com/roadteam

Soovitan: