Controllare l’umidità del terreno con Arduino e il sensore FC-28

Arduino e il sensore FC-28. In mezzo il modulo con potenziometro (Controllare l'umidità del terreno con Arduino)
Arduino e il sensore FC-28. In mezzo il modulo con potenziometro
5
(1)

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.

(Controllare l'umidità del terreno con Arduino) Arduino e il sensore FC-28. In mezzo il modulo con potenziometro

Arduino e il sensore FC-28. In mezzo il modulo con potenziometro

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

Il sensore FC-28 interrato (Controllare l'umidità del terreno con Arduino)

Il sensore FC-28 interrato

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

Votalo e aiutami a migliorare!

Rating medio 5 / 5. Numero di voti 1

Nessun voto per il momento, vuoi essere il primo?

Clicca sul tuo social preferito.

Cosa ho sbagliato?

Hai qualche consiglio per migliorare la qualità?

Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Potrebbero interessarti anche...

5 risposte

  1. CLAUDIO ha detto:

    Ciao Alessandro,
    ho inserito il codice dopo la riga 13, ma non riesco a correggere questo errore

    expected primary-expression before ‘<' token

    grazie e complimenti per il tuo lavoro
    claudio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.