Sommario:

Rilevatore di intasamento di scarico: 11 passaggi (con immagini)
Rilevatore di intasamento di scarico: 11 passaggi (con immagini)

Video: Rilevatore di intasamento di scarico: 11 passaggi (con immagini)

Video: Rilevatore di intasamento di scarico: 11 passaggi (con immagini)
Video: FARE MANUTENZIONE AL FILTRO FAP| senza bucare o rimuovere il fap! 2024, Dicembre
Anonim
Image
Image

Non lasciare che uno scarico intasato ti rallenti! Di ritorno dalle nostre vacanze, io e mia moglie siamo rimasti sorpresi dall'acqua che ricopre il pavimento del nostro appartamento, e abbiamo scoperto che non è nemmeno acqua pulita, è scarico ovunque. Dopo aver pulito lo scarico e pulito il pavimento, ho avuto questa domanda: perché non abbiamo un sistema di allarme per potenziali intasamenti dello scarico? Gli scarichi intasati non solo possono fermare la tua casa, ma consumeranno costi aggiuntivi dalle tue tasche, in media $ 206 sono il costo per pulire uno scarico intasato secondo HomeAdvisor, oltre ai costi nascosti di tappeti danneggiati, mobili in legno, … ecc. La nostra idea è quella di consentire ai proprietari di casa così come alle imprese come i dipartimenti di manutenzione delle città/composti e i fornitori di servizi specializzati di disporre di un sistema efficiente e intelligente che avviserà il responsabile il prima possibile di agire, contribuendo ad arricchire le città intelligenti con un importante caratteristica.

L'idea Sebbene il rilevamento degli intasamenti possa essere effettuato attraverso una serie di tecniche, come l'utilizzo di sensori di gas o meccanismi interni, il nostro team si è concentrato sull'utilizzo del suono come input, poiché sappiamo che bussare a un tubo nel punto in cui è aperto è un suono diverso da quello che è successo quando è chiuso. Secondo questo semplice concetto, se possiamo addestrare un modello i modelli sonori che si verificano sulla superficie del tubo durante gli intasamenti e questi modelli si verificano nei tubi aperti, possiamo quindi applicare il modello per rilevare in modo proattivo quando un intasamento inizia a comporre, e quindi suona alcune banconote.

Crediti per

  • Mohamed Hassan
  • Ahmed Emam

Progetto in dettaglio3 fasi sono implementate in questo progetto: raccolta dati, apprendimento e previsione.

Prima di applicare questo sistema nella vita reale, avevamo bisogno di creare un ambiente di simulazione forzato, in cui abbiamo il tubo, l'acqua che scorre e in qualche modo simulare lo zoccolo. Quindi, abbiamo ottenuto un tubo, un tubo dell'acqua con una fonte d'acqua che fa questo nella vasca da bagno e usa la superficie della vasca per chiudere il tubo che rappresenta lo zoccolo. In questo video spieghiamo come abbiamo costruito l'ambiente e come abbiamo raccolto i dati per l'addestramento del modello.

E in questo prossimo video, che mostra come abbiamo eseguito i test per il sistema e il modello, in modalità aperta, quindi in modalità intasamento e di nuovo in modalità aperta, tuttavia

Quindi, esploriamo la nostra implementazione passo dopo passo:

Passaggio 1: l'esperimento

L'esperimento
L'esperimento
L'esperimento
L'esperimento
L'esperimento
L'esperimento
L'esperimento
L'esperimento

In questo scenario utilizziamo un piccolo tubo dell'acqua collegato al nostro hardware e al sensore sonoro. L'hardware legge il valore del sensore e lo rimanda al Cloud. Questo è stato fatto per 10 minuti per il tubo bloccato, quindi altri 10 minuti per il tubo che non è bloccato.

Passaggio 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

I-Arduino

Per rilevare il rumore dell'acqua all'interno del tubo abbiamo bisogno di un sensore acustico. Tuttavia Raspberry Pi 3 non ha GPIO analogico. Per gestire questo problema usiamo Arduino poiché Arduino ha un GPIO analogico. Quindi colleghiamo il sensore Grove Sound allo shield Grove Arduino e colleghiamo Shield ad Arduino UNO 3. Quindi colleghiamo Arduino e Raspberry tramite cavo USB. Per avere maggiori informazioni sul sensore Grove Sound, puoi controllare la sua scheda tecnica. Puoi trovare nella scheda tecnica un codice di esempio su come leggere i valori del sensore. Il codice di esempio è quasi utilizzato con piccole modifiche. Nel codice sottostante colleghiamo il sensore ad A0 nello schermo. Per scrivere su seriale, usiamo la funzione Serial.begin(). Per comunicare con Raspberry baud rate impostato su 115200I dati verranno inviati a Raspberry se è maggiore di una certa soglia per tagliare il rumore Sono state fatte molte prove per scegliere la soglia e i valori di ritardo desiderati. Soglia rilevata pari a 400 e valore di ritardo pari a 10 millisecondi. La soglia è stata scelta per filtrare il rumore normale e garantire che solo i dati significativi vengano inviati al cloud. È stato scelto il ritardo per garantire che il sensore rilevi immediatamente eventuali cambiamenti nel suono del flusso all'interno del tubo.

II- Raspberry Pi 3Per scaricare Android Things su Raspberry, puoi scaricare l'ultima versione da Android Things Console. In questo progetto usiamo la versione: OIR1.170720.017. seguire i passaggi nel sito Raspberry per installare il sistema operativo su raspberry, per Windows è possibile utilizzare questi passaggi Dopo l'installazione è possibile collegare il Raspberry al computer tramite USB. Quindi nella console del tuo computer usa il comando seguente per ottenere l'IP Raspberry

nmap -sn 192.168.1.*

Dopo aver ottenuto l'IP, connettiti al tuo Raspberry usando il comando seguente

adb connect

Per connettere il tuo Raspberry al Wifi (aggiungi SSID e password)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e passphrase ****

Passaggio 3: Google Cloud - Registrazione

Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione
Google Cloud - Registrazione

Google offre un livello gratuito per tutti gli utenti per un anno con un tetto di 300 $, grazie a Google:). Segui le schermate per creare un nuovo progetto in Google Cloud

Passaggio 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 è un servizio di messaggistica in tempo reale completamente gestito che consente di inviare e ricevere messaggi tra applicazioni indipendenti.

Passaggio 5: Google Cloud - Core IOT

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

II- IOT CoreUn servizio completamente gestito per connettere, gestire e acquisire dati in modo semplice e sicuro da dispositivi sparsi in tutto il mondo. IOT Core ancora Beta, per accedervi è necessario fare richiesta con Giustificazione a Google. Abbiamo fatto la richiesta, la nostra giustificazione era questo concorso. Approvato da Google, grazie ancora a Google:). Raspberry invierà i dati del sensore a IOT Core che inoltrerà le letture all'argomento PubSub creato nel passaggio precedente

Passaggio 6: Google Cloud - Funzioni cloud

Google Cloud - Funzioni cloud
Google Cloud - Funzioni cloud
Google Cloud - Funzioni cloud
Google Cloud - Funzioni cloud

Cloud Functions è un ambiente serverless per creare e connettere servizi cloud. Il trigger per questa funzione è l'argomento PubSup creato nel passaggio 1.;; Questa funzione verrà attivata quando un nuovo valore scritto in PubSup e scritto in Cloud DataStore con Tipo "SoundValue"

Passaggio 7: Google Cloud - Cloud DataStore

Google Cloud Datastore è un database di documenti NoSQL creato per la scalabilità automatica, alte prestazioni e facilità di sviluppo di applicazioni. Sebbene l'interfaccia di Cloud Datastore abbia molte delle stesse funzionalità dei database tradizionali, in quanto database NoSQL ne differisce nel modo in cui descrive le relazioni tra gli oggetti dati. Non è necessaria alcuna configurazione poiché una volta che le funzioni cloud scrivono i valori del sensore su DataStore, i dati verranno aggiunti a DataStore

Passaggio 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

Raccogliamo un campione di 10 minuti da un tubo normale e 10 minuti da un tubo bloccato con una differenza di esattamente 1 ora tra le 2 iterazioni. Dopo aver scaricato i dati DataStore e apportare alcune modifiche per aggiungere la classificazione per ogni riga. Ora abbiamo 2 file CSV uno per ogni categoria. Come best practice, carica prima i file CSV di dati su Cloud Storage. Nella schermata sottostante creiamo un nuovo bucket e carichiamo i 2 file CSV Poiché questo bucket verrà utilizzato solo per l'analisi, non è necessario scegliere il bucket multiregionale Quindi creare un nuovo set di dati e una nuova tabella in BigQuery e caricare i 2 file CSV dal bucket a il nuovo tavolo

Passaggio 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

Quindi utilizziamo Data Studio per trarre alcuni approfondimenti. Data Studio leggerà i dati dalla tabella BigQuery. Dai grafici possiamo vedere la differenza tra 2 categorie in numero di telemetrie e somma di valori al minuto. Sulla base di queste intuizioni possiamo progettare un semplice modello, il tubo è considerato bloccato se in 3 minuti successivi il conteggio dei valori di telemetrie superiori alla soglia di rumore (400) è superiore a 350 telemetrie. e nei 3 minuti successivi il conteggio del valore delle telemetrie superiore alla soglia di scintilla (720) è superiore a 10 telemetrie.

Passaggio 10: fase di previsione

Fase di previsione
Fase di previsione

Ci riferiamo ad una lettura, quando supera un certo valore (THRESHOLD_VALUE) che è stato impostato a 350 che filtra il rumore e le minori portate d'acqua nel tubo, da considerarsi come una lettura

L'analisi dei dati ha mostrato che in modalità aperta il numero di letture è inferiore a 100, ma in modalità intasamento i valori sono molto più alti (arrivati a 900 al minuto), ma in rari casi erano anche inferiori a 100. Tuttavia, questi casi non si ripetono di conseguenza, e per tre minuti successivi, il numero totale di letture ha sempre superato 350. Avendo la modalità aperta negli stessi tre minuti si sommerà meno di 300, potremmo tranquillamente mettere questa regola: Regola n. 1 Per tre minuti in un raw, se le letture totali > 350, viene rilevato un intasamento. Abbiamo riscontrato che il valore massimo raggiunto in modalità aperta non supera un certo valore (SPARK_VALUE) che risulta essere 770, quindi abbiamo aggiunto questa regola: Regola n. 2 Se si legge un valore > 350, viene principalmente rilevato un intasamento.

La combinazione di entrambe le regole ci ha fornito un modo semplice per implementare la logica di rilevamento, come mostrato. Si noti che il codice seguente è stato distribuito su Arduino che quindi valuta le telemetrie ricevute in base al nostro modello e invia a raspberry se il tubo è intasato o aperto.

Passaggio 11: codice

Tutto il codice per Arduino, Raspberry e Cloud Function può essere trovato su Github.

Per maggiori informazioni puoi controllare questo link

Consigliato: