Il sensore di umidità è fatto da una coppia di elettrodi che vengono immessi nel terreno. Se c’è umidità il terreno conduce bene la corrente e quindi c’è bassa resistenza tra i due elettrodi. Il sensore è collegato all’Arduino attraverso il pin 5V di alimentazione, il pin GND di massa ed il pin A0 che legge il valore analogico di corrente del sensore.
Questo esperimento consiste nell’usare la scheda Arduino, un sensore di umidità ed un led per segnalare la scarsa umidità del terreno. Sullo schermo della porta seriale potete leggere i valori del sensore.
Quando il terreno è più arido la resistenza al passaggio di corrente è più alta e viceversa. Per far funzionare il piccolo impianto, dobbiamo utilizzare il monitor seriale che ci consente di leggere i valori di tensione misurati dal sensore. Il pin A0 sarà quello a cui collegare il sensore, un pin digitale (9) può essere utilizzato per accendere un led come allarme (potremmo pensare in un prossimo esercizio di collegarci un relè per attivare l’innaffiatore).
Nel ciclo continuo bisogna leggere il valore di tensione A0 (più è basso A0 più è arido il terreno) con il comando AnalogRead() poi dobbiamo visualizzare tale valore sul monitor seriale con il comando Serial.printl() e infine controllare questo valore: se scende sotto un certo valore (per es. 300) verrà acceso il led, altrimenti viene spento. Possiamo fare il controllo ogni 3 secondi usando un comando delay(ms).
Il codice è quindi il seguente:
- void setup() {
- Serial.begin(9600); // avviamo la comunicazione seriale ed impostiamo il pin9 (quello del LED) come output
- pinMode(9, OUTPUT);
- }
- void loop() {
- int sensore = analogRead(A0); // creiamo la variabile intera “sensore” ed assegniamole il valore analogico letto sul pin A0
- Serial.println(sensore); // invia il valore sulla seriale e lo si legge sullo schermo del monitor seriale
- if (sensore <= 300) // adesso confrontiamolo il valore letto con il valore 300 e se è inferiore
- digitalWrite(9,HIGH); // Accendi led
- else
- digitalWrite(9,LOW); // Se il valore letto su A0 è superiore a 300 spegni led
- delay(3000); // 3 secondi di attesa
- }
Generalmente, valori inferiori a 300 significano terreno asciutto, valori superiori a 700 significano terreno completamente bagnato (fino ad addirittura il caso di sensore in acqua).
- # 0 ~300 dry soil
- # 300~700 humid soil
- # 700~950 in water
- Power Supply Voltage: 3.3V or 5V
- Working Current: ≤ 20mA
- Output Voltage: 0-2.3V (When the sensor is totally immersed in water, the voltage will be 2.3V) 5V power supply,the higher humidity, the higher the output voltage
- Packaging : Electrostatic bag sealing
- Sensor type: Analog output
- Interface definition: Pin1- signal, pin2- GND, pin3 – VCC
Questo è il video del sensore di umidità del terreno prodotto da Keystudio.com