Fichier:Code Arduino

  1. include <math.h>
  2. define LIGHT_SENSOR A0

int sensorPin = A5; // Déclaration de la broche d'entrée de thermomètre double Thermistor(int RawADC) //Calcul température du capteur correspondant {

   double Temp;
   Temp = log(10000.0 * ((1024.0 / RawADC - 1)));
   Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
   Temp = Temp - 227.15;            // conversion de degrés Kelvin en °C
   return Temp;

}

int PinNumeriqueHumidite=2; // Broche Numérique mesurant l'humidité int humidite;

void setup() {

 Serial.begin (9600);                //Connexion série à 9600 baud
 pinMode(10, OUTPUT);         //Pin 10 en entrée numérique de la pompe
 pinMode(PinNumeriqueHumidite, INPUT);       //Pin 3 en entrée numérique du capteur humidité

}

void loop() {

 int readVal = analogRead(sensorPin);                  //Lecture valeur analogique de la température
 double temperature =  Thermistor(readVal);
 int luminosite = analogRead(LIGHT_SENSOR);  //Lecture valeur numérique de la luminosité
 Serial.println("Température = ");                            //Affichage valeur température
 Serial.print(temperature);
 Serial.println(" degrés.");
 delay(500);
 
 humidite = digitalRead(PinNumeriqueHumidite);  //Affichage valeur humidité 
 Serial.println("Humidité = ");
 Serial.println(humidite);
 delay(500);  
 Serial.println("Luminosité = ");                               //Affichage valeur luminosité
 Serial.println(luminosite);
 delay(500);
 if (humidite==1)                                                          //Condition pour sol sec
    {
      if ((temperature>2) && (temperature<=10))          //Condition arrosage pour 2°C<T<10°C 
         {
           if (luminosite>100)                                           //Condition pour luminosité>100
              {
               digitalWrite(10, HIGH);
               delay(500);
               digitalWrite(10, LOW);
              }
           else 
           {
             digitalWrite(10, LOW);
           }
         }
      
      
      if ((temperature>10) && (temperature<25))         //Condition arrosage pour 10°C<T<25°C 
         {
           digitalWrite(10, HIGH);   // Pompe allumée
           delay (10000); 
           digitalWrite(10, LOW);      
         }
      if (temperature>=25)                                            //Condition arrosage pour T>25°C
         {
           digitalWrite(10, HIGH);
           delay(15000);
           digitalWrite(10, LOW);
         }
      else 
      {
           digitalWrite(10, LOW);    
      }
    }

else {

 digitalWrite(10, LOW);

} }

Les 2 pages suivantes utilisent ce fichier :