|
|
| 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);
| |
| − | }
| |
| − | }
| |