Controllare l’umidità del terreno con Arduino e il sensore FC-28
Controllare l’umidità del terreno con Arduino è veramente semplice e oggi vedremo il terzo sensore da utilizzare per il nostro giardino.
Il sensore si chiama FC-28 e può differire leggermente nell’estetica. Il mio, ad esempio, ha delle scritte in cinese sopra e nessuna sigla.

Il sensore è composto da due parti, un PCB biforcuto ed un modulino su cui è montato un potenziometro (il parallelepipedo blu), ovvero una resistenza variabile.
I collegamenti da fare per controllare l’umidità del terreno con Arduino.
Dal sensore al modulino (in realtà un pin vale l’altro in questo caso).
– (simbolo meno) – GND del modulino
l’altro polo (non ci sono simboli) – l’altro pin libero del modulino
Dal modulino ad Arduino:
VCC – 5V
GND – GND
AO (Analog Output) – A0 (Analog zero)
Lo sketch
Si tratta di un programma molto semplice e che altro non fa che leggere da una porta analogica (la A0).
//analog read 9minuti.it#define pinSensor 0 int sensorValue;
void setup() {
Serial.begin(9600); }
void loop() {
sensorValue = analogRead(pinSensor);
Serial.print(“Valore: ”); Serial.println(sensorValue);
delay(1000);
}
3 La #define ci serve per avere indicare il pin 0 con un nome, in questo caso pinSensor
4 Dichiarazione variabile di tipo intero chiamata sensorValue
8 Inizializzazione della porta seriale con baud rate 9600
13 Salviamo il valore analogico letto sul pin pinSensor nella variabile sensorValue
15-16 Stampa dei valori
18 Delay di 1000ms (1 secondo) tra una lettura e l’altra

Una volta caricato lo sketch, per leggere i valori del nostro sensore bisogna aprire il Serial Monitor.
Se l’umidità è bassa (fuori dalla terra dovrebbe essere intorno a 1000) i valori dovrebbero essere alti, mentre mano a mano che aumenta le letture dovrebbero indicare numeri più bassi.
È consigliabile fare qualche prova girando la vite del potenziometro (il parallelepipedo blu) per una calibrazione ottimale del sensore.
Nel caso voleste ottenere un valore da 0 a 100 è disponibile la funzione map che ci consente di ridimensionare i nostri valori nel range di numeri che preferiamo.
Per far ciò è sufficiente incollare questo codice dopo la riga 13.
sensorValue = map(sensorValue, 0, 1023, 0, 100);
Spero che questo tutorial sia stato d’aiuto, rimango a disposizione per domande o chiarimenti.
Grazie,
Alessandro