Ho acquistato e testato il funduino water sensor un sensore di livello per arduino con cui puoi monitorare il livello d’acqua presente in un serbatoio.
Il funduino water sensor è piccolo in modo che tu possa installarlo facilmente anche in contenitori di ridotte dimensioni.
E’ un sensore analogico che puoi collegare ad arduino utilizzando uno dei 6 pin analogici ( A0 – A5 ) e leggi i dati con semplici comandi analogici che troverai nel corso di questo articolo di prova del sensore.
Specifiche del sensore Funduino water sensor
- Color: Rosso
- Power Supply: 3.3V or 5V
- Working Current: < 20mA
- Output Voltage: 0~2.3V (con il sensore completamente immerso in acqua)
- Interface Definitions: 1: pin segnale, 2: pin GND, 3: pin positivo ( +5v )
- Service Life: un anno approssimativamente
- Sensor Type: Analogico
- Weight: 8.0g
- Packaging Dimensions: 120.0 x 78.0x 10.0mm
Queste specifiche ti fanno rapidamente capire che tale sensore è stato studiato per essere utilizzato con microcontrollori come arduino accettando come alimentazione dai 3,3v ai 5v ed assorbendo meno di 20mA.
Dalle specifiche il funduino water sensor raggiunge in output i 2,3v se completamente immerso in acqua, questo significa che in termini numerici leggerai al massimo 471 come valore, nel mio test questo limite è risultato errato in quanto sono riuscito a leggere valori superiori ai 700 (vedi video sotto).
I collegamenti del water sensor
Come descritto al paragrafo precedente i collegamneti sono davvero semplici per cui ho realizzato un semplice schema:
e realizzato le foto del funduino water sensor connesso tramite tre cavi ad arduino:
Lo sketch usato per il test
I test dei sensori analogici li eseguo sempre con il minimo sforzo e per farlo preferisco partire da uno degli esempi arduino presenti nell’IDE “AnalogReadSerial” che modifico solo nell’ultima linea per incrementare il tempo tra una riga e la successiva da 1 millisecondo a 100 millisecondi:
/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(100); // delay in between reads for stability }
non c’è nulla da spiegare in quanto questo esempio è così semplice che ti basta leggere le prime lezioni del mio corso on-line gratuito per trovare la descrizione dettagliata di questo sketch.
Il video del Funduino water sensor test
Ho realizzato un video in cui puoi vedere come variano i valori letti da arduino in funzione della quantità d’acqua presente nel contenitore:
Buona rilevazione !!!
Important!
Gentilmente rispetta le 2 seguenti semplici regole:
– NON incollare sketch nei commenti, descrivi il tuo problema.
– NON inserire link a siti generalisti, di aste on-line, e-commerce non certificati e social network.
Warning!
Gli sketch sono distribuiti in forma gratuita e senza alcuna responsabilità.
Leggendo questo articolo e decidendo di usare lo sketch proposto ti assumi ogni responsabilità.
40 comments
Vai al modulo dei commenti ↓
Giacomo
11 agosto 2014 a 23:57 (UTC 2) Link a questo commento
E’ sicuro usare un sensore di questo tipo in un serbatoio di benzina (senza piombo, “verde”)? La mia preoccupazione è che la corrente che attraversa il fluido, seppur poca (qualche mA), possa innescare qualche reazione di combustione. Qualcuno sa qualcosa a riguardo?
Mauro Alfieri
12 agosto 2014 a 08:22 (UTC 2) Link a questo commento
Ciao Giacomo, assolutamente no, la parola “water” in italiano significa acqua.
Questo sensore può misurare solo il livello di acqua in un serbatoio !!!
Giacomo
15 agosto 2014 a 00:05 (UTC 2) Link a questo commento
Avevo notato la parola ma pensavo si potesse usare più genericamente in altri fluidi, grazie mille per chiarimento e complimenti per il blog.
Mauro Alfieri
17 agosto 2014 a 13:41 (UTC 2) Link a questo commento
Ciao Giacomo, purtroppo no, so che esistono altri sensori ma non li ho mai provati.
luca
14 agosto 2014 a 18:29 (UTC 2) Link a questo commento
Ciao Mauro, questo sensore può rilevare anche il livello di una cisterna profonda un metro oppure si limita a rilevare il livello di un piccolo recipiente? Grazie e complimenti per il sito.
Luca
Mauro Alfieri
17 agosto 2014 a 13:30 (UTC 2) Link a questo commento
Ciao Luca,
il sensore è piccolo ma puoi usarlo come livello dell’acqua posizionandolo in alto o usandone due per ottenere diverse misurazioni.
So che per le cisterne di grandi dimensioni esistono sensori professionali molto attendibili.
Ti chiedo la cortesia di mettere link a siti che parlano dello stesso argomento degli articoli o dei sensori proposti, altri link, pubblicitari o simili, sono costretto a cancellarli e segnalarli come spam.
Carlo
21 agosto 2014 a 06:20 (UTC 2) Link a questo commento
Salve sono Carlo da Chioggia , ho ralizzato un piccolo progetto per il controllo di livello dell`acqua in una vasca dove sono immerse per due centimetri due piante carnivore che devono essere irrighate dal sottovaso con acqua distillata ,una volta raggiunto il livello minimo una pompa ripristina il livello al massimo. Ho utilizzato un sensore simile analogico , il problema che ho riscontrato anche andando a leggere il livello una volta all’ora la formazione di elettrolisi su gli elettrodi in acciaio inox . Ora pensavo per risolvere il problema di dare alimentazione al sensore solo per un secondo giusto il tempo di fare la lettura per limitare il fenomeno. Mi chiedevo se il sensore da lei utilizzato soffre dello stesso problema.
Saluti e complimenti
Carlo
Mauro Alfieri
21 agosto 2014 a 12:20 (UTC 2) Link a questo commento
Ciao Carlo,
non ho provato il sensore per così tanto tempo da rilevare un fenomeno come quello che segnali, tuttavia trovo la problematica molto interessante per cui penso di introdurre un sistema come quello che suggerisci per evitare l’elettrolisi.
Ciò che non capisco è perché ti si forma elettrolisi se usi acqua distillata, non dovrebbe.
Carlo
21 agosto 2014 a 20:51 (UTC 2) Link a questo commento
Se può interessare posso documentare con foto.
Carlo
Mauro Alfieri
22 agosto 2014 a 09:32 (UTC 2) Link a questo commento
Volentieri Carlo, sempre a disposizione degli appassionati quando si tratta di articoli interessanti su arduino e l’elettronica.
Grazie !!!
Massimo
1 novembre 2014 a 17:04 (UTC 2) Link a questo commento
Per quanto piccola (vedi pH!) l’acqua pura ha una certa parte di ioni dissociati in grado di far avvenire il fenomeno di elettrolisi, se le correnti disponibili sono suffiecientemente elevate anche in relazione al tipo di superfici che si comportano da elettrodi.
Mauro Alfieri
3 novembre 2014 a 10:07 (UTC 2) Link a questo commento
Grazie Massimo per la precisazione 🙂
Joao
10 novembre 2014 a 19:58 (UTC 2) Link a questo commento
Hi Mauro,
thanks for sharing, that was a great introductory material on this sensor. On your comment about the voltages around 700-ish, i’d like to add that i did get the same behavior when i connected this to the 5v Arduino pin. on the other hand, while it was connected it to the 3.3V pin, the maximum values indeed appeared to be around 470. 🙂
I can see this sensor can be very useful in a number of applications, like for a large tank, or maybe rain detection. For my immediate application I need a sensor to quickly determine whether a small sous-vide water bath water level is too low, in which case i need to turn off a heating element to prevent it from burning.
the issue of this sensor for that particular application is that on account of surface tension even when the water goes below the desired mark, a few drops may remain over the metal contacts for a considerable time.
the alternative i have right now for this component is a cheap float switch i got online, which appear to be very reliable, but it’s a bit clumsy to attach to my sous home-made device.
maybe there is a voltage level that i could rely on to give accurate measurements (high enough to avoid false positives due to drops of remaining water, but low enough that it wouldn’t be accidentally triggered when the water is high. need to do some long running tests on that to be sure.
Thanks!
Nino
16 novembre 2014 a 19:00 (UTC 2) Link a questo commento
Volevo chiederti se potevi, quando hai tempo e se ti va, creare un piccolo sistema serra con acqua e monitoraggio temperatura e umidità e magari delle ventole, non sono molto forte in questi argomenti grazie per qualsiasi aiuto.
bellissimo blog buona fortuna.
Mauro Alfieri
17 novembre 2014 a 10:40 (UTC 2) Link a questo commento
Ciao Nino,
è un progetto interessante, trovi nel blog un po di articoli dedicati a questo argomento che puoi unire per realizzare tutto quello che ti occorre.
Se riesco, prima o poi, ne faccio un articolo unico con tutte le funzioni necessarie, resta importante che tu comprenda come funziona un sistema simile in quanto il bello dei progetti con arduino è che tu puoi avere esigenze differenti dalle mie e modificarti il progetto per adattarlo alla tua serra, ma devi sapere come fare.
Sebastian
7 marzo 2015 a 10:24 (UTC 2) Link a questo commento
Salve
immagino che il sensore utilizzi la corrente per “vedere” la presenza dell’acqua.
Ora le chiedo se per caso ha fatto anche prove con i tester per vedere se l’utilizzo del sensore causa una variazione
elettrica nel fluido?
Perchè le chiedo questo, perchè sto realizzando un sistema idroponico completo e dai datasheet dei sensori di misurazione di acqua/ec/ossigeno viene riportato il possibile presentarsi di problemi legati appunto all”inquinamento” del liquido dovuto ad altre apparecchiature elettrreiche ivi immerse.
In attesa di una Sua Cordiali saluti.
Mauro Alfieri
9 marzo 2015 a 16:03 (UTC 2) Link a questo commento
Ciao Sebastian,
un minimo apporto e variazione della componente chimica dell’acqua me la aspetto anche se non sono un chimico.
L’effetto dell’elettrolisi causata dalla corrente, per quanto bassa, che attraversa i conduttori è innegabile.
Se vuoi un sistema senza contatto elettrico devi progettarti un galleggiante con potenziometro oppure con contatto magnetico.
Christian
9 aprile 2015 a 07:35 (UTC 2) Link a questo commento
Salve Mauro,
É possibile ottenere anche i millilitri di acqua da misurare in un piccolo contenitore?
Grazie per l’informazione,
Cordiali saluti
Mauro Alfieri
9 aprile 2015 a 09:20 (UTC 2) Link a questo commento
Ciao Christian,
la linearità e precisione su bassi volumi non mi sembra fosse la peculiarità di questo componente.
Puoi fare qualche test per verificare che soddisfi la tua necessità.
Luca
16 maggio 2015 a 15:52 (UTC 2) Link a questo commento
Salve.
Potresti descrivermi per favore il funzionamento del sensore? (come viene rilevato il livello dell acqua e come viene inviato poi ad arduino)
Grazie in anticipo.
Mauro Alfieri
18 maggio 2015 a 10:10 (UTC 2) Link a questo commento
Ciao Luca,
sono informazioni che trovi descritte nell’articolo.
Per i dettagli e le caratteristiche tecniche puoi far riferimento al sito del produttore.
Antonio
25 giugno 2015 a 12:15 (UTC 2) Link a questo commento
Buon giorno
Curiosando in rete alla ricerca di qualche sensore utile / interessante da abbinare ad Arduino, mi sono imbattuto in alcuni sensori di livello che misurano la pressione idrostatica del liquido, in pratica dei sensori molto sensibili di pressione.
Ti volevo chiedere se li conoscevi o se li hai usati in qualche progetto, magari con Arduino?
Mauro Alfieri
25 giugno 2015 a 15:20 (UTC 2) Link a questo commento
Ciao Antonio,
purtroppo non ne conosco.
Puoi indicarmi quali hai valutato tu?
Giorgio
2 novembre 2015 a 18:53 (UTC 2) Link a questo commento
Salve volevo chiederti come si può convertire i valori letti dal sensore in millimetri o centimetri visto che sto cercando di usarlo come pluviometro in una stazione meteo
Mauro Alfieri
3 novembre 2015 a 10:32 (UTC 2) Link a questo commento
Ciao Giorgio,
puoi farlo in modo empirico tenendo conto che questo sensore non è lineare e non viene venduto come tale.
Sandro
5 gennaio 2016 a 12:02 (UTC 2) Link a questo commento
Ciao,
probabilmente farò una domanda che potrà sembrare ridicola, ma considera che sono un perito informatico, programmatore di professione, e che quindi le mie nozioni di elettronica sono minime.
La domanda che volevo porti è la seguente:
ho una cantina che con le forti piogge tende ad allagarsi. Ho messo una pompa ad immersione che fa il suo lavoro ma il galleggiante tende a bloccarsi. Per ovviare a questo, pensavo di tenere fissa accesa la pompa e utilizzare Arduino con un water sensor in modo che faccia lui da interruttore.
Come collego la pompa ad Arduino? Sbaglio o devo metterci un relè per attivare la pompa che va alimentata a 220V?
Spero di essere stato chiaro e scusa se ho fatto domande che possono sembrare a epserti come te ovvie.
Mauro Alfieri
5 gennaio 2016 a 12:59 (UTC 2) Link a questo commento
Ciao Sandro,
ti stupirà ma la tua è tra le domande meno scontate che ho letto in questo inizio 2016 🙂
Si hai bisogno di una scheda relay controllata possibilmente con optoisolatore, questo componente ti permette di gestire il relay come un led.
Unico dubbio riguarda il sistema con “water sensor” che se continuamente alimentato ed immerso in acqua garantisce poca durata a causa dell’ossidoriduzione dovuta all’elettrolisi, per questo motivo le pompe usano un interruttore tipo tilt in un contenitore stagno.
Se dovessi suggerirti una alternativa direi che un sistema con galleggiante a leva, tipo quelli presenti nella cassetta di raccolta acque del bagno connesso ad un interruttore potrebbe, nel tuo caso, essere una soluzione migliore, economica e semplice da realizzare
Valerio
13 gennaio 2016 a 23:36 (UTC 2) Link a questo commento
Ciao Mauro e complimenti per il bel tutorial.
Ho acquistato anch’io questo sensore poiché sto costruendo un modellino di galleria del vento e, per misurare la velocità del vento all’interno della galleria, ho deciso di usare un tubo di Pitot (un semplice tubo aperto nella direzione della corrente d’aria e in controcorrente, con una curva a “U” e l’altra estremità del tubo aperta. Il tubo contiene acqua, il cui livello di innalzamento vorrei misurare proprio col fonduino). Vorrei, come scritto, utilizzare tale sensore per leggere il livello di innalzamento dell’acqua nel tubo di Pitot per effetto della pressione idrodinamica del vento. Ovviamente, trattandosi di un modello in scala, la turbina da 24V e 2A non riesce a generare un vento superiore ai 60-70 km/h, corrispondenti ad un innalzamento dell’acqua del pitot di circa una ventina di millimetri. Secondo te, questo sensore, pur non essendo lineare (questo per me non è un problema…basta un buon fit dopo aver mappato i dati) ha una sensibilità tale da rilevare un singolo millimetro di innalzamento? Te lo chiedo poiché non riesco a trovare il datashit del sensore.
Grazie e ancora complimenti.
Valerio
Mauro Alfieri
14 gennaio 2016 a 12:21 (UTC 2) Link a questo commento
Ciao Valerio,
se ricordo bene, il test l’ho eseguito tempo fa, la variazione rilevata è alquanto alta probabilmente 1mm riuscirai a rilevarlo.
Valerio
14 gennaio 2016 a 16:25 (UTC 2) Link a questo commento
Grazie mille per la risposta.
Testerò appena arriva il sensore.
Saluti,
Valerio
Piero
9 maggio 2016 a 20:08 (UTC 2) Link a questo commento
Salve sig Mauro ,
le chiedo se con questo sensore è possibile misurare il livello in un serbatoio di ritorno di Liquido raffreddamento motore ( antigelo ) diluito con differenti gradi di congelamento durante l’anno ( dai -40 inverno ai -20/-10 in estate ) Grazie in anticipo
Piero
Mauro Alfieri
10 maggio 2016 a 10:12 (UTC 2) Link a questo commento
Ciao Piero,
questo sensore è venduto per misurare acqua ( water sensor ) potresti provare se il liquido non è infiammabile e verificando che non venga compromesso dagli agenti chimici presenti nel liquido di raffreddamento.
fabio visentin
19 maggio 2016 a 14:59 (UTC 2) Link a questo commento
Ciao volevo fare una domanda che probabilmente avra’ gia fatto qualcun altro… Ma questo sensore puo essere utilizzato ugualmente per misurare il livello di olio di un serbatoio?
Mauro Alfieri
23 maggio 2016 a 12:27 (UTC 2) Link a questo commento
Ciao Fabio,
chiamandosi Water sensor, comprendi che il produttore lo rilascia solo per uso in acqua, puoi provarlo per averne conferma, so che alcune persone lo hanno usato con altri liquidi non infiammabili con successo.
Clem
22 ottobre 2016 a 10:28 (UTC 2) Link a questo commento
Ciao Mauro
io volevo realizzare un freatimetro, collegando la scheda arduino ad un led con buzzer che si attivasse quando il sensore Funduino tocca l’acqua. Premetto che non ne capisco niente e che ancora non ho acquistato niente, prima domanda, come alimento la scheda? posso collegare il sensore ad un cavo piatto? non riesco a capire le dimensioni del sensore, nelle specifiche c’è scritto 120 x78x10 mm, lunghezza ,larghezza,spessore, ma dalle foto mi pare più piccolo o ho capito male?
cosa devo acquistare volendolo realizzare?
Grazie
Mauro Alfieri
24 ottobre 2016 a 11:31 (UTC 2) Link a questo commento
Ciao Clem,
prima di fare acquisti penso sia per te importante comprendere meglio come funziona arduino ed i sensori, prova a leggere il mio corso on-line arduino gratuito.
Quando avrai acquisito sufficienti conoscenze sarai in grado di organizzare l’acquisto del materiale per il tuo progetto.
Sulle dimensioni mi sembra siano superiori alle reali dimenioni, sei certo non siano quelle della confezione?
cri
21 maggio 2017 a 11:38 (UTC 2) Link a questo commento
Ciao, mi puoi chiarire un dubbio? Tu scrivi “Dalle specifiche il funduino water sensor raggiunge in output i 2,3v se completamente immerso in acqua, questo significa che in termini numerici leggerai al massimo 471 come valore”, cioè i valori da 0 a 471 vanno interpretati come una discretizzazione del range 0~2.3V? Come si ottiene?
Mauro Alfieri
22 maggio 2017 a 06:37 (UTC 2) Link a questo commento
Ciao Cri,
si ha compreso il concetto. Il convertitore arduino ADC, come hai letto nella scheda tecnica e datasheet presente sul sito ufficiale, è 10bit 0-5v da cui puoi fare la proporzione per comprendere come ricavare i valori in funzione della tensione.
mattia
19 agosto 2017 a 01:15 (UTC 2) Link a questo commento
buonasera volevo chiederti se e possibile utilizzare questo sensore ed il relativo sketch su arduino nano
Mauro Alfieri
21 agosto 2017 a 12:28 (UTC 2) Link a questo commento
Ciao Mattia,
penso non dovresti avere problemi con l’arduino nano essendo basato sul medesimo micro controllore della uno, al massimo dovrai adattarlo.