Innholdsfortegnelse:

Avløpstoppdetektor: 11 trinn (med bilder)
Avløpstoppdetektor: 11 trinn (med bilder)

Video: Avløpstoppdetektor: 11 trinn (med bilder)

Video: Avløpstoppdetektor: 11 trinn (med bilder)
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, November
Anonim
Image
Image

Ikke la en tett tømming bremse deg! Da jeg kom tilbake fra ferien, ble jeg og min kone overrasket over vannet som dekker gulvet i leiligheten vår, og vi fant ut at det ikke engang er rent vann, det tømmes overalt. Etter å ha renset avløpet og rengjort gulvet, hadde jeg dette spørsmålet: hvorfor har vi ikke et alarmsystem for potensielle dreneringssko? Tette avløp kan ikke bare stoppe hjemmet ditt, men det vil forbruke ekstra kostnader fra lommene dine. $ 206 i gjennomsnitt er kostnaden for å rydde et tett avløp i henhold til HomeAdvisor, i tillegg til skjulte kostnader for ødelagte tepper, tremøbler, etc. Vår idé er å la huseiere så vel som bedrifter som vedlikeholdsavdelinger for byer/forbindelser og spesialiserte tjenesteleverandører ha et effektivt og intelligent system som varsler alle som har ansvaret så tidlig som mulig, noe som bidrar til å berike smarte byer med en viktig trekk.

Idéen Selv om det kan oppdages tresko gjennom en rekke teknikker, som å bruke gassensorer eller interne mekanismer, var teamet vårt fokusert på å bruke lyd som innspill, ettersom vi vet at det å banke på et rør der det åpnes er en annen lyd enn det som skjedde når den blir stengt. I henhold til dette enkle konseptet, hvis vi kan trene en modell på lydmønstrene som forekommer på røroverflaten under tresko, så vel som disse mønstrene forekommer i åpne rør, kan vi deretter bruke modellen til å oppdage proaktivt når en tette begynner å komponere, og vi deretter ringe noen regninger.

Studiepoeng for

  • Mohamed Hassan
  • Ahmed Emam

Prosjekt i detalj 3 faser er implementert i dette prosjektet: Innsamling av data, læring og prediksjon.

Før vi brukte dette systemet i virkeligheten, trengte vi å lage et håndhevet simuleringsmiljø, der vi har røret, rennende vann og på en eller annen måte simulerer tette. Så, vi fikk et rør, en vannslange med en vannkilde som gjør dette i badekaret, og bruker karetoverflaten til å lukke røret som representerer tilstoppingen. I denne videoen forklarer vi hvordan vi bygde miljøet og hvordan vi samlet data for modellopplæringen.

Og i denne neste videoen, som viser hvordan vi testet systemet og modellen, i åpen modus, deretter i tettemodus og tilbake til åpen modus.

Så la oss utforske implementeringen vår trinn for trinn:

Trinn 1: Eksperimentet

Eksperimentet
Eksperimentet
Eksperimentet
Eksperimentet
Eksperimentet
Eksperimentet
Eksperimentet
Eksperimentet

I dette scenariet bruker vi et lite vannrør som er koblet til maskinvare- og lydsensoren vår. Maskinvare leser sensorverdien og sender den tilbake til Cloud. Dette har blitt gjort i 10 minutter for blokkert rør, deretter ytterligere 10 minutter for rør som ikke er blokkert.

Trinn 2: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

I- Arduino

For å oppdage vannlyden inne i røret trenger vi en lydsensor. Raspberry Pi 3 har imidlertid ikke Analog GPIO. For å håndtere dette problemet bruker vi Arduino ettersom Arduino har analog GPIO. Så vi kobler Grove Sound -sensor til Grove Arduino -skjold og kobler Shield til Arduino UNO 3. Deretter kobler vi Arduino & Raspberry ved hjelp av USB -kabel. For å få mer informasjon om Grove Sound -sensor, kan du sjekke databladet. Du kan finne et eksempelkode på hvordan du leser sensorverdier i databladet. Prøvekode er nesten bruk vil små endringer. I koden nedenfor kobler vi sensoren til A0 i skjold. For å skrive på serie bruker vi funksjonen Serial.begin (). For å kommunisere med Raspberry baud rate satt til 115200Data vil bli sendt til Raspberry hvis det er større enn en viss terskel for å kutte støyen Mange forsøk har blitt gjort for å velge ønsket terskel og forsinkelsesverdier. Terskelen er 400 og forsinkelsesverdien er 10 millisekund. Terskelen er valgt for å filtrere normal støy og sikre at bare meningsfulle data vil bli sendt til skyen.

II- Raspberry Pi 3 For å laste ned android ting på Raspberry, kan du laste ned den nyeste versjonen fra Android Things Console. I dette prosjektet bruker vi versjon: OIR1.170720.017. følg trinnene i Raspberry -nettstedet for å installere operativsystemet på bringebær, for Windows kan du bruke disse trinnene Etter installasjonen kan du koble bringebæret til datamaskinen din ved hjelp av USB. Deretter bruker du kommandoen under for å få bringebær IP

nmap -sn 192.168.1.*

Etter å ha fått IP -en, koble til bringebæret ditt ved å bruke kommandoen nedenfor

adb koble til

For å koble bringebæret til Wifi (legg til SSID og passord)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-en WifiSetupService. Connect

-e ssid *****

-e passordet ****

Trinn 3: Google Cloud - Registrering

Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering
Google Cloud - Registrering

Google tilbyr et gratis nivå for alle brukere i ett år med et tak på 300 $, takk til Google:). Følg skjermene for å opprette et nytt prosjekt i Google Cloud

Trinn 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 er en fullt administrert meldingstjeneste i sanntid som lar deg sende og motta meldinger mellom uavhengige applikasjoner.

Trinn 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 fullt administrert tjeneste for enkelt og sikkert å koble til, administrere og innta data fra globalt spredte enheter. IOT Core er fortsatt beta, for å ha tilgang til den må du sende en forespørsel med begrunnelse til Google. Vi sendte forespørselen, vår begrunnelse var denne konkurransen. Google godkjent, takk til Google igjen:). Bringebær vil sende sensordata til IOT Core som videresender avlesninger til PubSub -emnet som ble opprettet i forrige trinn

Trinn 6: Google Cloud - Cloud Functions

Google Cloud - Cloud Functions
Google Cloud - Cloud Functions
Google Cloud - Cloud Functions
Google Cloud - Cloud Functions

Cloud Functions er et serverfritt miljø for å bygge og koble til skytjenester. Utløser for denne funksjonen er PubSup -emnet som ble opprettet i trinn 1.;; Denne funksjonen utløses når ny verdi skrives i PubSup og skrives i Cloud DataStore med Kind "SoundValue"

Trinn 7: Google Cloud - Cloud DataStore

Google Cloud Datastore er en NoSQL -dokumentdatabase bygget for automatisk skalering, høy ytelse og enkel applikasjonsutvikling. Mens Cloud Datastore -grensesnittet har mange av de samme funksjonene som tradisjonelle databaser, skiller det seg som en NoSQL -database fra dem på den måten det beskriver relasjoner mellom dataobjekter. Ingen grunn til oppsett, ettersom Cloud Functions skriver sensorverdier til DataStore, blir data lagt til i DataStore

Trinn 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

Vi samler en prøve 10 minutter fra vanlig rør og 10 minutter fra blokkert rør med forskjellen nøyaktig 1 time mellom de to iterasjonene. Etter nedlasting av dataStore og foreta noen manipulasjoner for å legge til klassifisering for hver rad. Nå har vi 2 csv -filer en for hver kategori. Som beste praksis laster du opp CSV -filer med data først til Cloud Storage. I skjermbildet nedenfor oppretter vi en ny bøtte og laster opp de 2 CSV-filene Ettersom denne bøtten kun skal brukes til analyse, trenger du ikke velge Multiregionalt bøtte. Deretter oppretter du nytt datasett og nytt bord i BigQuery og laster opp 2 CSV-filer fra bøtte til det nye bordet

Trinn 9: Google Cloud - Data Studio

Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio

Deretter bruker vi Data Studio til å trekke noen innsikt. Data Studio vil lese data fra BigQuery -tabellen. Fra grafer kan vi se forskjellen mellom 2 kategorier i antall telemetrier og summen av verdier per minutt. Basert på disse innsiktene kan vi designe en enkel modell, rør anses å være blokkert hvis antallet telemetriverdier som er høyere enn støyterskelen (400) er mer enn 350 telemetri i tre påfølgende minutter. og på 3 påfølgende minutter er tellingen av telemeterverdien som er høyere enn gnistterskelen (720) mer enn 10 telemetrier.

Trinn 10: Forutsigelsesfase

Forutsigelsesfase
Forutsigelsesfase

Vi refererer til en avlesning når den overstiger en viss verdi (THRESHOLD_VALUE) som ble satt til 350 som filtrerer støy og lavere vannstrømningshastigheter i røret, fra å bli sett på som en avlesning

Dataanalyse viste at i åpen modus er antall avlesninger mindre enn 100, men i tette modus er verdiene langt høyere (nådd 900 per minutt), men i sjeldne tilfeller også mindre enn 100. Imidlertid gjentas disse tilfellene ikke, og i tre påfølgende minutter oversteg det totale antallet avlesninger alltid 350. Å ha åpen modus på de samme tre minuttene vil oppsummere mindre enn 300, vi kunne trygt sette denne regelen: Regel # 1 For tre minutter i en rå, hvis totalt avlesninger > 350, så oppdages en tett. Vi fant at maksimalverdi oppnådd i åpen modus ikke overstiger en viss verdi (SPARK_VALUE) som er funnet å være 770, så vi la til denne regelen: Regel # 2 Hvis avlesningsverdi> 350, blir en tetting for det meste oppdaget.

Ved å kombinere begge reglene ga vi en enkel måte å implementere deteksjonslogikken, som vist. Legg merke til at koden nedenfor ble distribuert på Arduino som deretter evaluerer mottatte telemetries basert på vår modell og sender til bringebær hvis røret er tett eller åpent.

Trinn 11: Kode

All kode for Arduino, Raspberry & Cloud -funksjonen finnes på Github.

For mer informasjon kan du sjekke denne lenken

Anbefalt: