Problema Capacitive Soil Moisture Sensor - stesso valore dopo vari giorni

Buonasera a tutti,
come si evince dal titolo del topic, sto riscontrando problemi con un igrometro di tipo capacitivo (proprio come questo quì), che utilizzo all'interno di una piccola serra domestica, poiché il valore rilevato rimane quasi costante per 2 o più giorni, nonostante il terreno risulti effettivamente meno umido col passare del tempo.
E' necessario che vi illustri i passaggi che ho seguito per l'installazione:

  • ho collegato in modo corretto l'igrometro ed ho eseguito la calibrazione in aria, in acqua, nel terreno asciutto e in quello umido, mappando così i vari valori (segue codice)
  • ho inizialmente collegato l'igrometro ai 5V, tuttavia con l'attivazione di un relé per il controllo di una pompa d'acqua e di un display LCD riscontravo cali di tensione e, quindi, valori non reali;
  • ho quindi collegato l'igrometro ai 3.3V, cosicché anche in presenza di un calo di tensione non avrei inciso sulle rilevazioni (effettivamente funziona).

Quando inserisco l'igrometro (asciutto) nel terreno e verso l'acqua, il valore riscontrato è veritiero: diciamo che se bagno il terreno uniformemente con una buona quantità d'acqua, il valore in percentuale risulta essere 60-70%; prendiamo il valore attuale, 72%.

Il problema sorge ora: se non verso acqua per un giorno, il valore risulta comunque 72%, tuttavia è chiaro che il terreno (perlomeno in superficie) risulta più secco.
Rimuovendo l'igrometro effettivamente noto che rimane un po' umido, tuttavia in aria la variazione provocata da questa umidità è trascurabile, circa l'1%.
Se asciugo l'igrometro ottengo 0% di umidità, se lo immergo in acqua è ovviamente 100%.

Allora mi chiedo:

  • è davvero possibile che il valore rimanga quasi costante dopo un giorno o più?
  • se non lo fosse, può l'umidità rimasta in contatto con l'igrometro provocare valori così sballati? (per esempio, se tocco il terreno un po' in profondità nel vaso noto che non è un valore pari al 72% ma una percentuale inferiore)
  • se si, come potrei risolvere?

Ecco il codice che ho utilizzato per mappare i valori:

  lettura_terreno = analogRead(APIN_SENSORE_TERRENO);
  percent_terreno = map(lettura_terreno, 550, 320, 0, 100);
  //Serial.println(lettura_terreno);
  percent_terreno = constrain(percent_terreno, 0, 100);

Concludo dicendo che ho ovviamente effettuato tutte le ricerche del caso ma non ho trovato una risposta utile :slightly_frowning_face:
Spero di aver spiegato bene la situazione, aspetto una vostra risposta,
grazie in anticipo a tutti! :smiley:

Non so come hai eseguito la taratura dell'igrometro, ma vorrei essere sicuro che il tuo 100%, quando immerso in acqua, sia veramente 100% perché se magari è un valore più alto (per esempio 250) però il valore non sale oltre il 100%, allora è sbagliata la taratura.
Quindi, in acqua, ti suggerirei di stare sui 99,8% o 99,9% in modo da essere sicuri che non hai "sforato".

Quindi ti consiglio di leggere il valore analogico del minimo e del massimo, senza nessuna istruzione di mezzo, e poi fare le dovute proporzioni: quanti step leggi (da 0 a 1024) quando è asciutto?. Quanti ne leggi quando è bagnato?

In realtà i valori che ho ottenuto a 3,3V sono 552-555 circa da asciutto e 323-325 da bagnato; ho arrotondato a 550 e 320.
Quando avevo provato con i 5V i valori erano circa 720 da asciutto e circa 320 da bagnato. Potrebbe dipendere solo da questo?
Grazie della risposta! :smiley:

>Panemiele: Credo che il wiki relativo al tuo sensore sia QUESTO ed i valori che leggi mi sembrano, più o meno, conformi a quanto loro riportano ... ::slight_smile:

Guglielmo

gpb01:
>Panemiele: Credo che il wiki relativo al tuo sensore sia QUESTO ed i valori che leggi mi sembrano, più o meno, conformi a quanto loro riportano ... ::slight_smile:

Guglielmo

Questa è esattamente la guida che ho seguito per collegarlo, anche se il sensore è uguale a quello linkato sopra, però anche così questo "problema" persiste... :confused:

Non penso che sia un "problema"...
Penso, piuttosto, che devi ragionare diversamente.
Quel sensore legge l'umidità di quel pezzo di terra con cui è a contatto e non è come leggere l'umidità dell'aria dove non c'è un "contatto" vero e proprio.
Nel tuo caso la variazione di umidità non è proporzionale e non è neppure "regolare", perché se in superficie è secco, in profondità è umido e più sotto, magari, addirittura bagnato.
Dato, però, che le radici delle piante non sono in superficie, quel sensore va anche bene. Piuttosto posizionalo in mezzo alle radici per sapere se c'è umidità sufficiente.
Poi penso che tu debba fare delle prove e non ti devi meravigliare se l'umidità rimane alta a lungo (magari era nuvoloso, magari era fresco, magari era umido o nebbioso) ricordandoti che già lo stesso cambio giorno/notte apporta umidità.
Ti dico questo perché mi piace avere piante d'appartamento e piante in terrazza, e noi pollici verdi sappiamo che meglio di inserire un dito nel terreno non ce n'è, ma non ci interessa la percentuale, ci interessa se c'è o meno umidità.
Quindi vedrai due o tre valori che ti interesseranno, non di più, e se continui a vedere 72% è perché, probabilmente, va bene così.

Buonasera, dopo una lunga assenza ho finalmente trovato la causa del "problema"! L'igrometro segnava un valore sempre alto perché il terreno, seppur apparentemente poco umido (questo vale anche al tatto), in realtà era carico d'acqua... in altre parole il terreno assorbe molta più acqua di quel che credevo :] Infatti, riempendo un nuovo vaso con questa terra, inumidendo più raramente rispetto agli altri vasetti dove hanno già germogliato i vari semi (un'altra buona notizia!) e inserendo l'igrometro, il valore dopo pochi minuti comincia a diminuire, per esempio da 70% a 68% in mezz'ora.
Vi ringrazio tanto per i consigli che mi avete dato che, seppur non adatti al mio caso, ho ritenuto preziosi! A presto!

Karma+ per la condivisione della soluzione!