Obsah:
- Krok 1: Požiadavky
- Krok 2: Vytvorenie a aktualizácia firmvéru senzora
- Krok 3: Nastavenie cloudu
- Krok 4: Nastavte AWS Lambda
- Krok 5: Nastavte dátový tok AWS Kinesis Firehose
- Krok 6: Nastavte úlohu IAM pre kinezu
- Krok 7: Nastavte AWS EC2
- Krok 8: Nastavte bezpečnostnú úlohu IAM pre EC2
- Krok 9: Prístup k vašej inštancii EC2
- Krok 10: Načítajte rozhranie Google Maps API
- Krok 11: Spustite server
- Krok 12: Vykonajte integráciu HTTP v sieti Things
- Krok 13: Spracovanie údajov
- Krok 14: Vizualizácia
- Krok 15: Kredity a externé odkazy
Video: Monitorovanie cesty: 15 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Dnes vám ukážeme, ako sme nastavili systém monitorovania anomálií na cestách založený na akcelerometroch, LoRaWAN, webových službách Amazon a Google Cloud API.
Krok 1: Požiadavky
- Doska DISCO-L072CZ-LRWAN1
- Rozširujúci modul X-NUCLEO-IKS01A2 (pre accellerometer)
- X-NUCLEO-GNSS1A1 (pre lokalizáciu)
- Účet AWS
- Účet Google Cloud Platform
Krok 2: Vytvorenie a aktualizácia firmvéru senzora
Pripojte IKS01A2 a GNSS1A1 na vrchnú dosku cez piny GPIO. Stiahnite si kód firmvéru z GitHub. Vytvorte (ak ho ešte nemáte) účet v ARM Mbed a importujte kód do úložiska v online kompilátore. Nastavte cieľovú platformu na DISCO-L072CZ-LRWAN1 a uložte projekt. Teraz choďte do The Things Network a vytvorte si účet, ak ho ešte nemáte. Vytvorte aplikáciu, vytvorte nové zariadenie v aplikácii a nastavte režim pripojenia na OTAA. Uchopte príslušné parametre a vyplňte nasledujúce polia v súbore mbed_app.json: "lora.appskey", "lora.nwkskey", "lora.device-address".
Senzor bude pravidelne zaznamenávať akcelerometer a údaje GNSS a odosielať ich prostredníctvom pripojenia LoRa k najbližšej bráne, ktorá ich postúpi do našej aplikácie v sieti vecí. Ďalším krokom je nastavenie cloudového servera a integrácie HTTP na serveri TTN.
Krok 3: Nastavenie cloudu
Teraz sme pripravení nastaviť cloudovú infraštruktúru, ktorá bude zhromažďovať a agregovať údaje zo všetkých nasadených dosiek. Táto infraštruktúra je znázornená na obrázku nižšie a pozostáva z:
- Kinesis, na spracovanie prichádzajúceho dátového toku;
- Lambda, na filtrovanie a predbežné spracovanie údajov pred ich uložením;
- S3, na uloženie všetkých údajov;
- EC2, na analýzu údajov a hostenie nášho klientskeho rozhrania.
Krok 4: Nastavte AWS Lambda
Ilustrujeme kroky potrebné na zriadenie tejto infraštruktúry, počnúc Lambdou.
- Prihláste sa pomocou svojho účtu AWS a z hlavnej stránky konzoly choďte na Lambda
- Kliknite na položku Vytvoriť funkciu
- V hornej časti stránky by mal byť vybratý Autor od začiatku. Potom vyplňte ostatné polia ako na obrázku a potom kliknite na položku Vytvoriť funkciu
- Teraz, keď ste vytvorili funkciu AWS Lambda, navštívte stránku https://github.com/roadteam/data-server a skopírujte obsah súboru aws_lambda.py do editora, v ktorom nájdete druhú polovicu stránky. Vaša funkcia Lambda je teraz pripravená:)
Krok 5: Nastavte dátový tok AWS Kinesis Firehose
- Vráťte sa teraz na hlavnú stránku konzoly AWS a v časti Služby prejdite na položku Kinesis
- Teraz ste na hlavnej stránke Kinesis. V pravej časti stránky v časti „Streamy doručovania Kinesis Firehose“vyberte „Vytvoriť nový stream doručovania“.
- Do poľa „Názov streamu dodávky“napíšte „Stream monitorovania cesty“. Ostatné polia nechajte predvolené a kliknite na tlačidlo Ďalej
- Teraz v časti „Transformovať zdrojové záznamy pomocou AWS Lambda“vyberte možnosť Povolené a ako funkciu Lambda kliknite na novovytvorenú „monitorovanie cesty-lambda“. Ak sa objaví upozornenie na časový limit funkcie, nie je dôvod sa znepokojovať, pretože operácia, ktorú robíme, nie je výpočtovo drahá. Ostatné polia nechajte predvolené a kliknite na tlačidlo Ďalej
- Ako cieľ vyberte Amazon S3 a ako cieľ S3 vyberte Vytvoriť nový. Ako názov vedra zadajte „vedro na monitorovanie cesty“a potom choďte. Teraz nechajte ostatné polia na predvolené hodnoty a kliknite na Ďalej
- Možno budete chcieť nastaviť veľkosť vyrovnávacej pamäte na 1 MB a interval vyrovnávacej pamäte na 60 sekúnd. Pufr bude prepláchnutý do S3, kedykoľvek je splnená jedna z dvoch podmienok. Neopúšťajte stránku, pozrite sa na ďalší krok
Krok 6: Nastavte úlohu IAM pre kinezu
Teraz sme nastavili bezpečnostné povolenia pre Kinesis, pretože na predspracovanie musí volať funkciu Lambda a potom bude písať na S3
- V spodnej časti stránky, v ktorej sa nachádzate v „role IAM“, vyberte „Vytvoriť novú z možností“, vytvorte novú rolu IAM ako na obrázku a kliknite na položku Povoliť
- Teraz ste späť na predchádzajúcej stránke, kliknite na tlačidlo Ďalej. Teraz možno budete chcieť znova skontrolovať všetky parametre. Po dokončení kliknite na „Vytvoriť stream doručenia“.
Plynovod Kinesis-Lambda-S3 je v prevádzke!
Krok 7: Nastavte AWS EC2
Teraz nastavíme inštanciu EC2 s niektorými API, ktoré nám umožnia tlačiť a sťahovať údaje z cloudu AWS a tiež zo servera, na ktorom budeme hostovať frontend našej aplikácie. V produkčnom prostredí možno budete chcieť publikovať API pomocou rozšíriteľnejšej brány API AWS.
- Na hlavnej stránke konzoly AWS prejdite na službu EC2
- Kliknite na Spustiť inštanciu
- Do horného vyhľadávacieho panela vložte tento kód: „ami-08935252a36e25f85“, čo je identifikačný kód vopred nakonfigurovaného virtuálneho počítača, ktorý sa má použiť. Vpravo kliknite na položku Vybrať
- V stĺpci „Typ“vyberte t2.micro a kliknite na „Skontrolovať a spustiť“. Inštanciu ešte nespúšťajte, prejdite na ďalší krok
Krok 8: Nastavte bezpečnostnú úlohu IAM pre EC2
- Pred spustením chceme upraviť skupinu zabezpečenia našej inštancie. Ak to chcete urobiť, v pravej časti sekcie „Skupiny zabezpečenia“kliknite na „Upraviť skupiny zabezpečenia“Vytvorte novú skupinu zabezpečenia nasledujúcim spôsobom. V zásade sa nakonfiguruje brána firewall vašej inštancie, ktorá odhalí port 22 pre pripojenie SSH a port 80 pre služby
- Znova kliknite na položku Skontrolovať a spustiť. Teraz skontrolujte, či sú nastavené všetky parametre. Po dokončení kliknite na Spustiť
- Po kliknutí sa otvorí nové okno, v ktorom nastavíte pár kľúčov pre ssh pripojenie k inštancii. Vyberte „Vytvoriť nový pár kľúčov“a ako názov zadajte „ec2-road-monitoring“. Kliknite na položku Stiahnuť pár kľúčov. Je mimoriadne dôležité, aby sa tento súbor stratil alebo (ešte horšie) bol bezpečne uložený: kľúč si už nebudete môcť stiahnuť. Po stiahnutí kľúča.pem je inštancia pripravená na spustenie
Krok 9: Prístup k vašej inštancii EC2
Vaša nová inštancia EC2 je v cloude AWS. Môžete sa k nemu pripojiť pomocou predtým stiahnutého súboru kľúčov (v prípade tohto tutoriálu predpokladáme, že poznáte základy ssh). IP adresu inštancie môžete získať tak, že ju vyberiete na hlavnom paneli v časti „Popis“nasledovne: Môžete použiť svoju verejnú IP alebo verejnú DNS, je rovnaká. S klientom ssh teraz zadajte príkaz:
ssh -i ec2-road-monitoring.pem užívateľ ec2@VAŠA IP-ADDR-ALEBO-DNS
kde ec2-road-monitoring.pem je váš kľúč vygenerovaný predtým.
Teraz pokračujte v ťahaní kódu na strane servera
Krok 10: Načítajte rozhranie Google Maps API
Sme skoro hotoví Teraz musíme na našej html stránke nastaviť rozhranie Google Maps API, aby sa používateľovi zobrazila mapa s trasovými bodmi:
- Prihláste sa do svojho účtu Google a prejdite na stránku
- Kliknite na položku „Začíname“v ľavej časti stránky
- V ponuke vyberte položku „Mapy“a potom kliknite na tlačidlo Pokračovať
- Ako názov projektu zadajte „monitorovanie cesty“a kliknite na Ďalej
- Zadajte svoje fakturačné údaje a kliknite na Pokračovať
- Teraz je váš projekt pripravený a my získame kľúč API kliknutím na APIs & Services -> Credentials
Krok 11: Spustite server
A tam je váš kľúč API. Posledná vec, ktorú musíte urobiť, je prejsť na stránku data_visualization/anomalies_map.html a skopírovať kľúč na koniec súboru, ktorý nahradí text „VAŠE KĽÚČE-TU“
Teraz je všetko pripravené a pripravené! Aby sa spustil, spustite ho v inštancii EC2: „cd data-server“„python flask_app.py“
Zadajte do svojho prehliadača adresu IP alebo DNS vašej inštancie EC2, mala by sa vám zobraziť mapa anomálií s niektorými fiktívnymi údajmi
Krok 12: Vykonajte integráciu HTTP v sieti Things
Teraz, keď máme všetku backendovú infraštruktúru v prevádzke, môžeme spracovať integráciu
- Vytvorte novú aplikáciu a zaregistrujte svoje zariadenie. Predpokladáme základné znalosti o TTN, ak nie v stručnom návode
- V ponuke aplikácií vyberte „Integrácie“a potom „Pridať integráciu“
- Vyberte integráciu
- Zadajte polia nasledujúce za obrázkom a nahraďte ich IP serverom EC2 alebo verejným serverom DNS
Krok 13: Spracovanie údajov
Pre každú n -ticu údajov T zozbieraných zo senzora musíte vykonať nasledujúce kroky:
- Získajte sadu n -tíc, ktoré majú súradnice GPS, spadajúce do miestnej oblasti T. Miestna oblasť sú všetky n -tice, ktoré sa nachádzajú 100 metrov okolo T.
- Pre každú najbližšiu n-ticu vypočítajte štvorcový priemer osi Z akcelerometra v N. V pseudokóde: priemer = súčet ([x. Z_accel ** 2 pre x v blízkosti]) / blízka.veľkosť
- Vypočítajte druhú štandardnú odchýlku na druhú. V pseudokode: std = súčet ([(x. Z_accel ** 2 - priemer) ** 2 pre x v blízkosti])
- Výstup v tomto formáte: lat, long, Z_accel ** 2, mean, std
Na výpočet miestnej oblasti použite vzdialenosť GPS v metroch. V C ++:
#define D2R (M_PI / 180.0)
#define EARTH_RAY 6371 dvojnásobná vzdialenosť (double lat1, double long1, double lat2, double long2) {double dlong = (long2 - long1) * D2R; double dlat = (lat2 - lat1) * D2R; dvojnásobok a = pow (sin (dlat/2,0), 2) + cos (lat1 * D2R) * cos (lat2 * D2R) * pow (sin (dlong/2,0), 2); dvojité c = 2 * atan2 (sqrt (a), sqrt (1-a));
Teraz pomocou medziľahlých údajov generovaných v predchádzajúcom kroku detegujte anomálie a urobte naivnú klasifikáciu pomocou tohto úryvku aplikovaného na každý riadok:
riadok = mapa (float, line.split (","))
v = riadok [2] priemer = riadok [3] štandard = riadok [4] ak v (priemer + štandard + 3): ak v (priemer + štandard*2): ak v (priemer + štandard): o.pridať ([1, riadok [0], riadok [1]) else: o.append ([2, riadok [0], riadok [1]) else: o.append ([3, riadok [0], riadok [1])
Anomálie sú klasifikované podľa pravidla 68–95–99,7
Teraz máte zbierku v tomto formáte [typ, lat, dlhý].
Význam typu je nasledujúci:
- Mierna anomália, pravdepodobne irelevantná
- Stredná anomália
- Kritická anomália
Krok 14: Vizualizácia
Aby sme pochopili a možno zmenili časť vizualizácie, musíme sa naučiť používať vlastné značky, funkciu rozhrania Google Maps API
Po prvé, mapu je potrebné inicializovať pri spätnom volaní:
funkcia initMap () {
data = queryData (); mapa = nový google.maps. Map (document.getElementById ('mapa'), {zoom: 15, center: {lat: data [0] [1], lng: data [0] [2]}}); poznámka(); }
Zadajte názov tohto spätného volania v adrese URL (vložili sme ho sem pred náš kľúč API) do značky HTML:
script async defer src = "https://maps.googleapis.com/maps/api/js?key=[KĽÚČE]&callback=initMap"
Značku je možné do mapy vložiť pri vytváraní objektu:
nový google.maps. Marker ({pozícia: {lat: LATITUDE, lng: LONGITUDE}, mapa: mapa, ikona: “/path/to/icon.png”})
V kóde môžete vidieť, že pre každé údaje v množine údajov o anomáliách je vložená značka (pozri funkciu remark ()) a ikona je založená na triede anomálie. Keď to spustíte do prehliadača, môžeme preskúmať mapu, na ktorej je možné filtrovať anomálie pomocou začiarkavacích políčok, ako je vidieť na obrázku.
Krok 15: Kredity a externé odkazy
Tento projekt realizovali Giovanni De Luca, Andrea Fioraldi a Pietro Spadaccino, študenti prvého ročníka magisterského štúdia inžinierstva v informatike na Sapienzovej univerzite v Ríme.
-
Snímky, ktoré autori použili na predloženie tohto dôkazu konceptu:
www.slideshare.net/PietroSpadaccino/road-m…
-
Úložiská GitHub so všetkým kódom:
github.com/roadteam
Odporúča:
Ubidots + ESP32- Prediktívne monitorovanie stroja: 10 krokov
Ubidots + ESP32- Prediktívne monitorovanie strojov: Prediktívna analýza vibrácií a teploty stroja vytváraním e-mailových udalostí a záznamom vibrácií v hárku Google pomocou Ubidots. Prediktívna údržba a monitorovanie stavu stroja Nárast novej technológie, tj internetu vecí, ťažkého priemyslu
Svetlé cesty (výučba MST): 5 krokov
Svetlé cesty (výučba MST): Účelom jasných ciest je naučiť študentov o minimálnych preklenujúcich stromoch (MST). Uzol A je zdrojom a všetky ostatné uzly majú určitú váhu (náklady), aby sa k nim dostali. Táto učebná pomôcka ukazuje, že náklady stmavením každého uzla v závislosti od
Cesty hviezdneho svetla: 4 kroky
Starlight Paths: Starlight Paths je projekt pre tých, ktorí potrebujú pomôcť s navigáciou v novom priestore. Po stáročia sme navigovali so svetlami na oblohe a teraz si môžeme vytvoriť vlastné svetlo. Tento nápad vzišiel zo šou Star Trek. V šou si nájdu cestu cez
Nájdenie cesty s GPS: 9 krokov
Nájdenie cesty s GPS: Rýchle cvičenie v porozumení a aplikácii údajov GPS Požadovaný čas: 2 hodiny Cena: 75-150 dolárov Pre výrobcov je pomerne lacné začleniť vysokokvalitné geopriestorové údaje do elektronických projektov. A v posledných rokoch GPS (globálna pozícia v
Mapovač cesty: 6 krokov
Mapovač cesty: V tomto projekte internetu vecí sme zapojili NEO-6M (modul GPS), aby sme prostredníctvom Arduina doručili lokalizačné údaje na list programu Excel, ktorý sa uloží do počítača. Potom s Tableau Public vytvoríme vizualizáciu údajov týchto údajov, aby sme zmapovali pat