Obsah:

Detektor upchatia odtoku: 11 krokov (s obrázkami)
Detektor upchatia odtoku: 11 krokov (s obrázkami)

Video: Detektor upchatia odtoku: 11 krokov (s obrázkami)

Video: Detektor upchatia odtoku: 11 krokov (s obrázkami)
Video: 4/5 - Anjel smrti (podcast: KRIMINÁLNE SPISY) 2024, Júl
Anonim
Image
Image

Nenechajte sa spomaliť upchatým odtokom! Keď sme sa vrátili z dovolenky, boli sme s manželkou prekvapení vodou pokrývajúcou podlahu nášho bytu a zistili sme, že to nie je ani čistá voda, ale všade to steká. Po vyčistení odtoku a vyčistení podlahy som dostal túto otázku: prečo nemáme poplašný systém pre potenciálne upchatie odtoku? Upchaté odtoky môžu nielen zastaviť váš domov, ale tiež spotrebujú dodatočné náklady z vašich vreciek, v priemere 206 dolárov sú náklady na vyčistenie upchatého odtoku podľa HomeAdvisor, okrem skrytých nákladov na poškodené koberce, drevený nábytok, atď. Našou myšlienkou je umožniť majiteľom domov a podnikom, ako sú mestské oddelenia údržby budov a špecializovaní poskytovatelia služieb, účinný a inteligentný systém, ktorý čo najskôr upozorní každého zodpovedného na akciu, čo prispeje k obohateniu inteligentných miest o dôležité funkcia.

Aj keď detekciu upchatia je možné vykonať niekoľkými technikami, napríklad pomocou plynových senzorov alebo vnútorných mechanizmov, náš tím sa zameral na použitie zvuku ako vstupu, pretože vieme, že klepanie na trubicu, kde je otvorená, je odlišný od zvuku, ktorý sa stal. keď je zatvorený. Podľa tohto jednoduchého konceptu, ak dokážeme natrénovať model, zvukové vzorce vyskytujúce sa na povrchu trubice počas upchávania, ako aj tieto vzory sa vyskytujú v otvorených potrubiach, môžeme potom model použiť proaktívne na detekciu začiatku upchatia a my potom zazvoniť nejaké účty.

Kredity za

  • Mohamed Hassan
  • Ahmed Emam

Podrobne projekt V tomto projekte sú implementované 3 fázy: Zhromažďovanie údajov, učenie a predikcia.

Pred použitím tohto systému v reálnom živote sme potrebovali vytvoriť vynútené simulačné prostredie, kde máme potrubie, tečúcu vodu a nejakým spôsobom simulovať upchatie. Takže sme dostali tubu, hadicu na vodu so zdrojom vody, ktorá to robí vo vani, a pomocou povrchu vane zatvoríme trubicu, ktorá predstavuje upchatie. V tomto videu vysvetľujeme, ako sme vytvorili prostredie a ako sme zbierali údaje pre školenie modelu.

A v tomto ďalšom videu ukazuje, ako sme testovali systém a model, v otvorenom režime, potom v režime upchatia a späť do otvoreného režimu.

Pozrime sa teda na našu implementáciu krok za krokom:

Krok 1: Experiment

Experiment
Experiment
Experiment
Experiment
Experiment
Experiment
Experiment
Experiment

V tomto scenári používame malú vodnú fajku pripojenú k nášmu hardvéru a zvukovému senzoru. Hardvér načíta hodnotu senzora a odošle ju späť do cloudu. Toto sa robilo 10 minút pre zablokovanú skúmavku, potom ďalších 10 minút pre skúmavku, ktorá nie je upchatá.

Krok 2: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér

I- Arduino

Na detekciu zvuku vody vo vnútri potrubia potrebujeme zvukový senzor. Raspberry Pi 3 však nemá analógové GPIO. Na vyriešenie tohto problému používame Arduino, pretože Arduino má analógové GPIO. Pripojíme teda zvukový senzor Grove k štítu Grove Arduino a Shield pripojíme k Arduino UNO 3. Potom prepojíme Arduino & Raspberry pomocou USB kábla. Ak chcete získať ďalšie informácie o zvukovom senzore Grove, môžete si pozrieť jeho technický list. V údajovom liste nájdete vzorový kód na čítanie hodnôt senzorov. Ukážkový kód sa takmer používa, dôjde k malým zmenám. V nižšie uvedenom kóde pripájame snímač k A0 v štíte. Na zápis do seriálu používame funkciu Serial.begin (). Ak chcete komunikovať s prenosovou rýchlosťou Raspberry nastavenou na 115200, údaje budú odoslané do Raspberry, ak sú väčšie ako určité prahové hodnoty na zníženie hluku. Na výber požadovaných hodnôt prahov a oneskorení bolo vykonaných mnoho pokusov. Zistil sa prah 400 a hodnota oneskorenia 10 milisekúnd. Bol zvolený prah na filtrovanie normálneho šumu a zabezpečenie toho, aby boli do cloudu odosielané iba zmysluplné údaje. Oneskorenie bolo zvolené v režime preč, aby sa zabezpečilo, že senzor okamžite detekuje akékoľvek zmeny zvuku toku vo vnútri trubice.

II- Raspberry Pi 3 Ak si chcete do systému Raspberry stiahnuť veci pre Android, najnovšiu verziu si môžete stiahnuť z konzoly Android Things. V tomto projekte používame verziu: OIR1.170720.017. Pri inštalácii operačného systému na malinu postupujte podľa pokynov na webe Raspberry, pre Windows môžete použiť tieto kroky Po inštalácii môžete Raspberry pripojiť k počítaču pomocou USB. Potom vo svojej počítačovej konzole použite nižšie uvedený príkaz na získanie Raspberry IP

nmap -sn 192,168,1.*

Po získaní IP sa pripojte k svojmu Raspberry pomocou nižšie uvedeného príkazu

adb pripojiť

Ak chcete pripojiť svoj Raspberry k Wifi (zadajte SSID a heslo)

adb am začína služba

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e prístupová fráza ****

Krok 3: Google Cloud - registrácia

Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia
Google Cloud - registrácia

Google ponúka bezplatnú úroveň pre všetkých používateľov na jeden rok so stropom 300 $, vďaka spoločnosti Google:). Sledujte obrazovky a vytvorte nový projekt v službe Google Cloud

Krok 4: Google Cloud - Pub/Sub

Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub

Google Cloud Pub/Sub je plne spravovaná služba odosielania správ v reálnom čase, ktorá vám umožňuje odosielať a prijímať správy medzi nezávislými aplikáciami.

Krok 5: Google Cloud - IOT Core

Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core

II- IOT CoreA plne riadená služba na jednoduché a bezpečné pripojenie, správu a príjem údajov z globálne rozptýlených zariadení. IOT Core stále beta, na to, aby ste k nemu mali prístup, musíte spoločnosti Google poskytnúť požiadavku s odôvodnením. Podali sme žiadosť, naším odôvodnením bola táto súťaž. Google schválil, ešte raz ďakujem Googlu:). Raspberry bude odosielať údaje senzorov do jadra IOT, ktoré odošle údaje na tému PubSub vytvorenú v predchádzajúcom kroku

Krok 6: Google Cloud - cloudové funkcie

Google Cloud - cloudové funkcie
Google Cloud - cloudové funkcie
Google Cloud - cloudové funkcie
Google Cloud - cloudové funkcie

Cloud Functions je prostredie bez serverov na vytváranie a spájanie cloudových služieb. Spúšťačom pre túto funkciu je téma PubSup, ktorá bola vytvorená v kroku 1.;; Táto funkcia sa spustí, keď do PubSup napíšete novú hodnotu a napíšete ju do Cloud DataStore s druhom „SoundValue“

Krok 7: Google Cloud - Cloud DataStore

Google Cloud Datastore je databáza dokumentov NoSQL vytvorená pre automatické škálovanie, vysoký výkon a jednoduchosť vývoja aplikácií. Aj keď rozhranie Cloud Datastore má mnoho rovnakých funkcií ako tradičné databázy, ako databáza NoSQL sa od nich líši v spôsobe opisu vzťahov medzi dátovými objektmi. Nie je potrebné žiadne nastavovanie, pretože akonáhle Cloud Functions zapíše hodnoty senzora do DataStore, údaje budú pridané do DataStore

Krok 8: Google Cloud - BigQuery

Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery

Zhromažďujeme vzorku 10 minút z normálneho potrubia a 10 minút z upchatého potrubia s rozdielom presne 1 hodinu medzi dvoma iteráciami. Po stiahnutí údajov DataStore a troche manipulácie pridajte klasifikáciu pre každý riadok. Teraz máme 2 súbory CSV, jeden pre každú kategóriu. Ako osvedčený postup najskôr nahrajte súbory CSV údajov do cloudového úložiska. Na nižšie uvedenej obrazovke vytvoríme nový segment a odovzdáme 2 súbory CSV. Pretože tento segment bude slúžiť iba na analýzu, nie je potrebné vyberať viacregionálne segmenty. Potom v BigQuery vytvorte novú množinu údajov a novú tabuľku a nahrajte 2 súbory CSV z segmentu do nový stôl

Krok 9: Google Cloud - Dátové štúdio

Google Cloud - Dátové štúdio
Google Cloud - Dátové štúdio
Google Cloud - Dátové štúdio
Google Cloud - Dátové štúdio
Google Cloud - Dátové štúdio
Google Cloud - Dátové štúdio

Potom pomocou Data Studio nakreslíme niekoľko postrehov. Dátové štúdio bude čítať údaje z tabuľky BigQuery. Z grafov vidíme rozdiel medzi 2 kategóriami v počte telemetrií a súčtom hodnôt za minútu. Na základe týchto poznatkov môžeme navrhnúť jednoduchý model, potrubie sa považuje za zablokované, ak za 3 po sebe nasledujúce minúty počet telemetrických hodnôt, ktoré sú vyššie ako prah hluku (400), je viac ako 350 telemetrických. a za 3 po sebe nasledujúce minúty je počet telemetrických hodnôt, ktoré sú vyššie ako prah iskry (720), viac ako 10 telemetrických.

Krok 10: Fáza predpovedí

Fáza predpovedí
Fáza predpovedí

Odkazujeme na čítanie, keď prekročí určitú hodnotu (THRESHOLD_VALUE), ktorá bola nastavená na 350, ktorá filtruje hluk a nižšie prietoky vody v trubici, sa nepovažuje za čítanie.

Analýza údajov ukázala, že v otvorenom režime je počet čítaní menší ako 100, ale v režime upchatia sú hodnoty oveľa vyššie (dosiahli 900 za minútu), ale v zriedkavých prípadoch boli aj nižšie ako 100. Tieto prípady sa však následne neopakujú, a počas troch nasledujúcich minút celkový počet prečítaní vždy presiahol 350. Keď je otvorený režim v rovnakých troch minútach, zhrnie to menej ako 300, mohli by sme s istotou povedať toto pravidlo: Pravidlo č. 1 Tri minúty v surovom, ak sú celkové údaje > 350, potom sa zistí upchatie. Zistili sme, že maximálna hodnota dosiahnutá v otvorenom režime neprekračuje určitú hodnotu (SPARK_VALUE), ktorá je 770, preto sme pridali toto pravidlo: Pravidlo č. 2 Ak je hodnota> 350, potom sa väčšinou zistí upchatie.

Kombinácia oboch pravidiel nám poskytla jednoduchý spôsob implementácie detekčnej logiky, ako je znázornené. Všimnite si, že na Arduino bol nasadený nižšie uvedený kód, ktorý potom vyhodnotí prijaté telemetrie na základe nášho modelu a odošle na malinu, ak je potrubie upchaté alebo otvorené.

Krok 11: Kód

Všetok kód pre funkcie Arduino, Raspberry a Cloud nájdete na Github.

Ak chcete získať ďalšie informácie, môžete sa pozrieť na tento odkaz

Odporúča: