|
@@ -9,20 +9,26 @@
|
|
|
Déclaration des Capteurs
|
|
Déclaration des Capteurs
|
|
|
*****************************************************************/
|
|
*****************************************************************/
|
|
|
//relay Lumiere
|
|
//relay Lumiere
|
|
|
-const int RougeHaut = 2;
|
|
|
|
|
-const int BleuHaut = 3;
|
|
|
|
|
-const int RougeBas = 4;
|
|
|
|
|
-const int BleuBas = 5;
|
|
|
|
|
|
|
+const int FloBas = 2;
|
|
|
|
|
+const int FullBas = 3;
|
|
|
|
|
+const int CroBas = 4;
|
|
|
|
|
+
|
|
|
|
|
+const int FloHaut = 5;
|
|
|
|
|
+const int FullHaut = 6;
|
|
|
|
|
+const int CroHaut = 7;
|
|
|
|
|
+
|
|
|
|
|
+int PuissanceMax = 210;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
//relay Ventilation
|
|
//relay Ventilation
|
|
|
-const int DehumPin = 6;
|
|
|
|
|
-const int Extracteur = 7;
|
|
|
|
|
-const int VentilHaut = 8;
|
|
|
|
|
-const int VentilBas = 9;
|
|
|
|
|
|
|
+const int DehumPin = 44;
|
|
|
|
|
+const int Extracteur = 46;
|
|
|
|
|
+const int VentilHaut = 48;
|
|
|
|
|
+const int VentilBas = 50;
|
|
|
|
|
|
|
|
//relay Arrosage
|
|
//relay Arrosage
|
|
|
-const int Arro1 = 10;
|
|
|
|
|
-const int Arro2 = 11;
|
|
|
|
|
|
|
+const int Arro1 = 10; // Bas
|
|
|
|
|
+const int Arro2 = 11; //Haut
|
|
|
const int Evacuation = 12;
|
|
const int Evacuation = 12;
|
|
|
const int Melange = 13;
|
|
const int Melange = 13;
|
|
|
|
|
|
|
@@ -73,10 +79,12 @@ int tmpExtract = 0, humExtract;
|
|
|
int extract;
|
|
int extract;
|
|
|
|
|
|
|
|
//Variabe Arrosage
|
|
//Variabe Arrosage
|
|
|
-const int delaySecArro = 20;
|
|
|
|
|
-const int delaySecEvacuation = 30;
|
|
|
|
|
int SolBas, SolHaut;
|
|
int SolBas, SolHaut;
|
|
|
-int HeuArrosage;
|
|
|
|
|
|
|
+int HeuArrosageMatin = 540;// 9H * 60min
|
|
|
|
|
+int HeuArrosagesoir = 1260;// 21H *60min
|
|
|
|
|
+
|
|
|
|
|
+int recup;
|
|
|
|
|
+int timerecup;
|
|
|
/***********************************************************************
|
|
/***********************************************************************
|
|
|
Setup
|
|
Setup
|
|
|
**********************************************************************/
|
|
**********************************************************************/
|
|
@@ -87,16 +95,6 @@ void setup() {
|
|
|
/***********************************************************************
|
|
/***********************************************************************
|
|
|
init des pins
|
|
init des pins
|
|
|
* *********************************************************************/
|
|
* *********************************************************************/
|
|
|
- //PIN Lumiere
|
|
|
|
|
- pinMode(RougeHaut, OUTPUT);
|
|
|
|
|
- pinMode(RougeBas, OUTPUT);
|
|
|
|
|
- pinMode(BleuHaut, OUTPUT);
|
|
|
|
|
- pinMode(BleuBas, OUTPUT);
|
|
|
|
|
- digitalWrite(RougeHaut, HIGH);
|
|
|
|
|
- digitalWrite(RougeBas, HIGH);
|
|
|
|
|
- digitalWrite(BleuHaut, HIGH);
|
|
|
|
|
- digitalWrite(BleuBas, HIGH);
|
|
|
|
|
-
|
|
|
|
|
//Pin ventilation
|
|
//Pin ventilation
|
|
|
pinMode(DehumPin, OUTPUT);
|
|
pinMode(DehumPin, OUTPUT);
|
|
|
pinMode(Extracteur, OUTPUT);
|
|
pinMode(Extracteur, OUTPUT);
|
|
@@ -110,10 +108,11 @@ void setup() {
|
|
|
//Pin Arrosage
|
|
//Pin Arrosage
|
|
|
pinMode(Arro1, OUTPUT);
|
|
pinMode(Arro1, OUTPUT);
|
|
|
pinMode(Arro2, OUTPUT);
|
|
pinMode(Arro2, OUTPUT);
|
|
|
|
|
+ pinMode(Melange, OUTPUT);
|
|
|
pinMode(Evacuation, OUTPUT);
|
|
pinMode(Evacuation, OUTPUT);
|
|
|
- //pinMode(, OUTPUT);
|
|
|
|
|
digitalWrite(Arro1, HIGH);
|
|
digitalWrite(Arro1, HIGH);
|
|
|
digitalWrite(Arro2, HIGH);
|
|
digitalWrite(Arro2, HIGH);
|
|
|
|
|
+ digitalWrite(Melange, HIGH);
|
|
|
digitalWrite(Evacuation, HIGH);
|
|
digitalWrite(Evacuation, HIGH);
|
|
|
|
|
|
|
|
//interupteur
|
|
//interupteur
|
|
@@ -128,6 +127,9 @@ void setup() {
|
|
|
pinMode(inter9, INPUT);
|
|
pinMode(inter9, INPUT);
|
|
|
pinMode(inter10, INPUT);
|
|
pinMode(inter10, INPUT);
|
|
|
|
|
|
|
|
|
|
+ pinMode(NiveauEauRecup, INPUT);
|
|
|
|
|
+ pinMode(NiveauEauAqua, INPUT);
|
|
|
|
|
+
|
|
|
/***********************************************************************
|
|
/***********************************************************************
|
|
|
init des capteurs
|
|
init des capteurs
|
|
|
* *********************************************************************/
|
|
* *********************************************************************/
|
|
@@ -164,8 +166,8 @@ void loop() {
|
|
|
SolBas = !digitalRead(HumidSolBas);
|
|
SolBas = !digitalRead(HumidSolBas);
|
|
|
SolHaut = !digitalRead(HumidSolHaut);
|
|
SolHaut = !digitalRead(HumidSolHaut);
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
- Serial.println(digitalRead(interType));
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /*Serial.println(digitalRead(interType));
|
|
|
Serial.println(digitalRead(interLum));
|
|
Serial.println(digitalRead(interLum));
|
|
|
Serial.println(digitalRead(interONExt));
|
|
Serial.println(digitalRead(interONExt));
|
|
|
Serial.println(digitalRead(interONVentil));
|
|
Serial.println(digitalRead(interONVentil));
|
|
@@ -180,7 +182,9 @@ void loop() {
|
|
|
bool h24, am;
|
|
bool h24, am;
|
|
|
int heure = Clock.getHour(h24, am );
|
|
int heure = Clock.getHour(h24, am );
|
|
|
int minu = Clock.getMinute();
|
|
int minu = Clock.getMinute();
|
|
|
|
|
+ int sec = Clock.getSecond();
|
|
|
int HMin = heure * 60 + minu; // heure en minute
|
|
int HMin = heure * 60 + minu; // heure en minute
|
|
|
|
|
+ long Hsec = HMin * 60 + sec;
|
|
|
|
|
|
|
|
Serial.print("H:");
|
|
Serial.print("H:");
|
|
|
Serial.print(HMin / 60);
|
|
Serial.print(HMin / 60);
|
|
@@ -209,33 +213,42 @@ void loop() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (HMin == 0)
|
|
|
|
|
|
|
+ if (HMin == 0) {
|
|
|
newDay = 1;
|
|
newDay = 1;
|
|
|
|
|
+ recup = 0;
|
|
|
|
|
+ digitalWrite(Evacuation, HIGH);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((HMin >= HA & HMin < HE) & digitalRead(interLum)) {
|
|
if ((HMin >= HA & HMin < HE) & digitalRead(interLum)) {
|
|
|
Serial.print("Allumage ");
|
|
Serial.print("Allumage ");
|
|
|
- digitalWrite(BleuBas, LOW);
|
|
|
|
|
- digitalWrite(BleuHaut, LOW);
|
|
|
|
|
- if (digitalRead(interType)) { //SI flo
|
|
|
|
|
|
|
+ analogWrite(FullBas, PuissanceMax);
|
|
|
|
|
+ analogWrite(FullHaut, PuissanceMax);
|
|
|
|
|
+ if (1) { //SI flo
|
|
|
Serial.println("Flo");
|
|
Serial.println("Flo");
|
|
|
- digitalWrite(RougeHaut, LOW);
|
|
|
|
|
- digitalWrite(RougeBas, LOW);
|
|
|
|
|
|
|
+ analogWrite(FloHaut, PuissanceMax);
|
|
|
|
|
+ analogWrite(FloBas, PuissanceMax);
|
|
|
|
|
+ analogWrite(CroHaut, 0);
|
|
|
|
|
+ analogWrite(CroBas, 0);
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
Serial.println("Cro");
|
|
Serial.println("Cro");
|
|
|
- digitalWrite(RougeHaut, HIGH);
|
|
|
|
|
- digitalWrite(RougeBas, HIGH);
|
|
|
|
|
|
|
+ analogWrite(CroHaut, PuissanceMax);
|
|
|
|
|
+ analogWrite(CroBas, PuissanceMax);
|
|
|
|
|
+ analogWrite(FloBas, 0);
|
|
|
|
|
+ analogWrite(FloHaut, 0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
Serial.println("Extinxtion");
|
|
Serial.println("Extinxtion");
|
|
|
- digitalWrite(RougeHaut, HIGH);
|
|
|
|
|
- digitalWrite(RougeBas, HIGH);
|
|
|
|
|
- digitalWrite(BleuBas, HIGH);
|
|
|
|
|
- digitalWrite(BleuHaut, HIGH);
|
|
|
|
|
|
|
+ analogWrite(FullBas, 0);
|
|
|
|
|
+ analogWrite(FloBas, 0);
|
|
|
|
|
+ analogWrite(CroBas, 0);
|
|
|
|
|
+ analogWrite(FullHaut, 0);
|
|
|
|
|
+ analogWrite(FloHaut, 0);
|
|
|
|
|
+ analogWrite(CroHaut, 0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -295,54 +308,63 @@ void loop() {
|
|
|
/***********************************************************************
|
|
/***********************************************************************
|
|
|
Gestion de l'arrosage
|
|
Gestion de l'arrosage
|
|
|
* *********************************************************************/
|
|
* *********************************************************************/
|
|
|
- if (digitalRead(inter9)) {
|
|
|
|
|
|
|
+ if (digitalRead(inter9) ){//|| (HMin == HeuArrosageMatin || HMin == HeuArrosagesoir)) { //On arrose 1min en bas
|
|
|
|
|
+ Serial.println("Arrosage1");
|
|
|
digitalWrite(Arro1, LOW);
|
|
digitalWrite(Arro1, LOW);
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
digitalWrite(Arro1, HIGH);
|
|
digitalWrite(Arro1, HIGH);
|
|
|
}
|
|
}
|
|
|
- if (digitalRead(inter10)) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (digitalRead(inter10) ){//|| (HMin == HeuArrosageMatin + 1 || HMin == HeuArrosagesoir + 1)) { // puis 1 min en haut
|
|
|
|
|
+ Serial.println("Arrosage2");
|
|
|
digitalWrite(Arro2, LOW);
|
|
digitalWrite(Arro2, LOW);
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
digitalWrite(Arro2, HIGH);
|
|
digitalWrite(Arro2, HIGH);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //Melange // On mélange 20 sec toute les heures
|
|
|
|
|
+ if (minu == 30 & sec <= 20) {
|
|
|
|
|
+ Serial.println("Melange");
|
|
|
|
|
+ digitalWrite(Melange, LOW);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ digitalWrite(Melange, HIGH);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- /* if ((SolBas | SolHaut) & digitalRead(interOFFAro) == 0 & digitalRead(interONAro) == 0) {
|
|
|
|
|
- Serial.println("Arrosage");
|
|
|
|
|
- digitalWrite(Arro2, LOW);
|
|
|
|
|
- delay(delaySecArro * 1000 );
|
|
|
|
|
- digitalWrite(Arro1, HIGH);
|
|
|
|
|
- digitalWrite(Arro2, HIGH);
|
|
|
|
|
- HeuArrosage = HMin;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (HeuArrosage + 10 == HMin & digitalRead(interOFFAro) == 0 & digitalRead(interONVid) == 0) {
|
|
|
|
|
- Serial.println("Evacuation");
|
|
|
|
|
- digitalWrite(Evacuation, LOW);
|
|
|
|
|
- //delay(delaySecEvacuation * 1000 );
|
|
|
|
|
- digitalWrite(Evacuation, HIGH);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /***********************************************************************
|
|
|
|
|
+ Gestion de l'extraction
|
|
|
|
|
+ * *********************************************************************/
|
|
|
|
|
+ if (digitalRead(NiveauEauRecup) & recup == 0) {
|
|
|
|
|
+ Serial.println("HAUT");
|
|
|
|
|
+ recup = 1;
|
|
|
|
|
+ timerecup = Hsec;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (digitalRead(interONVid)) {
|
|
|
|
|
- Serial.println("Evacuation manuel");
|
|
|
|
|
- digitalWrite(Evacuation, LOW);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- digitalWrite(Evacuation, HIGH);
|
|
|
|
|
|
|
+ if (digitalRead(NiveauEauRecup) == 0 & recup == 1) {
|
|
|
|
|
+ recup = 0;
|
|
|
|
|
+ timerecup = Hsec;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ if (recup & Hsec >= timerecup + 40) {
|
|
|
|
|
+ Serial.println("Evacuation");
|
|
|
|
|
+ digitalWrite(Evacuation, LOW);
|
|
|
|
|
+ }
|
|
|
|
|
+ if ((recup == 0 & Hsec >= timerecup + 5 ) & digitalRead(interONVid) == 0) {
|
|
|
|
|
+ Serial.println("Evacuation off");
|
|
|
|
|
+ digitalWrite(Evacuation, HIGH);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (digitalRead(interONAro)) {
|
|
|
|
|
- Serial.println("Arrosage manuel");
|
|
|
|
|
- digitalWrite(Arro1, LOW);
|
|
|
|
|
- digitalWrite(Arro2, LOW);
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- digitalWrite(Arro1, HIGH);
|
|
|
|
|
- digitalWrite(Arro2, HIGH);
|
|
|
|
|
- }*/
|
|
|
|
|
|
|
+ if (digitalRead(interONVid)) {
|
|
|
|
|
+ Serial.println("Evacuation manu");
|
|
|
|
|
+ digitalWrite(Evacuation, LOW);
|
|
|
|
|
+ timerecup = Hsec;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ /***********************************************************************
|
|
|
|
|
+ FIN
|
|
|
|
|
+ * *********************************************************************/
|
|
|
Serial.println("");
|
|
Serial.println("");
|
|
|
Serial.println("");
|
|
Serial.println("");
|
|
|
|
|
|