Fichier:Code Arduino : Différence entre versions

(Code Arduino Projet Plante)
 
(Page blanchie)
Ligne 1 : Ligne 1 :
#include <math.h>
 
#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);
 
}
 
}
 

Version du 2 janvier 2019 à 17:09

Les 2 pages suivantes utilisent ce fichier :