Innehållsförteckning:

Tömningstäppdetektor: 11 steg (med bilder)
Tömningstäppdetektor: 11 steg (med bilder)

Video: Tömningstäppdetektor: 11 steg (med bilder)

Video: Tömningstäppdetektor: 11 steg (med bilder)
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, November
Anonim
Image
Image

Låt inte ett igensatt avlopp sakta ner dig! När jag kom tillbaka från vår semester blev jag och min fru överraskade av vattnet som täckte golvet i vår lägenhet, och vi fick reda på att det inte ens är rent vatten, det rinner ut överallt. Efter att ha rensat avloppet och rengjort golvet hade jag denna fråga: varför har vi inte ett larmsystem för potentiella avtappningstäppor? Täppta avlopp kan inte bara stoppa ditt hem, utan kommer att kosta extra kostnader från dina fickor, $ 206 i genomsnitt är kostnaden för att rensa ett igensatt avlopp enligt HomeAdvisor, förutom dolda kostnader för skadade mattor, trämöbler, … etc. Vår idé är att låta både husägare och företag som underhållsavdelningar för stad/föreningar och specialiserade tjänsteleverantörer ha ett effektivt och intelligent system som varnar den ansvariga så tidigt som möjligt för att vidta åtgärder, vilket bidrar till att berika smarta städer med en viktig funktion.

Idén Även om upptäckt av träskor kan göras genom ett antal tekniker, som att använda gassensorer eller interna mekanismer, var vårt team fokuserat på att använda ljud som vår ingång, eftersom vi vet att knackning på ett rör där det öppnas är ett annat ljud än vad som hände när den stängs. Enligt detta enkla koncept, om vi kan träna en modell av ljudmönstren som förekommer på rörytan under träskor såväl som dessa mönster förekommer i öppna rör, kan vi sedan tillämpa modellen för att upptäcka proaktivt när en täppa börjar komponeras, och vi sedan ring några räkningar.

Poäng för

  • Mohamed Hassan
  • Ahmed Emam

Projekt i detalj 3 faser implementeras i detta projekt: Insamling av data, inlärning och förutsägelse.

Innan vi använde detta system i verkliga livet, behövde vi skapa en tvingad simuleringsmiljö, där vi har röret, rinnande vatten och på något sätt simulerar täppan. Så, vi fick ett rör, en vattenslang med en vattenkälla som gör detta i badkaret och använder badkarets yta för att stänga röret som representerar täppan. I den här videon förklarar vi hur vi byggde miljön och hur vi samlade in data för modellträningen.

Och i denna nästa video, som visar hur vi testade systemet och modellen, i öppet läge, sedan i täppläge och tillbaka till öppet läge, dock

Så, låt oss utforska vår implementering steg för steg:

Steg 1: Experimentet

Experimentet
Experimentet
Experimentet
Experimentet
Experimentet
Experimentet
Experimentet
Experimentet

I detta scenario använder vi ett litet vattenrör anslutet till vår hårdvara och ljudsensor. Hårdvara läser sensorvärdet och skickar tillbaka det till Cloud. Detta har gjorts i 10 minuter för blockerat rör och sedan ytterligare 10 minuter för rör som inte är blockerat.

Steg 2: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

I- Arduino

För att detektera vattenljudet inuti röret behöver vi en ljudsensor. Raspberry Pi 3 har dock inte Analog GPIO. För att hantera detta problem använder vi Arduino eftersom Arduino har analog GPIO. Så vi ansluter Grove Sound -sensor till Grove Arduino -skärm och ansluter Shield till Arduino UNO 3. Sedan ansluter vi Arduino & Raspberry med USB -kabel. För att få mer information om Grove Sound -sensorn kan du kontrollera dess datablad. Du kan hitta en exempelkod i databladet för hur man läser sensorvärden. Exempelkod är nästan använda kommer små förändringar. I koden nedan ansluter vi sensorn till A0 i skärm. För att skriva på serie använder vi funktionen Serial.begin (). För att kommunicera med Raspberry baud rate inställd på 115200Data kommer att skickas till Raspberry om det är större än vissa trösklar för att minska bruset Många försök har gjorts för att välja önskade tröskel- och fördröjningsvärden. Tröskeln befanns vara 400 & Fördröjningsvärdet är 10 millisekund. Tröskelvärdet har valts för att filtrera normalt brus och säkerställa att endast meningsfulla data kommer att skickas till molnet. Fördröjning har valts in för att säkerställa att sensorn omedelbart detekterar förändringar i flödesljud inuti röret.

II- Raspberry Pi 3 För att ladda ner Android-saker på Raspberry kan du ladda ner den senaste versionen från Android Things Console. I detta projekt använder vi version: OIR1.170720.017. följ stegen på Raspberry -webbplatsen för att installera operativsystemet på hallon, för Windows kan du använda dessa steg Efter installationen kan du ansluta hallon till din dator med USB. Använd sedan kommandot nedan för att få Raspberry IP i din datorkonsol

nmap -sn 192.168.1.*

Efter att ha fått IP: n ansluter du till ditt hallon med kommandot nedan

adb connect

För att ansluta ditt hallon till Wifi (lägg till ditt SSID och lösenord)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-en WifiSetupService. Connect

-e ssid *****

-e lösenfras ****

Steg 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 erbjuder en gratis nivå för alla användare under ett år med ett tak på 300 $, tack till Google:). Följ skärmar för att skapa ett nytt projekt i Google Cloud

Steg 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 är en fullt hanterad realtidstjänst för meddelandetjänster som låter dig skicka och ta emot meddelanden mellan oberoende applikationer.

Steg 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 helt hanterad tjänst för att enkelt och säkert ansluta, hantera och mata in data från globalt spridda enheter. IOT Core fortfarande Beta, för att få åtkomst till det måste du göra en begäran med motivering till Google. Vi gjorde begäran, vår motivering var denna tävling. Google godkänt, tack till Google igen:). Hallon kommer att skicka sensordata till IOT Core som vidarebefordrar avläsningar till PubSub -ämnet som skapades i föregående steg

Steg 6: Google Cloud - molnfunktioner

Google Cloud - molnfunktioner
Google Cloud - molnfunktioner
Google Cloud - molnfunktioner
Google Cloud - molnfunktioner

Cloud Functions är en serverlös miljö för att bygga och ansluta molntjänster. Utlösare för denna funktion är PubSup -ämnet som skapades i steg 1.;; Denna funktion utlöses när ett nytt värde skrivs i PubSup och skriver det i Cloud DataStore med Kind "SoundValue"

Steg 7: Google Cloud - Cloud DataStore

Google Cloud Datastore är en NoSQL -dokumentdatabas byggd för automatisk skalning, hög prestanda och enkel applikationsutveckling. Medan Cloud Datastore -gränssnittet har många av samma funktioner som traditionella databaser, skiljer det sig som en NoSQL -databas från dem på det sätt som det beskriver relationer mellan dataobjekt. Inget behov av någon installation eftersom när molnfunktionerna skriver sensorvärden till DataStore kommer data att läggas till i DataStore

Steg 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 samlar ett prov 10 minuter från normalt rör och 10 minuter från blockerat rör med skillnaden exakt 1 timme mellan de 2 iterationerna. Efter nedladdning av DataStore och gör en viss manipulation för att lägga till klassificering för varje rad. Nu har vi 2 csv -filer en för varje kategori. Som bästa praxis ladda upp data -CSV -filer först till molnlagring. I nedanstående skärm skapar vi en ny hink och laddar upp de två CSV-filerna Eftersom denna hink endast kommer att användas för analys, behöver du inte välja multiregional hink Skapa sedan en ny datauppsättning och en ny tabell i BigQuery och ladda upp den 2 CSV-filen från hinken till det nya bordet

Steg 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

Sedan använder vi Data Studio för att dra några insikter. Data Studio läser data från BigQuery -tabellen. Från grafer kan vi se skillnaden mellan 2 kategorier i antal telemetrier och summan av värden per minut. Baserat på dessa insikter kan vi utforma en enkel modell, röret anses vara blockerat om antalet telemetrivärden som är högre än bullertröskeln (400) är mer än 350 telemetrier på tre på varandra följande minuter. och på 3 på varandra följande minuter är antalet telemetrivärden som är högre än gnisttröskeln (720) mer än 10 telemetrier.

Steg 10: Prognoseringsfas

Prognoseringsfas
Prognoseringsfas

Vi hänvisar till en avläsning, när den överskrider ett visst värde (THRESHOLD_VALUE) som sattes till 350 som filtrerar buller och lägre vattenflödeshastigheter i röret, från att betraktas som en avläsning

Dataanalys visade att i öppet läge är antalet avläsningar mindre än 100, men i täppläge är värdena mycket högre (nådde 900 per minut), men var i sällsynta fall också mindre än 100. Dessa fall upprepas dock inte, och för tre påföljande minuter översteg det totala antalet avläsningar alltid 350. Att ha öppet läge på samma tre minuter kommer att summera mindre än 300, vi kan med säkerhet sätta denna regel: Regel # 1 För tre minuter i en rå, om totala mätningar > 350, då upptäcks en täppa. Vi fann att det maximala värdet som nåtts i öppet läge inte överstiger ett visst värde (SPARK_VALUE) som befinner sig vara 770, så vi lade till denna regel: Regel # 2 Om läsvärdet> 350, detekteras en täppa för det mesta.

Genom att kombinera båda reglerna gav vi ett enkelt sätt att implementera detekteringslogiken, som visas. Lägg märke till att nedanstående kod distribuerades på Arduino som sedan utvärderar mottagna telemetries baserat på vår modell och skickar till hallon om röret är igensatt eller öppet.

Steg 11: Kod

All kod för Arduino, Raspberry & Cloud Function finns på Github.

För mer information kan du kolla den här länken

Rekommenderad: