Sommario:

Misuratore di livello del serbatoio ad ultrasuoni: 5 passaggi (con immagini)
Misuratore di livello del serbatoio ad ultrasuoni: 5 passaggi (con immagini)

Video: Misuratore di livello del serbatoio ad ultrasuoni: 5 passaggi (con immagini)

Video: Misuratore di livello del serbatoio ad ultrasuoni: 5 passaggi (con immagini)
Video: Usare un sensore di livello senza contatto (XKC-Y25-npn) con Arduino - Video 558 2024, Luglio
Anonim
Misuratore di livello del serbatoio ad ultrasuoni
Misuratore di livello del serbatoio ad ultrasuoni
Misuratore di livello del serbatoio ad ultrasuoni
Misuratore di livello del serbatoio ad ultrasuoni

Hai bisogno di monitorare il livello del fluido in un pozzo di grande diametro, un serbatoio o un contenitore aperto? Questa guida ti mostrerà come realizzare un misuratore di livello del fluido senza contatto sonar utilizzando un'elettronica economica!

Lo schizzo sopra mostra una panoramica di ciò a cui miravamo con questo progetto. Il nostro cottage estivo ha un pozzo di grande diametro per fornire acqua potabile per l'uso in casa. Un giorno, mio fratello ed io abbiamo parlato di come nostro nonno misurasse manualmente il livello dell'acqua per tenere traccia del consumo e dell'afflusso di acqua durante l'estate per evitare lo scoperto. Abbiamo pensato che con l'elettronica moderna avremmo dovuto far rivivere la tradizione, ma con meno lavoro manuale. Con alcuni accorgimenti di programmazione, siamo riusciti a utilizzare un Arduino con un modulo sonar per misurare la distanza dalla superficie dell'acqua (l) con una ragionevole affidabilità e una precisione di ± qualche millimetro. Ciò significava che potevamo stimare il volume rimanente V, utilizzando il diametro D noto e la profondità L, con una precisione di circa ±1 litro.

Poiché il pozzo si trova a circa 25 metri dalla casa e volevamo il display al chiuso, abbiamo optato per l'utilizzo di due Arduino con un collegamento dati in mezzo. Puoi facilmente modificare il progetto per utilizzare un solo Arduino se questo non è il tuo caso. Perché non utilizzare il trasferimento dati wireless? In parte per semplicità e robustezza (il filo ha meno probabilità di essere danneggiato dall'umidità) e in parte perché si voleva evitare l'utilizzo di batterie lato sensore. Con un cavo, potremmo instradare sia il trasferimento dei dati che l'alimentazione attraverso lo stesso cavo.

1) Modulo Arduino in casaQuesto è il modulo Arduino principale. Invierà un segnale di attivazione all'Arduino nel pozzo, riceverà la distanza misurata e visualizzerà il volume d'acqua rimanente calcolato su un display.

2) Arduino Well side e modulo sonar Lo scopo di questo Arduino è semplicemente quello di ricevere un segnale di trigger dalla casa, eseguire una misurazione e rinviare la distanza dal modulo sonar al livello dell'acqua. L'elettronica è incorporata in una scatola (relativamente ermetica), con un tubo di plastica attaccato al lato ricevente del modulo sonar. Lo scopo del tubo è ridurre gli errori di misurazione riducendo il campo visivo in modo che solo la superficie dell'acqua sia "vista" dal ricevitore.

Passaggio 1: parti, test e programmazione

Parti, test e programmazione
Parti, test e programmazione
Parti, test e programmazione
Parti, test e programmazione
Parti, test e programmazione
Parti, test e programmazione

Abbiamo utilizzato le seguenti parti in questo progetto:

  • 2 x Arduino (uno per misurare il livello del fluido, uno per mostrare i risultati su un display)
  • Un alimentatore di base da 12 V
  • Modulo a ultrasuoni (ecoscandaglio) HC-SR04
  • Modulo display a LED MAX7219
  • Cavo telefonico da 25 m (4 fili: alimentazione, terra e 2 segnali dati)
  • Scatola di montaggio
  • Colla calda
  • Saldare

Costo delle parti: circa € 70

Per assicurarci che tutto funzionasse come doveva, prima abbiamo eseguito tutte le operazioni di saldatura, cablaggio e semplici test al banco. Ci sono molti programmi di esempio per il sensore a ultrasuoni e il modulo LED online, quindi li abbiamo usati solo per assicurarci che la distanza misurata avesse senso (immagine 1) e che fossimo in grado di catturare il riflesso ultrasonico dalla superficie dell'acqua su- sito (foto 2). Abbiamo anche eseguito alcuni test approfonditi del collegamento dati per assicurarci che funzioni sempre su lunghe distanze, il che si è rivelato nessun problema.

Non sottovalutare il tempo speso in questo passaggio, poiché è fondamentale sapere che il sistema funziona prima di impegnarsi per montare tutto bene nelle scatole, scavare i cavi, ecc.

Durante i test, ci siamo resi conto che il modulo sonar a volte capta un riflesso sonoro da altre parti del pozzo, come le pareti laterali e il tubo di alimentazione dell'acqua, e non dalla superficie dell'acqua. Ciò significava che la distanza misurata all'improvviso sarebbe stata molto più breve della distanza effettiva dal livello dell'acqua. Poiché non possiamo semplicemente utilizzare la media per appianare questo tipo di errore di misurazione, abbiamo deciso di scartare qualsiasi nuova distanza misurata che fosse troppo diversa dalla stima della distanza corrente. Questo non è problematico poiché ci aspettiamo che il livello dell'acqua cambi comunque piuttosto lentamente. All'avvio, questo modulo effettuerà una serie di misurazioni e selezionerà il valore più grande ricevuto (ovvero il livello dell'acqua più basso) come punto di partenza più probabile. Successivamente, oltre alla decisione "mantieni/scarta", viene utilizzato un aggiornamento parziale del livello stimato per appianare errori di misurazione casuali. È anche importante consentire a tutti gli echi di scomparire prima di eseguire una nuova misurazione, almeno nel nostro caso in cui le pareti sono realizzate in cemento e quindi molto echeggiate.

La versione finale del codice che abbiamo usato per i due Arduino può essere trovata qui:

github.com/kelindqv/arduinoUltrasonicTank

Fase 2: Opere Civili

Opere Civili
Opere Civili

Dato che il nostro pozzo si trovava lontano dalla casa, abbiamo dovuto creare una piccola trincea nel prato in cui mettere il cavo.

Passaggio 3: collegamento e montaggio di tutti i componenti

Collegamento e montaggio di tutti i componenti
Collegamento e montaggio di tutti i componenti
Collegamento e montaggio di tutti i componenti
Collegamento e montaggio di tutti i componenti
Collegamento e montaggio di tutti i componenti
Collegamento e montaggio di tutti i componenti

Collega tutto com'era durante il test e spera che funzioni ancora! Ricordati di controllare che il pin TX di un Arduino vada all'RX dell'altro e viceversa. Come mostrato in figura 1, abbiamo utilizzato il cavo telefonico per alimentare l'Arduino nel pozzo, per evitare di utilizzare le batterie.

La seconda e la terza immagine mostrano la disposizione del tubo di plastica, con il trasmettitore posizionato all'esterno del tubo e il ricevitore posizionato all'interno (sì, questa era una posizione di ripresa scomoda…)

Passaggio 4: calibrazione

Dopo essersi assicurati che la distanza dal sensore al livello dell'acqua fosse calcolata correttamente, la calibrazione si è limitata a misurare il diametro del pozzo e la profondità totale in modo da poter calcolare il volume del fluido. Abbiamo anche aggiustato i parametri dell'algoritmo (tempo tra le misurazioni, i parametri di aggiornamento parziale, numero di misurazioni iniziali) per fornire una misurazione robusta e accurata.

Quindi quanto bene ha fatto il sensore a tracciare il livello del fluido?

Potremmo facilmente vedere l'effetto dello sciacquone del rubinetto per alcuni minuti o dello sciacquone del water, che è quello che volevamo. Abbiamo persino potuto vedere che il pozzo si stava riempiendo a una velocità relativamente prevedibile durante la notte, il tutto con una semplice occhiata sul display. Successo!

Nota: la conversione tempo-distanza attualmente non corregge i cambiamenti nella velocità del suono dovuti alle variazioni di temperatura. Questa potrebbe essere una bella aggiunta futura, dal momento che le temperature nel pozzo varieranno parecchio!

Passaggio 5: uso a lungo termine

Aggiornamento di 1 anno: il sensore funziona perfettamente senza segni di corrosione o danni nonostante l'ambiente umido! L'unico problema durante l'anno è stato l'accumulo di condensa sul sensore durante la stagione fredda (in inverno), che ovviamente blocca il sensore. Questo non è un problema nel nostro caso poiché abbiamo bisogno di letture solo durante l'estate, ma altri utenti potrebbero dover essere creativi!:) L'isolamento o la ventilazione sono probabilmente soluzioni praticabili. Felice di inventare!

Consigliato: