(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); | ||
+ | } | ||
+ | } |
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 :
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #