Sommario:

Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)
Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)

Video: Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)

Video: Risparmia acqua e denaro con il monitor dell'acqua della doccia: 15 passaggi (con immagini)
Video: Se Vedi Questo In Mare, Esci Subito! 😱 2024, Luglio
Anonim
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia
Risparmia acqua e denaro con il monitor dell'acqua della doccia

Quale usa più acqua: un bagno o una doccia?

Recentemente stavo pensando a questa domanda e mi sono reso conto che in realtà non so quanta acqua viene utilizzata quando faccio la doccia. So che quando sono sotto la doccia a volte la mia mente vaga, pensando a un'idea di nuovi progetti interessanti o cercando di decidere cosa mangiare per colazione, mentre l'acqua sta sgorgando nello scarico. Sarebbe molto più facile ridurre il consumo di acqua se sapessi davvero quanti litri sto usando ogni volta!

Ho fatto un po' di ricerche e ho scoperto che diversi soffioni doccia possono utilizzare da 9,5 litri (2,5 galloni) al minuto a meno di 6 litri (1,6 galloni) al minuto, se è installato un limitatore di flusso. Una doccia molto vecchia potrebbe usare ancora più acqua.

Ho deciso di progettare e costruire un dispositivo che mostrasse il volume totale di acqua utilizzata per doccia, il costo dell'acqua e la portata. Ho installato questo dispositivo per alcune settimane ed è davvero utile avere una lettura in tempo reale della quantità di acqua utilizzata.

In questo Instructable, spiegherò come l'ho costruito. Ovviamente non devi seguire esattamente i miei passi! È sempre bene utilizzare le parti che hai in giro. Ho incluso collegamenti a tutte le parti che ho usato o una parte equivalente che funzionerà.

Forniture

(Tutti i prezzi in USD)

  • Sensore di flusso - $ 3,87
  • Schermo LCD - $ 2,29
  • Arduino Nano - $ 1,59
  • Convertitore boost - $ 1,88
  • Caricabatterie LiPo - $ 1,89
  • Interruttore a levetta impermeabile - $ 0,93 (non esattamente quello che ho usato, ma dovrebbe funzionare)
  • Pulsante impermeabile - $ 1,64
  • Distanziali, viti e dadi M3 - $6,99
  • Jack femmina da 3,5 mm 2X - $ 2,86 cad.
  • Spina maschio da 3,5 mm - $ 1,48
  • Assieme cavo da 3,5 mm 3' - $ 3,57
  • Assemblaggio cavo USB - $ 1,74
  • Accoppiamento femmina-femmina da 1/2" NPS - $ 1,88
  • Batteria LiPo da 500 mAh 3,7 V - $ 3,91

Strumenti e forniture comuni

  • Saldatore e Saldatore
  • Filo
  • Pinza tagliafili
  • Spelafili
  • Nastro biadesivo
  • Cacciavite a stella
  • Stampante 3D (opzionale)

Passaggio 1: impermeabilizzazione

Impermeabilizzazione
Impermeabilizzazione

L'aspetto più difficile di questo progetto è rendere il tutto impermeabile. Dal momento che risiederà in una doccia, deve essere in grado di sopravvivere all'umidità estrema e agli schizzi occasionali. Circa il 75% del tempo totale speso su questo progetto è stato per capire questa parte.

Per come la vedo io, ci sono due scelte: progettare un involucro stampato in 3D personalizzato o provare a farlo funzionare con un involucro standard. Dato che di recente ho acquistato la mia stampante 3D, ho deciso di optare per la prima opzione.

Se non hai accesso a una stampante 3D, ecco alcune custodie pronte all'uso che ho scoperto che affermano di essere impermeabili e probabilmente funzionerebbero. Si prega di notare che non ho acquistato nessuno di questi contenitori, quindi non garantisco che tutti i componenti si adatteranno all'interno!

Banggood - Scatola 100x68x50mm con coperchio trasparente - $ 5,35

Digikey - Scatola 130x80x70mm con coperchio trasparente - $11.65

Per questo punto in poi, quando mi riferisco all'allegato, sto parlando del mio stampato in 3D.

Passaggio 2: il mio involucro stampato in 3D personalizzato

Il mio involucro stampato in 3D personalizzato!
Il mio involucro stampato in 3D personalizzato!
Il mio involucro stampato in 3D personalizzato!
Il mio involucro stampato in 3D personalizzato!
Il mio involucro stampato in 3D personalizzato!
Il mio involucro stampato in 3D personalizzato!

Dopo aver lavorato in Fusion 360 per diverse ore, sono arrivato a questo recinto. Ha tre ritagli circolari per adattarsi a due jack femmina da 3,5 mm e un interruttore a levetta. Il coperchio ha un foro da 16 mm per il pulsante momentaneo e un ritaglio rettangolare per lo schermo, nonché i quattro fori di montaggio per tenere lo schermo in posizione. Il coperchio è una parte separata e ha un labbro per aiutare a prevenire l'ingresso di umidità attraverso la cucitura. I quattro fori agli angoli della scatola servono a tenere il coperchio con distanziali da 30 mm. Tutti i fori per le viti hanno un diametro di 3 mm, che si adatta a una vite M3.

Puoi scaricare i file STL dalla mia pagina Thingiverse. Può essere stampato senza zattere o supporti, ma ho usato i supporti solo per sicurezza. Ho anche usato il 100% di riempimento. Poiché le pareti sono così sottili, ridurre la percentuale di riempimento non cambia realmente il tempo di stampa totale o il materiale totale, quindi l'ho semplicemente mantenuto al 100%.

Per rendere visibile lo schermo, potrebbe sporgere attraverso un ritaglio nel coperchio della custodia o essere posizionato dietro una finestra trasparente. Poiché lo schermo non dovrebbe essere esposto all'umidità, siamo bloccati con la seconda opzione. Sfortunatamente la stampa 3D con filamento trasparente è ancora agli inizi, quindi dovremo essere un po' creativi.

La mia soluzione è stata quella di creare un ritaglio rettangolare nel coperchio e incollare un pezzo di plastica trasparente da una confezione di verdure. Questa tecnica può essere utilizzata anche se non stai utilizzando il mio recinto personalizzato; ritaglia semplicemente un rettangolo con un taglierino o un Dremel. Ovviamente, se stai usando un involucro con un coperchio trasparente, questo non è affatto necessario.

La migliore fonte di plastica trasparente che ho trovato è produrre imballaggi. Di solito gli spinaci o altre verdure a foglia si trovano in grandi contenitori di plastica trasparente. Nel mio caso, ho usato la confezione di un "medley di peperoni".

Volevo una sporgenza di 5 mm per dare molta superficie per l'incollaggio, quindi ho ritagliato un rettangolo di 27x77 mm di plastica trasparente. Ho dovuto tagliare un po' gli angoli in modo che le viti si adattassero. Ho spruzzato una linea di supercolla attorno al perimetro del ritaglio, quindi ho posizionato la plastica trasparente. Ho aggiunto un po' più di supercolla intorno al bordo solo per assicurarmi che fosse sigillato.

Suggerimento: posiziona la parte davanti a un piccolo ventaglio mentre la colla si asciuga. Quando la supercolla si asciuga, tende a lasciare dietro di sé un viscido residuo bianco, che di certo non vogliamo sulla nostra finestra trasparente. Ho usato una vecchia ventola da 12V da un alimentatore per computer. Ho lasciato riposare la colla per 12 ore per assicurarmi che fosse completamente asciutta.

Passaggio 3: montaggio dello schermo LCD

Montaggio dello schermo LCD
Montaggio dello schermo LCD
Montaggio dello schermo LCD
Montaggio dello schermo LCD
Montaggio dello schermo LCD
Montaggio dello schermo LCD

Una volta che la finestra trasparente si è asciugata, l'LCD può essere montato. Il display LCD è un display a caratteri 16x2 super popolare, con lo "zaino" I²C pre-saldato sul retro. Consiglio vivamente di ottenere questo schermo con l'interfaccia I²C. Il cablaggio di tutte le linee parallele è piuttosto fastidioso e introduce maggiori possibilità di errori: la versione I²C ha solo due fili per l'alimentazione e due fili per il segnale.

Ho usato quattro distanziatori da 10 mm per montare lo schermo. I distanziatori hanno ciascuno una filettatura maschio su un'estremità e una filettatura femmina sull'altra. Ho inserito la filettatura maschio attraverso i fori nell'LCD e ho stretto un dado M3 a ciascuno. Quindi ho usato quattro viti M3 per fissare le estremità femmina dei distanziatori attraverso il coperchio della custodia. Ho preso questo pacchetto di distanziatori che ha quelli da 10 mm per montare l'LCD e quelli più lunghi per tenere il coperchio alla base. Inoltre, ci sono viti e dadi M3, quindi non è necessario acquistare alcun hardware aggiuntivo.

Assicurati che i dadi siano molto stretti in modo che quando stringi le viti, i distanziatori non girino. Inoltre, assicurati di non stringere eccessivamente le viti, altrimenti il coperchio di plastica potrebbe deformarsi e non sigillarsi correttamente.

La fila di 16 pin di intestazione sull'LCD dovrebbe essere in alto: assicurati di non montare l'LCD capovolto!

Passaggio 4: montaggio del pulsante momentaneo

Montaggio del pulsante momentaneo
Montaggio del pulsante momentaneo
Montaggio del pulsante momentaneo
Montaggio del pulsante momentaneo
Montaggio del pulsante momentaneo
Montaggio del pulsante momentaneo

Ho deciso di usare questo pulsante cromato dall'aspetto malato sul pannello frontale. Li ho usati in progetti precedenti e mi piace molto il loro aspetto. Dovrebbero essere impermeabili e sono dotati di un anello di gomma per impedire all'umidità di entrare nella custodia attraverso i fili.

Questo passaggio è piuttosto semplice. Allentare il dado, ma mantenere l'anello di gomma. Inserire il pulsante attraverso il foro nel coperchio e serrare il dado dal lato posteriore. Evita di serrare eccessivamente il dado, altrimenti l'anello di gomma verrà schiacciato e non servirà al suo scopo.

Passaggio 5: circuito di alimentazione e ricarica

Circuito di alimentazione e ricarica
Circuito di alimentazione e ricarica
Circuito di alimentazione e ricarica
Circuito di alimentazione e ricarica
Circuito di alimentazione e ricarica
Circuito di alimentazione e ricarica

Ora metteremo insieme i componenti di alimentazione della batteria. Ciò include la batteria, l'interruttore principale, la scheda di monitoraggio/ricarica della batteria e il convertitore boost.

La batteria che ho usato è una batteria agli ioni di litio a cella singola da 3,7 V 1500 mAh. Quello in particolare che ho usato è stato estratto da un controller Playstation rotto. Qualsiasi batteria Li-Ion o LiPo a cella singola funzionerà, purché si inserisca nella custodia. Questo tipo di batteria tende ad essere molto sottile e piatta, quindi probabilmente potresti usarne una due volte più grande della mia senza problemi. Una cella 18650 funzionerebbe, ma non si adatta al mio involucro personalizzato, quindi dovrai progettarne uno tuo o utilizzare un involucro standard. Se possibile, consiglio di utilizzare una batteria di recupero (come ho fatto io) perché la spedizione delle batterie è spesso costosa!

La batteria deve essere prima saldata alla scheda di ricarica TP4056. Se lo desideri, puoi saldare un connettore JST RCY alla batteria e al caricabatterie per comodità (l'ho fatto), ma non è necessario. Assicurarsi di osservare la corretta polarità come indicato dai contrassegni sulla scheda del caricabatterie, poiché la scheda non è protetta dall'inversione di polarità della batteria!

Quindi, saldare un filo dall'uscita positiva del caricabatterie (situato accanto al filo positivo della batteria) all'ingresso positivo sul convertitore boost. Quindi saldare un filo dall'uscita negativa (situata accanto al filo negativo della batteria) al pin comune (centrale) dell'interruttore principale. Infine, saldare un filo dal pin normalmente aperto dell'interruttore all'ingresso negativo del convertitore boost. Se si collega un multimetro all'uscita del convertitore boost e si accende l'interruttore principale, dovrebbe essere visualizzata una tensione.

Poiché il nostro Arduino, lo schermo LCD e il sensore di flusso necessitano tutti di 5V, dobbiamo impostare l'uscita del convertitore boost su 5V. Ciò si ottiene ruotando la manopola sul potenziometro con un piccolo cacciavite. Con l'interruttore principale acceso, la batteria collegata e il multimetro collegato all'uscita del convertitore boost, ruotare lentamente il potenziometro finché l'uscita non indica 5V. Sarà difficile ottenere una lettura di esattamente 5.000 V, ma puntare a una tensione compresa tra 4,9 V e 5,1 V.

Poiché la mia custodia personalizzata è tenuta chiusa con diverse viti, non vogliamo dover aprire la custodia ogni volta che deve essere caricata. Ho usato un jack per cuffie da 3,5 mm per questo. Il connettore esatto che ho usato è questo di Digikey (che è quello per cui sono dimensionati i ritagli nel mio recinto), ma anche questo di Banggood dovrebbe funzionare.

Per prima cosa, ho inserito il connettore nel foro più in basso nella custodia. Poiché questo sarà scollegato per la maggior parte del tempo e quindi suscettibile all'ingresso di umidità, è meglio montarlo sul fondo per evitare che l'acqua goccioli all'interno. Dopo aver installato la rondella di sicurezza e serrato il dado, ho saldato due fili alle linguette "punta" e "manicotto" sul connettore. Il pinout del connettore è mostrato in una delle mie immagini annotate. Ho saldato l'altra estremità del cavo "manicotto" all'ingresso negativo del caricabatterie, accanto alla porta micro USB. Infine, ho saldato il filo "punta" al pad +5V, dall'altra parte della porta USB. La porta USB del caricabatterie non verrà utilizzata, poiché sarebbe difficile far penetrare la porta USB nell'involucro senza consentire l'ingresso di umidità.

Passaggio 6: cavo di ricarica

Cavo di ricarica
Cavo di ricarica
Cavo di ricarica
Cavo di ricarica
Cavo di ricarica
Cavo di ricarica

Poiché utilizziamo un jack audio da 3,5 mm come porta di ricarica, dobbiamo creare un cavo adattatore con una spina maschio da 3,5 mm a un'estremità e una presa USB A all'altra estremità. Questo ci consentirà di utilizzare qualsiasi caricabatterie generico per dispositivi mobili (come un caricabatterie per iPhone) per caricare questo dispositivo.

Potresti acquistare un cavo USB con un connettore USB A su un'estremità e fili stagnati sull'altra estremità, ma se sei come me, probabilmente hai una dozzina di cavi USB casuali in giro che non ti servono. Invece di acquistare un cavo USB, ho appena ricevuto un cavo da micro USB a USB A che non mi serviva e ho staccato il connettore micro USB.

Successivamente, ho rimosso la guaina bianca dal cavo per rivelare solo due fili all'interno: un filo rosso e uno nero. Alcuni cavi USB avranno quattro fili: rosso, nero, verde e bianco. Il verde e il bianco sono per il trasferimento dei dati e possono essere ignorati. Spelare l'isolamento solo dai fili rosso e nero.

Successivamente avrai bisogno di una spina maschio da 3,5 mm. Ho usato questo da Banggood. Saldare il filo rosso dal cavo USB alla linguetta centrale (che è la punta del connettore) e il filo nero alla linguetta a manica lunga. Guarda le mie foto per chiarimenti.

Consiglio di collegare sempre la spina da 3,5 mm prima della presa USB, poiché il processo di collegamento del cavo potrebbe causare un cortocircuito della spina attraverso la presa di metallo.

Passaggio 7: informazioni sul sensore di flusso

Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso
Informazioni sul sensore di flusso

Ho preso questo sensore di flusso da Banggood per $ 3,87. Prima di usarlo, ho deciso di indagare su come funziona.

Il design è sorprendentemente semplice e geniale. L'elettronica è completamente sigillata dall'acqua. C'è un'elica a rotazione libera che gira più lentamente o più velocemente a seconda della portata. Ad un certo punto sull'elica c'è un magnete. All'esterno del sensore c'è un piccolo scomparto che contiene un piccolo PCB con due componenti: un resistore e un sensore ad effetto hall. Ogni volta che il magnete passa vicino al sensore ad effetto hall, passa da alto a basso. In altre parole, cambia tra 5V e 0V ogni volta che l'elica ruota.

Per leggere il sensore applichiamo +5V al filo rosso, negativo al filo nero, e leggiamo il segnale digitale dal filo giallo. Nella foto del mio oscilloscopio puoi vedere come cambia il segnale all'accensione del flusso. All'inizio, il segnale è costantemente a zero volt. Quando il flusso inizia, la frequenza degli impulsi raggiunge rapidamente la velocità e raggiunge uno stato stazionario.

Secondo la scheda tecnica, il sensore emette 450 impulsi per litro. Questo sarà importante in seguito quando scriveremo il software.

Passaggio 8: cablaggio del sensore di flusso

Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso
Cablaggio del sensore di flusso

Il sensore di flusso viene fornito con un connettore JST-XH a 3 pin. Questo non è l'ideale perché i fili sono troppo corti e il connettore ha contatti esposti che possono essere facilmente cortocircuitati da gocce d'acqua vaganti. Ho ordinato questo gruppo di cavi con spina audio da 3,5 mm da Digikey. È lungo 3', che è la lunghezza perfetta, e ha fili stagnati, che lo rendono facile da saldare. Non consiglio di provare a usare un vecchio cavo per cuffie, poiché tendono ad avere un filo smaltato molto sottile, che è quasi impossibile da saldare.

Il sensore di flusso ha un coperchio di plastica, tenuto da due viti Phillips. Rimuovere semplicemente queste viti ed estrarre il circuito. Non è trattenuto con alcuna colla, è solo tenuto in posizione con il coperchio di plastica. Quindi, dissaldare i tre fili riscaldandoli con un saldatore e sollevandoli, uno alla volta.

Quindi, saldare il cavo audio da 3,5 mm ai pad. Suggerisco di abbinare i colori come ho fatto io. Questa configurazione ha +5V sulla punta, segnale sull'anello e massa sul manicotto. Questa è la stessa configurazione utilizzata per la porta di ricarica, dal passaggio 6. Se si collega accidentalmente il caricabatterie alla porta del sensore, o viceversa, non ci saranno danni al dispositivo.

Passaggio 9: installazione del sensore di flusso

Installazione del sensore di flusso
Installazione del sensore di flusso
Installazione del sensore di flusso
Installazione del sensore di flusso
Installazione del sensore di flusso
Installazione del sensore di flusso

Fino a questo momento, tutto il nostro lavoro si è svolto in officina. Ma ora è il momento di andare in bagno!

Per prima cosa, ho rimosso il soffione della doccia. Questo ha rivelato un breve pezzo di tubo che sporge dalla parete, con filettatura maschio da 1/2 NPS. Convenientemente, il nostro sensore di flusso ha esattamente la stessa dimensione del filetto! L'unico problema è che il sensore ha una filettatura maschio su entrambe le estremità, quindi lo faremo bisogno di un accoppiamento femmina-femmina.

Nel mio negozio di ferramenta locale, c'erano giunti da 1/2 in ottone, ferro e PVC. Quello in PVC era il più economico, quindi l'ho preso. Anche se con il senno di poi, quelli in ottone o acciaio sarebbero stati più belli.

Una volta ottenuto il giunto, avvitare semplicemente il sensore di flusso nel giunto, quindi avvitare l'altra estremità del giunto sul tubo. Il sensore di flusso ha una freccia per indicare la direzione prevista del flusso. Assicurati di non installarlo al contrario, altrimenti le misurazioni potrebbero essere imprecise. Infine, avvitare il soffione sull'estremità del sensore di flusso.

Ovviamente, presumo che la tua doccia utilizzi una filettatura NPS da 1/2 , come la mia. In caso contrario, dovrai procurarti adattatori aggiuntivi.

Suggerimento: aggiungi del nastro da idraulico in teflon a tutte le filettature prima di avvitare i pezzi insieme per evitare perdite. Non ne avevo a portata di mano, ma ho intenzione di aggiungerlo nel prossimo futuro.

Passaggio 10: Arduino e Perfboard

Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard
Arduino & Perfboard

Dato che dovremo fare molti cablaggi, è una buona idea prendere un pezzo di perfboard per rendere le cose un po' più ordinate. Ho tagliato un rettangolo di perfboard di circa 1" per 2". Successivamente, ho posizionato il mio Arduino Nano al centro della scheda e ho segnato dove passavano i pin dell'intestazione. Quindi ho tagliato due lunghezze di intestazioni femminili, ciascuna lunga 15 pin. Li ho saldati sulla perfboard dove avevo precedentemente segnato. Questo ci permetterà di rimuovere Arduino per la programmazione.

Suggerimento: segna l'orientamento della porta USB di Arduino in modo da collegarla sempre allo stesso modo alla perfboard.

Passaggio 11: cablaggio di tutto

Cablaggio di tutto
Cablaggio di tutto
Cablaggio di tutto
Cablaggio di tutto
Cablaggio di tutto
Cablaggio di tutto

Ora è il momento di saldare tutto insieme! Ho incluso uno schema elettrico completo, che puoi seguire, o vedere i miei passaggi scritti di seguito se preferisci un approccio più guidato.

Per prima cosa, ho tagliato alcuni pin dell'intestazione maschio e li ho saldati sulla perfboard sui +5V e sui binari di terra. Quindi ho saldato altri due pin di intestazione collegati ai pin A4 e A5 sull'Arduino. Queste intestazioni ci consentiranno di collegare lo schermo LCD utilizzando ponticelli femmina-femmina.

Successivamente, ho saldato una coppia di fili dall'uscita del convertitore boost ai +5V e ai binari di terra. Ciò fornirà alimentazione ad Arduino, al display LCD e al sensore di flusso.

Successivamente, ho tagliato due fili e li ho collegati ai terminali del pulsante. Ho saldato un filo alla guida di terra e l'altro al pin 3 digitale.

L'ultima parte da saldare è il sensore di flusso. Poiché abbiamo già collegato una spina da 3,5 mm al sensore, abbiamo solo bisogno di saldare un jack femmina da 3,5 mm. Per prima cosa ho saldato tre fili, uno per ciascuna delle linguette del jack. Quindi ho inserito il jack attraverso la custodia e l'ho fissato in posizione con un dado. Infine, ho saldato il manicotto a massa, la punta a +5V e l'anello al pin digitale 2.

Ho scelto di utilizzare i pin digitali 2 e 3 per il pulsante e il sensore di flusso perché sono pin di interrupt hardware. Questo renderà molto più facile scrivere il codice.

Ora abbiamo finito di saldare, ma dobbiamo ancora collegare l'LCD. Dato che abbiamo saldato le intestazioni, abbiamo solo bisogno di quattro ponticelli da femmina a femmina. Collegare il pin "Vcc" a +5V, il pin "Gnd" a massa, il pin "SCL" ad A5 e il pin "SDA" ad A4. Affinché lo schermo LCD si adatti all'involucro, dovremo piegare i perni dell'intestazione all'indietro. Piegare i perni avanti e indietro più volte affatica il metallo e provoca la rottura dei perni, quindi consiglio di piegarli solo una volta e di farlo con cura.

Ora il cablaggio è completo!

Passaggio 12: programmazione

Programmazione
Programmazione

Ora che l'hardware è tutto connesso, possiamo programmare Arduino.

Voglio che il programma abbia le seguenti caratteristiche:

  • Nella prima riga visualizzare un conteggio in rapido aggiornamento dei litri totali
  • Nella seconda riga visualizzare il costo totale dell'acqua o la portata
  • Quando la doccia è in funzione, il pulsante alterna tra la visualizzazione del costo o la portata
  • Quando la doccia non è in funzione, il pulsante dovrebbe cancellare tutti i dati e ripristinare lo schermo
  • Il sensore deve essere letto utilizzando una routine di interruzione per evitare metodi di polling grossolani
  • Quando aggiorniamo lo schermo, dovremmo aggiornare solo i valori che sono cambiati, piuttosto che sovrascrivere l'intero schermo ogni volta (questo causerebbe uno sfarfallio evidente)

Il programma segue una struttura semplice. Utilizzando la funzione millis(), possiamo creare ritardi che in realtà non interrompono l'esecuzione del programma. Vedere questo tutorial per un esempio di lampeggio di un LED senza utilizzare la funzione delay().

La funzione millis() restituisce il numero di millisecondi dall'accensione di Arduino. Creando una variabile " previousMillis " e sottraendo Millis() - previousMillis(), possiamo vedere il tempo trascorso dall'aggiornamento di previousMillis.

Se vogliamo che accada qualcosa al secondo, possiamo usare il seguente blocco di codice:

if((millis() - precedentemillis) >= 1000){

precedenteMillis = millis(); toggleLED(); }

Questo controlla se la differenza tra millis() (l'ora corrente) e precedenteMillis (l'ultima volta) è maggiore o uguale a 1000 millisecondi. Se lo è, la prima cosa che facciamo è impostare precedenteMillis uguale all'ora corrente. Quindi eseguiamo tutti i passaggi aggiuntivi che desideriamo. In questo esempio, stiamo attivando un LED. Quindi usciamo da questo blocco di codice e terminiamo il resto della funzione loop(), prima di tornare all'inizio e ripetere tutto da capo.

Il vantaggio dell'utilizzo di questo metodo rispetto alla semplice funzione delay() è che delay() inserisce un intervallo di tempo tra le istruzioni, ma non tiene conto del tempo necessario per eseguire le altre istruzioni nella funzione loop(). Se stai facendo qualcosa che richiede più tempo del semplice lampeggio di un LED, come l'aggiornamento di uno schermo LCD, il tempo necessario non è trascurabile e dopo alcuni cicli si sommerà. Se stai aggiornando lo schermo LCD su un orologio, diventerebbe rapidamente impreciso e rimarrebbe indietro.

Quindi, ora che abbiamo compreso la struttura complessiva del programma, è il momento di inserire le istruzioni. Piuttosto che spiegare qui ogni singola riga di codice, ti suggerisco di leggere prima il diagramma di flusso allegato, che offre una panoramica di alto livello di ciò che fa il programma.

Dopo aver visto il diagramma di flusso, dai un'occhiata al codice Arduino allegato. Ho commentato quasi ogni riga per chiarire cosa sta facendo ogni riga.

Ci sono alcune parti nel codice che potresti voler cambiare. La cosa più importante è il costo al litro. Nella mia città l'acqua costa 0,2523 al litro. Individua la riga seguente e modifica tale valore in modo che corrisponda al costo in cui vivi:

const float COST_PER_LITRE = 0,2523; // costo per litro, in centesimi, dal sito web della città

Se preferisci usare galloni su litri, cambia tutte le righe "LCD.print()" che fanno riferimento a "L" o "L/s" in "G" o "G/s". Quindi eliminare la seguente riga:

const float CONVERSIONE = 450.0; // mantieni questo non commentato per litri

…e decommenta questa riga:

const float CONVERSIONE = 1703.0; // decommenta questo ed elimina la riga sopra per galloni

C'è un'altra stranezza che potresti aver notato nel mio codice. Il set di caratteri predefinito non include il carattere "¢" e non volevo usare dollari, perché il costo sarebbe apparso come "$ 0,01" o meno per la maggior parte del tempo. Pertanto, sono stato costretto a creare un personaggio personalizzato. Il seguente array di byte viene utilizzato per rappresentare questo simbolo:

byte cent_sign = { B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100 };

Dopo aver creato questo array, il carattere speciale deve essere "creato" e archiviato.

lcd.createChar(0, cent_sign);

Fatto ciò, per stampare il carattere personalizzato utilizziamo la seguente riga:

lcd.write(byte(0)); // stampa il segno dei centesimi (¢)

Il display LCD può avere fino a 8 caratteri personalizzati. Maggiori informazioni su questo sono qui. Mi sono anche imbattuto in questo utile strumento online che ti consente di disegnare il carattere personalizzato utilizzando un'interfaccia grafica e genererà automaticamente l'array di byte personalizzato.

Passaggio 13: chiusura del coperchio

Chiusura del coperchio
Chiusura del coperchio
Chiusura del coperchio
Chiusura del coperchio
Chiusura del coperchio
Chiusura del coperchio

Finalmente abbiamo quasi finito!

È ora di inserire tutta l'elettronica nella custodia e sperare che il coperchio si chiuda. Ma prima, dobbiamo collegare i distanziatori da 30 mm. Il pacchetto di distanziatori che ho acquistato non ne include nessuno così lungo, ma viene fornito con quelli da 20 mm e 10 mm che possono essere attaccati insieme. Ho avvitato quattro distanziatori nei fori sul fondo dell'involucro con quattro viti M3 (vedi immagini 1 e 2). Assicurati di stringerli in modo sicuro, ma non troppo stretto o rischi di rompere l'involucro di plastica.

Ora possiamo inserire tutta l'elettronica all'interno. Ho attaccato il caricatore e il convertitore boost al coperchio con del nastro biadesivo, come si vede nella terza immagine. Quindi ho avvolto del nastro isolante attorno al metallo esposto sui due jack da 3,5 mm, solo per assicurarmi che nulla venga cortocircuitato contattando i connettori.

Sono stato in grado di adattare Arduino posizionandolo su un lato, nell'angolo in basso a sinistra, con la sua porta USB rivolta verso destra. Ho usato altro nastro biadesivo per fissare la batteria alla parte inferiore della custodia sotto lo schermo LCD.

Infine, una volta che tutto è incastrato più o meno saldamente nella scatola, il coperchio può essere avvitato con altre quattro viti M3.

Passaggio 14: test

test
test
test
test
test
test
test
test

Collegare prima il connettore da 3,5 mm dal sensore di flusso. Raccomando di farlo prima che il dispositivo venga acceso, perché è possibile che la spina effettui una connessione indesiderata mentre viene inserita.

Quindi, accendere l'interruttore di alimentazione principale. Mentre non c'è acqua che scorre, il pulsante del pannello frontale non dovrebbe fare altro che cancellare il totale e cancellare lo schermo. Poiché il totale sarà zero per impostazione predefinita, il pulsante non sembrerà ancora fare nulla.

Se accendi la doccia, il totale dovrebbe iniziare ad aumentare. Per impostazione predefinita, viene mostrato il costo. Se si preme il pulsante del pannello frontale, la portata verrà visualizzata nella riga inferiore. Premendo il pulsante sul pannello frontale si alterna tra la visualizzazione della portata e la visualizzazione del costo, a condizione che la doccia sia in funzione. Una volta che la doccia si ferma, premendo il pulsante del pannello frontale si ripristinano le misurazioni e si cancella lo schermo.

Montaggio

Il modo in cui scegli di montare il dispositivo dipende dal layout della tua doccia. Alcune docce potrebbero avere una sporgenza abbastanza vicina al soffione da poter semplicemente posizionare il dispositivo lì. Nella mia doccia, ho un cesto attaccato con ventose in cui ho posizionato il dispositivo all'interno. Se non hai il lusso di una sporgenza o di un cesto, puoi provare a tenere il dispositivo al muro con una ventosa a doppia faccia. Funzionerà solo se stai utilizzando un involucro standard con un supporto liscio o se hai stampato il mio involucro personalizzato su una stampante con una piastra di costruzione in vetro. Se il tuo recinto ha un supporto ruvido (come il mio), potresti provare a usare del nastro biadesivo, anche se questo potrebbe lasciare dei residui sulla parete della doccia se provi a rimuovere il dispositivo.

Risoluzione dei problemi

Lo schermo è acceso, ma la retroilluminazione è spenta - assicurati che il jumper sia installato sui due pin sul lato del modulo I²C

Lo schermo è vuoto, con la retroilluminazione accesa: controlla che l'indirizzo I²C sia corretto eseguendo lo scanner I²C

Lo schermo è acceso, ma i valori rimangono zero - controlla che ci sia un segnale proveniente dal sensore misurando la tensione sul pin 2. Se non c'è segnale, controlla che il sensore sia collegato correttamente.

Lo schermo è vuoto con la retroilluminazione spenta: controlla che il LED di alimentazione su Arduino sia acceso e controlla che lo schermo sia alimentato

Lo schermo si accende brevemente, poi tutto si ferma - probabilmente hai impostato la tensione dal convertitore boost troppo alta (i componenti non possono gestire più di 5V)

Il dispositivo funziona, ma i valori sono errati: assicurati che il sensore di flusso che stai utilizzando abbia lo stesso fattore di conversione di 450 impulsi per litro. Sensori diversi possono avere valori diversi.

Passaggio 15: ora inizia a risparmiare acqua

Miglioramenti

L'attuale versione del software funziona abbastanza bene, ma alla fine vorrei aggiungere la possibilità di avere utenti diversi (familiari, coinquilini, ecc.) Il dispositivo memorizzerà le statistiche di ogni persona (acqua totale e numero totale di docce) per visualizzare un consumo medio di acqua per ogni persona. Ciò potrebbe incoraggiare le persone a competere per utilizzare la minor quantità di acqua.

Sarebbe anche bello avere un modo per esportare i dati da visualizzare in un foglio di calcolo, in modo che possano essere rappresentati graficamente. Quindi potresti vedere in quali periodi dell'anno le persone hanno docce più frequenti e più lunghe.

Queste funzionalità richiederebbero tutte l'uso di EEPROM, la memoria non volatile integrata di Arduino. Ciò consentirebbe di conservare i dati anche dopo lo spegnimento del dispositivo.

Un'altra caratteristica utile sarebbe un indicatore della batteria. In questo momento, l'unica indicazione che il dispositivo deve essere ricaricato è quando la scheda di gestione della batteria interrompe l'alimentazione. Sarebbe facile collegare un ingresso analogico extra per misurare la tensione della batteria. Non sarebbe nemmeno necessario un partitore di tensione poiché la tensione della batteria è sempre inferiore a 5V.

Alcune di queste idee rasentano lo scorrimento delle funzionalità, motivo per cui non ho sviluppato ulteriormente il software.

Il resto sta a voi!

Concorso Sensori
Concorso Sensori
Concorso Sensori
Concorso Sensori

Primo Premio al Concorso Sensori

Consigliato: