Sisukord:
- Samm: nõuded
- Samm: anduri püsivara ehitamine ja vilkumine
- 3. samm: pilve seadistamine
- Samm: seadistage AWS Lambda
- Samm: seadistage AWS Kinesis Firehose'i andmevoog
- 6. samm: seadistage IAM -i roll kinesi jaoks
- Samm: seadistage AWS EC2
- 8. toiming: seadistage EC2 jaoks IAM -i turberoll
- 9. toiming: pääsete juurde oma EC2 eksemplarile
- 10. toiming: hankige Google Mapsi API
- Samm: käivitage server
- 12. samm: tehke asjade võrgus HTTP -integratsioon
- 13. samm: andmetöötlus
- 14. samm: visualiseerimine
- Samm 15: Autorid ja välislingid
Video: Tee seire: 15 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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
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
Näitame selle infrastruktuuri seadistamiseks vajalikke samme, alustades Lambdast.
- Logige sisse oma AWS -kontoga ja konsooli avalehelt ning minge Lambdasse
- Klõpsake nuppu Loo funktsioon
- Lehe ülaosas tuleks valida Scratchi autor. Seejärel täitke muud väljad nagu pildil ja seejärel klõpsake nuppu Loo funktsioon
- 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
- Naaske kohe AWS -i konsooli avalehele ja minge teenusesse Kinesis
- Nüüd olete Kinesise avalehel. Tehke lehe paremal jaotises „Kinesis Firehose tarnevoog” valik „Loo uus tarnevoog”.
- Kirjutage väljale „Tarnevoo nimi” „tee jälgimise voog”. Jäta muud väljad vaikimisi ja klõpsa järgmisele
- 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
- 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
- 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
Nüüd seadistame Kinesise turbeõigused, kuna see peab eeltöötlemiseks kutsuma funktsiooni Lambda ja siis kirjutab see S3 -le
- Valige lehe „IAM roll” allservas „Loo uus valik”, looge uus IAM -i roll nagu pildil ja klõpsake nuppu Luba
- 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
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.
- Minge AWS konsooli avalehel EC2 teenusele
- Klõpsake käsku Käivita instants
- Kleepige ülemisse otsinguribale see kood: „ami-08935252a36e25f85”, see on kasutatava eelkonfigureeritud virtuaalse masina identifitseerimiskood. Klõpsake paremal nuppu Vali
- 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
- 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
- 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
- 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
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
Oleme peaaegu valmis. Nüüd peame oma html -lehel seadistama google maps API, et kuvada kasutajale kaardi koos teekonnapunktidega:
- Logige sisse oma Google'i kontole ja minge aadressile
- Klõpsake lehe vasakus servas käsul „Alusta”
- Valige menüüst "Kaardid" ja klõpsake siis nuppu Jätka
- Projekti nimeks sisestage teede jälgimine ja klõpsake nuppu Edasi
- Sisestage oma arveldusandmed ja klõpsake nuppu Jätka
- Nüüd on teie projekt valmis ja me saame API võtme, klõpsates valikul API -d ja teenused -> Mandaadid
Samm: 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
Nüüd, kui meil on kogu taustainfrastruktuur valmis ja töötatud, saame töödelda HTTP -integratsiooni teostamiseks.
- Looge uus rakendus ja registreerige oma seade. Eeldame TTN -i põhiteadmisi, kui mitte, siis vaadake kiirjuhendit
- Valige oma rakenduste menüüs „Integratsioonid” ja seejärel „Lisa integratsioon”
- Valige HTTP integratsioon
- 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:
- Hankige numbrite komplekt, mille GPS -koordinaadid langevad T kohalikku piirkonda. Kohalik piirkond on kõik kaardid, mis on 100 meetri kaugusel T -st.
- Arvutage iga lähima tüübi N jaoks kiirendusmõõturi Z-telje ruutkeskmine N.
- Arvutage ruutkeskmine hälve. Pseudokoodis: std = summa ([(x. Z_accel ** 2 - keskmine) ** 2 x lähedal])
- 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:
- Kerge anomaalia, ilmselt ebaoluline
- Keskmine anomaalia
- Kriitiline anomaalia
14. samm: 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:
Rohelise maja seire IOT -iga: 5 sammu
Rohelise maja seire IOT -iga: kui tegemist on põllumajandusega, siis temperatuuri jälgimine & taimede niiskus on nende ellujäämise oluline tegur. Praegu kasutavad inimesed kasvuhoones kinnitatud termomeetreid, et põllumehed saaksid temperatuuri mõõta. Kuid see manuaalne rakendus
IoT -põhine mulla niiskuse seire- ja juhtimissüsteem NodeMCU abil: 6 sammu
IoT-põhine pinnase niiskuse seire- ja juhtimissüsteem NodeMCU abil INR) releemoodul- Amazon (130/- INR
Kodanikuinfrastruktuuride tervisliku seisundi seire traadita vibratsiooniandurite abil: 8 sammu
Kodanikuinfrastruktuuride tervisliku seisundi seire traadita vibratsiooniandurite abil: vana hoone ja tsiviilinfrastruktuuri halvenemine võib põhjustada surmaga lõppeva ja ohtliku olukorra. Nende struktuuride pidev jälgimine on kohustuslik. Struktuurne tervisekontroll on äärmiselt oluline metoodika hindamaks
Hüdropooniline kasvuhoone seire- ja juhtimissüsteem: 5 sammu (koos piltidega)
Hüdropooniline kasvuhoone seire- ja juhtimissüsteem: selles juhendis näitan teile, kuidas ehitada hüdropoonilist kasvuhoone seire- ja juhtimissüsteemi. Näitan teile valitud komponente, vooluringi konstrueerimise ühendusskeemi ja Arduino visandit, mida kasutati Seeed programmeerimiseks
DIY seire-/turvarobot!: 7 sammu
DIY järelevalve-/turvarobot!: Kõigile meeldib sõita rc -autodega, olgu see siis mänguasja- või hobiklass. Lõbus kahekordistub, kui saate oma rc -autos fpv -vaate. Kuid fpv süsteem on kallis süsteem. Hea fpv süsteem maksab üle 150 $. Plust peate ostma 200 -dollarise hobiklassi rc ca