IrrigOrto

Di giorno segue il sole caricando la batteria e di notte irriga l'orto in base ad uno o più sensori d'umidità impostati per il tipo di pianta.
Con Arduinolink esterno(la piattaforma di prototipazione hardware open-source tutta italiana) è stato relativamente semplice nonostante la totale ignoranza nel campo dell'elettronica, ma sul web si trovano perfino corsi di saldatura, quindi con un po' di buona volontà e qualche precauzione ci si riesce. Partendo da vari esempi trovati in giro per la rete e in particolare:

www.mauroalfieri.it/elettronica/tutorial-irrigare-con-arduino.html link esterno
www.mauroalfieri.it/elettronica/inseguitore-solare-con-arduino.html link esterno

ottimi per i principianti quali lo scrivente, è venuto fuori IrrigOrto: un esperimento per l'irrigazione automatica off-grid. Una 'pecionata' funzionante.

Lista delle componenti elettroniche:
-1 Arduino
-1 Kit fotovoltaico 12v 5A (Pannello, regolatore di carica e batteria)
-1 Sensore umidità terreno
-1 Elettrovalvola 12v
-1 Relè
-4 Transistor per il ponte H
-2 Led rossi e 1 verde
-Varie Resistenze
-3 Fotoresistori

Componenti riciclate:
-1 vecchia antenna rotante con motore DC 12v
-1 mensola ikea

Materiale Elettrico:
-2 scatole per esterno
-Qualche metro di cavo elettrico.

Programma caricato su Arduino:

const int UmiditAnalogInPin = A0;
const int LuninoInPin = A3;
const int VolutaAnalogInPin = A2;
const int ReleOutPin = 2;
const int MotoreOutDxPin = 7;
const int MotoreOutSxPin = 8;
const int RuotaInPin = A4;
const int UmiditDigitalOutPin = 4;

const int Tollera = 30;
const int stepGradi = 5;

int Gradi = 90;
int UmiditImpostata = 59;
int luminoValue = 0;
int umiditValue = 0;

void setup() {                
  pinMode(ReleOutPin, OUTPUT);  
  pinMode(MotoreOutDxPin, OUTPUT);  
  pinMode(MotoreOutSxPin, OUTPUT); 
  pinMode(UmiditDigitalOutPin, OUTPUT); 
  pinMode(13, OUTPUT); 
  digitalWrite(13, LOW);  
  Serial.begin(9600);   
}

void loop() {
  //int umiditValue = map(analogRead(UmiditAnalogInPin), 0, 1023, 100, 0);
  luminoValue = analogRead(LuninoInPin);
  UmiditImpostata = map(analogRead(VolutaAnalogInPin),0,1023,0,100);

  Serial.print("umidita' terreno:\t ");      
  Serial.println(umiditValue);
  Serial.print("luminosita' ambiente:\t "); 
  Serial.println(luminoValue);
  Serial.print("umidita' impostata:\t ");      
  Serial.println(UmiditImpostata);
  Serial.println("-----------------------------");

  if (luminoValue <460){ // di notte annaffio
    if (digitalRead(UmiditDigitalOutPin)==LOW) digitalWrite(UmiditDigitalOutPin, HIGH);
    umiditValue = map(analogRead(UmiditAnalogInPin), 0, 1023, 100, 0);

    if (umiditValue=UmiditImpostata&&digitalRead(ReleOutPin)==HIGH)  {
      digitalWrite(ReleOutPin, LOW);
      delay(1000);
    }
  }else if (digitalRead(ReleOutPin)==HIGH)  {
    digitalWrite(ReleOutPin, LOW);
    delay(1000);
  }else{ // di giorno cerco il sole
     if (digitalRead(UmiditDigitalOutPin)==HIGH) digitalWrite(UmiditDigitalOutPin, LOW);

    int ruotaValue = analogRead(RuotaInPin);
 
    Serial.println(ruotaValue);

    if (ruotaValue<(512-Tollera)&&Gradi<180){
        Serial.print("ruoto a DX:\t ");      
        Serial.println(Gradi);
        digitalWrite(MotoreOutDxPin,HIGH);
        delay(1000);
        digitalWrite(MotoreOutDxPin,LOW);
        Gradi+=stepGradi ;
    }
    if (ruotaValue>(512+Tollera)&&Gradi>0){
        Serial.print("ruoto a SX:\t ");      
        Serial.println(Gradi);
        digitalWrite(MotoreOutSxPin,HIGH);
        delay(1000);
        digitalWrite(MotoreOutSxPin,LOW);
        Gradi-=stepGradi;
    } 
    Serial.println(Gradi);     
  }

  delay(1000); 
 
}

Montato su breadboard:


Montato su basetta millefori:


Il cacciavite rosso che si vede nella foto qui sopra serve a regolare l'umidità necessaria alla pianta, se il sensore sul terreno rileva un valore minore di quello impostato, si manda acqua finché non lo raggiunge; in tal modo se piove o se la pianta รจ sufficientemente dissetata il sistema non innaffia. In oltre grazie al kit fotovoltaico potrebbe risultare molto utile nei casi in cui non si disponga di allaccio alla rete elettrica. Risparmiando acqua e producendo energia pulita forse le future generazioni ci odieranno un po' meno.

Ortaggi, Riccardo

...Irrigorto