INHOUDSOPGAWE:

Afvoerstopdetektor: 11 stappe (met foto's)
Afvoerstopdetektor: 11 stappe (met foto's)

Video: Afvoerstopdetektor: 11 stappe (met foto's)

Video: Afvoerstopdetektor: 11 stappe (met foto's)
Video: How to Find and Remove Duplicate Photos in Windows 10/11? 2024, November
Anonim
Image
Image

Moenie toelaat dat 'n verstopte drein u vertraag nie! Toe ek en ons vrou terugkeer van ons vakansie, was ek en my vrou verbaas oor die water wat die vloer van ons woonstel bedek, en ons het agtergekom dat dit nie eens skoon water is nie, maar dat dit oral dreineer. Nadat ek die drein skoongemaak en die vloer skoongemaak het, het ek die volgende vraag: waarom het ons nie 'n alarmstelsel vir moontlike dreineringstoppe nie? Verstopte dreine kan nie net u huis tot stilstand bring nie, maar ook ekstra koste uit u sak, gemiddeld $ 206 kos die opruiming van 'n verstopte drein volgens HomeAdvisor, benewens verborge koste van beskadigde matte, houtmeubels, ens. Ons idee is om huiseienaars sowel as ondernemings soos instandhoudingsdepartemente en gespesialiseerde diensverskaffers in staat te stel om 'n doeltreffende en intelligente stelsel te hê wat die bestuurder so vroeg as moontlik in kennis stel van aksie, wat bydra tot die verryking van slim stede met 'n belangrike funksie.

Alhoewel die opsporing van klompe deur 'n aantal tegnieke gedoen kan word, soos die gebruik van gassensors of interne meganismes, was ons span daarop ingestel om klank as ons insette te gebruik, aangesien ons weet dat 'n klop aan 'n buis waar dit oopgemaak word 'n ander geluid is as wat gebeur het wanneer dit gesluit word. Volgens hierdie eenvoudige konsep kan ons die model dan toepas om proaktief op te spoor wanneer 'n verstopping begin saamstel, as ons 'n model kan leer oor die klankpatrone wat op die buis se oppervlak voorkom tydens verstopings, sowel as die patrone wat in oop pype voorkom. lui 'n paar rekeninge.

Krediete vir

  • Mohamed Hassan
  • Ahmed Emam

Projek in detail 3 fases word in hierdie projek geïmplementeer: versameling van data, leer en voorspelling.

Voordat ons hierdie stelsel in die werklike lewe toepas, moes ons 'n toegepaste simulasie -omgewing skep, waar ons die pyp, vloeiende water het en die verstopping op een of ander manier kon simuleer. Ons kry dus 'n buis, 'n waterslang met 'n waterbron wat dit in die bad doen, en die oppervlak van die bad gebruik om die buis toe te maak wat die verstopping verteenwoordig. In hierdie video verduidelik ons hoe ons die omgewing gebou het en hoe ons data versamel het vir die modelopleiding.

En in hierdie volgende video, wat wys hoe ons die toets vir die stelsel en die model gedoen het, in die oop modus, dan in die verstopingsmodus en terug na die oop modus, Dus, laat ons ons implementering stap vir stap ondersoek:

Stap 1: Die eksperiment

Die eksperiment
Die eksperiment
Die eksperiment
Die eksperiment
Die eksperiment
Die eksperiment
Die eksperiment
Die eksperiment

In hierdie scenario gebruik ons 'n klein waterpyp wat gekoppel is aan ons hardeware- en klanksensor. Hardeware lees die sensorwaarde en stuur dit terug na Cloud. Dit word 10 minute gedoen vir 'n geblokkeerde buis, en nog 10 minute vir 'n buis wat nie geblokkeer is nie.

Stap 2: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware
Hardeware
Hardeware

Ek- Arduino

Ons benodig 'n klanksensor om die watergeluid in die pyp op te spoor. Raspberry Pi 3 het egter nie 'n analoog GPIO nie. Om hierdie probleem te hanteer, gebruik ons Arduino, aangesien Arduino analoog GPIO het. Ons koppel dus die Grove Sound -sensor aan die Grove Arduino -skild en koppel die Shield aan die Arduino UNO 3. Dan koppel ons Arduino & Raspberry met 'n USB -kabel. Vir meer inligting oor die Grove Sound -sensor, kan u die gegewensblad nagaan. U kan 'n voorbeeldkode in die datablad vind, hoe om sensorwaardes te lees. Voorbeeld kode is byna gebruik sal klein veranderinge. In die onderstaande kode verbind ons die sensor met die skild A0. Om op reeks te skryf, gebruik ons die funksie Serial.begin (). Om te kommunikeer met Raspberry baud rate ingestel op 115200 Data sal na Raspberry gestuur word as dit groter is as 'n sekere drempel om die geraas te verminder. Baie toetse is gedoen om die gewenste drempel- en vertragingswaardes te kies. Die drempel is 400 en die vertragingswaarde is 10 millisekonde. Die drempel is gekies om normale geraas te filter en te verseker dat slegs betekenisvolle data na die wolk gestuur word.

II- Raspberry Pi 3 Om Android-dinge op Raspberry af te laai, kan u die nuutste weergawe van Android Things Console aflaai. In hierdie projek gebruik ons weergawe: OIR1.170720.017. volg die stappe in die Framboos -webwerf om die bedryfstelsel op framboos te installeer, vir vensters kan u hierdie stappe gebruik. Na die installasie kan u die framboos via u USB aan u rekenaar koppel. Gebruik dan die opdrag in u rekenaarkonsole om Framboos IP te kry

nmap -sn 192.168.1.*

Nadat u die IP gekry het, koppel u aan u Framboos deur die onderstaande opdrag te gebruik

adb verbind

Om u Framboos aan Wifi te koppel (voeg u SSID en wagwoord by)

adb am begin diens

-n com.google.wifisetup/. WifiSetupService

-'n WifiSetupService. Connect

-e ssid *****

-e wagwoordfrase ****

Stap 3: Google Cloud - Registrasie

Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie
Google Cloud - Registrasie

Google bied 'n gratis vlak vir alle gebruikers vir 'n jaar met 'n plafon van 300 $, danksy Google:). Volg skerms om 'n nuwe projek in Google Cloud te skep

Stap 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 is 'n volledig bestuurde intydse boodskapdiens waarmee u boodskappe tussen onafhanklike toepassings kan stuur en ontvang.

Stap 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 volledig bestuurde diens om data van wêreldwyd verspreide toestelle maklik en veilig aan te sluit, te bestuur en in te neem. IOT Core is nog steeds beta, om toegang daartoe te hê, moet u 'n versoek met Justification aan Google rig. Ons het die versoek gerig; ons regverdiging was hierdie wedstryd. Google goedgekeur, weereens dankie aan Google:). Framboos stuur sensordata na IOT Core wat lesings sal deurstuur na die PubSub -onderwerp wat in die vorige stap geskep is

Stap 6: Google Cloud - Wolkfunksies

Google Cloud - Wolkfunksies
Google Cloud - Wolkfunksies
Google Cloud - Wolkfunksies
Google Cloud - Wolkfunksies

Cloud Functions is 'n bedienerlose omgewing om wolkdienste te bou en aan te sluit. Die sneller vir hierdie funksie is die PubSup -onderwerp wat in stap 1. geskep is;; Hierdie funksie word geaktiveer wanneer nuwe waarde in PubSup geskryf word en dit in Cloud DataStore met 'SoundValue' skryf

Stap 7: Google Cloud - Cloud DataStore

Google Cloud Datastore is 'n NoSQL -dokumentdatabasis wat gebou is vir outomatiese skaal, hoë werkverrigting en gemaklike ontwikkeling van toepassings. Alhoewel die Cloud Datastore -koppelvlak baie van dieselfde funksies het as tradisionele databasisse, verskil dit as 'n NoSQL -databasis van hulle in die manier waarop dit verhoudings tussen data -voorwerpe beskryf. Geen opstelling nodig nie, aangesien data eers by die DataStore gevoeg word sodra die wolkfunksies sensorwaardes na DataStore skryf

Stap 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

Ons neem 'n monster van 10 minute van die normale pyp en 10 minute van 'n geblokkeerde pyp, met 'n verskil van presies 1 uur tussen die twee herhalings. Nadat u dataStore afgelaai het en 'n bietjie manipulasie gemaak het om klassifikasie vir elke ry by te voeg. Nou het ons 2 csv -lêers, een vir elke kategorie. Laai die beste CSV -data eers na Cloud Storage op. In die onderstaande skerm skep ons 'n nuwe emmer en laai die 2 CSV'e op die nuwe tafel

Stap 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

Dan gebruik ons Data Studio om 'n paar insigte te maak. Data Studio sal data uit die BigQuery -tabel lees. Uit grafieke kan ons die verskil tussen 2 kategorieë in aantal telemetries en som van waardes per minuut sien. Op grond van hierdie insigte kan ons 'n eenvoudige model ontwerp; pyp word as geblokkeer beskou as die telemetriese waardes wat hoër is as die geraasdrempel (400) meer as 350 telemetries binne drie opeenvolgende minute is. en in 3 opeenvolgende minute is die telemetriese waarde wat hoër is as die vonkdrempel (720) meer as 10 telemetries.

Stap 10: Voorspellingsfase

Voorspellingsfase
Voorspellingsfase

Ons verwys na 'n lesing as dit 'n sekere waarde (THRESHOLD_VALUE) oorskry, wat op 350 gestel is wat geraas en laer watertoevoer in die buis filter, omdat dit as 'n lesing beskou word

Data -analise het getoon dat die aantal lesings in die oop modus minder as 100 is, maar in die verstopingsmodus is die waardes baie hoër (bereik 900 per minuut), maar in seldsame gevalle was dit ook minder as 100. Hierdie gevalle word egter nie herhaal nie, en vir drie daaropvolgende minute het die totale aantal lesings altyd 350 oorskry. As die oop modus in dieselfde drie minute minder is as 'n 300, kan ons met selfvertroue hierdie reël stel: Reël # 1 Vir drie minute in 'n rou, as totale lesings > 350, dan word 'n verstopping opgespoor. Ons het gevind dat die maksimum waarde wat in die oop modus bereik is, nie 'n sekere waarde (SPARK_VALUE) oorskry nie, wat 770 is, dus het ons hierdie reël bygevoeg: Reël # 2 As die waarde> 350 gelees word, word 'n verstopping meestal opgespoor.

Deur beide reëls te kombineer, het ons 'n maklike manier gegee om die opsporingslogika te implementeer, soos getoon. Let op dat die onderstaande kode op Arduino ontplooi is, wat dan die ontvangde telemetries op grond van ons model evalueer en na framboos stuur as die pyp verstop of oop is.

Stap 11: Kode

Alle kode vir Arduino, framboos en wolk funksie kan gevind word op Github.

Vir meer inligting, kan u hierdie skakel besoek

Aanbeveel: