
Di Leone Magliocchetti Lombi
Incuriosito dal costo contenuto che sfiora i 6 euro ho deciso di ordinare alcuni esemplari di questo sensore di umidità del terreno prodotto dalla DF Robot: il SEN0114. Senza aspettarmi grandi cose ho pensato che potesse tornare utile in alcune pratiche applicazioni per il nostro orto connesso.
Come per diversi altri sensori prodotti dalla DF Robot l’imballaggio è soddisfacente, nella loro classica scatoletta di cartone arancione fluorescente, e la semplicità di utilizzo è stupefacente. Oltre al sensore vero e proprio è incluso il cavetto connettore per i 3 poli (analogico-blu, positivo-rosso e negativo-nero). Direi il classico sensore “plug and play”.

Osservando le specifiche tecniche fornite dal produttore apprendiamo che il sensore produce come segnale output una corrente di intensità variabile da 0 a 4,2 volt. Questo rende lecito assumere che una scheda come Arduino (capace di tradurre l’intensità da 0 a 5v in valori che vanno da 0 a 1023) interpreterà direttamente il segnale derivante dal sensore in valori che vanno da 0 ad un massimo (teorico) di circa 900. Uno sguardo alle specifiche tecniche fornite dal produttore confermano questa assunzione, sostenendo infatti i seguenti valori in output:
0 ~300 : per il terreno asciutto
300~700 : per il terreno umido
700~950 : in acqua
Ci sono voluti pochissimi secondi per metterlo subito alla prova con una scheda Arduino. Come si vede nella foto del circuito assemblato servono solo 3 cavetti jumper di tipo maschio-maschio da collegare come indicato di seguito:
| Sensore SEN0114 | Pin di Arduino |
|---|---|
| Cavetto rosso (positivo +) | 5V |
| Cavetto nero (negativo -) | GND |
| Cavetto blu (data) | A0 |

Per testare immediatamente la funzionalità del sensore possiamo caricare nella scheda Arduino lo sketch di esempio AnalogReadSerial. Per questo test ho utilizzato una scheda Arduino UNO R3 ma ovviamente tutto resta identico per qualsiasi altra scheda della famiglia Arduino o compatibile.
void setup() {
// initializza la porta seriale a 9600 baud
Serial.begin(9600);
}
void loop() {
// leggi il valore input sul pin A0
int sensorValue = analogRead(A0);
// invia al monitor seriale il valore letto
Serial.println(sensorValue);
delay(100); //giusto una piccola pausa per rendere leggibile il valore a schermo
Ho pensato che possiamo subito verificare la funzionalità del sensore e del circuito testando i due casi estremi: in acqua e fuori dall’acqua. Mi sono organizzato con due semplici tazzine da caffè, una contenente l’acqua, l’altra vuota (in effetti quest’ultima non è necessaria;)). Una volta assicurati i 3 collegamenti come sopra indicato, ed aver caricato lo sketch seguente (che nell’Arduino IDE trovate in EXAMPLES, BASICS/AnalogReadSerial), siamo finalmente pronti per lanciare il test.
Mantenendo il cavo USB collegato possiamo leggere i valori inviati al Serial Monitor.
Come mostrato nelle foto seguenti il sensore alloggiato nella tazzina senz’acqua invia un segnale analogico di valore pari a “zero”.

Invece, quando immerso nella tazzina con l’acqua (attenzione a non far bagnare i cavetti) vediamo come il valore superi abbondantemente 700. Ad onor del vero devo precisare che per questo test ho utilizzato un vecchio sensore che ho usato in modo errato causandone l’ossidazione. Ricordo molto bene che Il sensore nuovo, o ben utilizzato, restituisce valori attorno a 900. 
Una piccola curiosità. Mi sono accorto che tenendo il sensore nella mano asciutta, in modo da toccare contemporaneamente I due poli del sensore, l’intensità del segnale è di circa 300. Questo è un segnale indiretto del fatto che, ovviamente, i nostri tessuti sono costituiti d’acqua e che siamo “permeabili” alla corrente elettrica.
Perfetto. Ora che abbiamo collegato e testato questo sensore non ci resta che utilizzarlo in modo pratico. Nelle sezioni successive in cui tratteremo questo sensore vedremo come:
- Fare in modo che sia accenda un led quando il terreno diviene asciutto
- Evitare la corrosione/ossidazione del sensore immerso nel terreno umido
- Faremo anche un test per verificare l’effettiva accuratezza di questo sensore, confrontandolo con un sensore circa 2 volte volte più costoso, ed un altro circa 10 volte più costoso.