Categories: Arduino

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.

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

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

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! Visita il suo blog personale alexoppo.com Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

View Comments

  • 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

    • Ciao Claudio, grazie per essere passato sul mio sito. Hai copiato e incollato il codice dell'articolo o lo hai modificato? Fammi sapere

      • per tarare la scala da 1 a 100 ho comunque immerso il sensore in acqua e al valore di 380 ho assegnato il valore 100, mentre con il sensore fuori dall'acqua il valore rilevato è 1023 ed ho assegnato il valore 100 ... quindi map!

        • Ho finalmente visto l'errore. Il codice per la funzione map aveva all'interno degli altri codici legati al sito web. Ora ho corretto, ti riporto comunque la funzione anche qui.

          sensorValue = map(sensorValue, 0, 1023, 0, 100);

          fammi sapere se ti funziona!

Recent Posts

Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?

Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…

11 mesi ago

Siamo quel che facciamo? – racconto breve

Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…

1 anno ago

Il limite è sempre la mente – Racconto breve

Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…

1 anno ago

L’ultimo giorno del carcere – Racconto breve

I muri sono muri, lo sono sempre, anche quando le porte sono aperte. Era la…

1 anno ago

Riflessioni sul carcere

Pochi di noi riflettono sull’esistenza nella nostra società del carcere. Il carcere è la concretizzazione…

1 anno ago

Come dovremmo dialogare secondo me

Spesso intraprendiamo delle conversazioni e delle chiacchierate piuttosto inconsapevolmente. Voglio dire che non siamo molto…

1 anno ago