(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 :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #