Browse Source

modif soft box

rcluze 5 years ago
parent
commit
3a1c770b91
4 changed files with 186 additions and 126 deletions
  1. 92 70
      Soft/BOX/BOX.ino
  2. BIN
      Soft/BOX/Capteur.xlsx
  3. 76 30
      Soft/BOX/test/arro/arro.ino
  4. 18 26
      Soft/Mere/Mere.ino

+ 92 - 70
Soft/BOX/BOX.ino

@@ -9,20 +9,26 @@
    Déclaration des Capteurs
  *****************************************************************/
 //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
-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
-const int Arro1            = 10;
-const int Arro2            = 11;
+const int Arro1            = 10; // Bas
+const int Arro2            = 11; //Haut
 const int Evacuation      = 12;
 const int Melange         = 13;
 
@@ -73,10 +79,12 @@ int tmpExtract = 0, humExtract;
 int extract;
 
 //Variabe Arrosage
-const int delaySecArro = 20;
-const int delaySecEvacuation = 30;
 int SolBas, SolHaut;
-int HeuArrosage;
+int HeuArrosageMatin = 540;// 9H * 60min
+int HeuArrosagesoir = 1260;// 21H *60min
+
+int recup;
+int timerecup;
 /***********************************************************************
      Setup
  **********************************************************************/
@@ -87,16 +95,6 @@ void setup() {
   /***********************************************************************
     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
   pinMode(DehumPin, OUTPUT);
   pinMode(Extracteur, OUTPUT);
@@ -110,10 +108,11 @@ void setup() {
   //Pin Arrosage
   pinMode(Arro1, OUTPUT);
   pinMode(Arro2, OUTPUT);
+  pinMode(Melange, OUTPUT);
   pinMode(Evacuation, OUTPUT);
-  //pinMode(, OUTPUT);
   digitalWrite(Arro1, HIGH);
   digitalWrite(Arro2, HIGH);
+  digitalWrite(Melange, HIGH);
   digitalWrite(Evacuation, HIGH);
 
   //interupteur
@@ -128,6 +127,9 @@ void setup() {
   pinMode(inter9, INPUT);
   pinMode(inter10, INPUT);
 
+  pinMode(NiveauEauRecup, INPUT);
+  pinMode(NiveauEauAqua, INPUT);
+
   /***********************************************************************
     init des capteurs
   * *********************************************************************/
@@ -164,8 +166,8 @@ void loop() {
   SolBas = !digitalRead(HumidSolBas);
   SolHaut = !digitalRead(HumidSolHaut);
 
-  /*
-    Serial.println(digitalRead(interType));
+  
+    /*Serial.println(digitalRead(interType));
     Serial.println(digitalRead(interLum));
     Serial.println(digitalRead(interONExt));
     Serial.println(digitalRead(interONVentil));
@@ -180,7 +182,9 @@ void loop() {
   bool h24, am;
   int heure = Clock.getHour(h24, am );
   int minu = Clock.getMinute();
+  int sec = Clock.getSecond();
   int HMin = heure * 60 + minu; // heure en minute
+  long Hsec = HMin * 60 + sec;
 
   Serial.print("H:");
   Serial.print(HMin / 60);
@@ -209,33 +213,42 @@ void loop() {
     }
   }
 
-  if (HMin == 0)
+  if (HMin == 0) {
     newDay = 1;
+    recup = 0;
+    digitalWrite(Evacuation, HIGH);
+  }
 
 
 
   if ((HMin >= HA & HMin < HE)  & digitalRead(interLum)) {
     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");
-      digitalWrite(RougeHaut, LOW);
-      digitalWrite(RougeBas, LOW);
+      analogWrite(FloHaut, PuissanceMax);
+      analogWrite(FloBas, PuissanceMax);
+      analogWrite(CroHaut, 0);
+      analogWrite(CroBas, 0);
     }
     else {
       Serial.println("Cro");
-      digitalWrite(RougeHaut, HIGH);
-      digitalWrite(RougeBas, HIGH);
+      analogWrite(CroHaut, PuissanceMax);
+      analogWrite(CroBas, PuissanceMax);
+      analogWrite(FloBas, 0);
+      analogWrite(FloHaut, 0);
     }
 
   }
   else {
     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
   * *********************************************************************/
-  if (digitalRead(inter9)) {
+  if (digitalRead(inter9) ){//|| (HMin == HeuArrosageMatin || HMin == HeuArrosagesoir)) { //On arrose 1min en bas
+    Serial.println("Arrosage1");
     digitalWrite(Arro1, LOW);
   }
   else {
     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);
   }
   else {
     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("");
 

BIN
Soft/BOX/Capteur.xlsx


+ 76 - 30
Soft/BOX/test/arro/arro.ino

@@ -9,10 +9,16 @@
    Déclaration des Capteurs
  *****************************************************************/
 //relay Lumiere
-const int RougeHaut      = 2;
-const int BleuHaut       = 3;
-const int RougeBas       = 4;
-const int BleuBas        = 5;
+//const int RougeHaut      = 2;
+//const int BleuHaut       = 3;
+
+const int FloBas     = 2;
+const int FullBas    = 3;
+const int CroBas     = 4;
+
+const int FloHaut     = 5;
+const int FullHaut    = 6;
+const int CroHaut     = 7;
 
 //relay Ventilation
 const int DehumPin        = 6;
@@ -88,14 +94,21 @@ void setup() {
     init des pins
   * *********************************************************************/
   //PIN Lumiere
-  pinMode(RougeHaut, OUTPUT);
-  pinMode(RougeBas, OUTPUT);
+  /*pinMode(RougeHaut, OUTPUT);
   pinMode(BleuHaut, OUTPUT);
-  pinMode(BleuBas, OUTPUT);
-  digitalWrite(RougeHaut, HIGH);
-  digitalWrite(RougeBas, HIGH);
-  digitalWrite(BleuHaut, HIGH);
-  digitalWrite(BleuBas, HIGH);
+
+  //Fullbas
+//FloBas
+//CroBas
+/*
+  pinMode(FullBas, OUTPUT);
+  pinMode(FloBas, OUTPUT);
+  pinMode(CroBas, OUTPUT);*/
+  
+  //digitalWrite(RougeHaut, HIGH);
+  //digitalWrite(RougeBas, HIGH);
+  //digitalWrite(BleuHaut, HIGH);
+  //digitalWrite(BleuBas, HIGH);
 
   //Pin ventilation
   pinMode(DehumPin, OUTPUT);
@@ -117,6 +130,8 @@ void setup() {
   digitalWrite(Evacuation, HIGH);
   digitalWrite(Melange, HIGH);
 
+  pinMode(NiveauEauRecup, INPUT);
+
 
 
 }
@@ -127,28 +142,59 @@ void setup() {
   const int Melange         = 13;
 */
 int incomingByte = 0; // for incoming serial data
+// a marche 1     97
+// z arret 1      122
+// q marche 2     113
+// s arret 2      115
 
+int luminosite = 0;
 void loop() {
+//Fullbas
+//FloBas
+//CroBas
+  //digitalWrite(FullBas, LOW);
+  //digitalWrite(FloBas, LOW);
+  //digitalWrite(CroBas, LOW);
+  //delay(5000);
+
+
+  int full = 0;
+  int flo = full;
+  int cro = 0;
+  
+  analogWrite(FullBas, full);
+  analogWrite(FloBas, flo);
+  analogWrite(CroBas, cro);
+  
+  analogWrite(FullHaut, full);
+  analogWrite(FloHaut, flo);
+  analogWrite(CroHaut, cro);
+  
+  /*if (Serial.available() > 0) {
+    incomingByte = Serial.read();
 
 
-  if (Serial.available() > 0) {
-    // read the incoming byte:
-    incomingByte = Serial.read();
-    if (incomingByte == 'a') {
-      Serial.println("ON1");
-      digitalWrite(Arro1, LOW);
-    }
-    if (incomingByte == 'z') {
-      Serial.println("ON2");
-      digitalWrite(Arro2, LOW);
-    }
-    if (incomingByte == 'q') {
-      Serial.println("OFF1");
-      digitalWrite(Arro1, HIGH);
+    switch (incomingByte) {
+      case ('a'):
+        Serial.println("MArche1");
+        digitalWrite(Arro1, LOW);
+        break;
+      case ('z'):
+        Serial.println("Arret1");
+        digitalWrite(Arro1, HIGH);
+        break;
+      case ('q'):
+        Serial.println("MArche2");
+        digitalWrite(Arro2, LOW);
+        break;
+      case ('s'):
+        Serial.println("Arret2");
+        digitalWrite(Arro2, HIGH);
+        break;
+      default:
+        break;
     }
-    if (incomingByte == 's') {
-      Serial.println("OFF2");
-      digitalWrite(Arro2, HIGH);
-    }
-  }
+  }*/
+
+  Serial.println(digitalRead(NiveauEauRecup));
 }

+ 18 - 26
Soft/Mere/Mere.ino

@@ -3,7 +3,7 @@
 #include <DS3231.h>   //RTC DS3231 by andrew wickert
 #include <Wire.h>
 
-#define HAro 1050 //Heure d'arrosage en minute (=17H)
+
 
 
 /*****************************************************************
@@ -47,13 +47,11 @@ int tmpExtract, humExtract;
 int extract;
 
 //Variabe Arrosage
-unsigned long HfinAro;
-unsigned long TAro = 10000; //Temps d'arrosage en milliseconds (=10Sec)
-int Nonarro = 1;
+int HAro = 19 * 60;//Heure d'arrosage en minute
 
 /***********************************************************************
-     Setup
- **********************************************************************/
+Setup
+**********************************************************************/
 
 void setup() {
   Serial.begin(9600);
@@ -92,17 +90,19 @@ void loop() {
   bool h24, am;
   int heure = Clock.getHour(h24, am );
   int minu = Clock.getMinute();
+  int sec = Clock.getSecond();
 
   int HMin = heure * 60 + minu; // heure en minute
 
-  Serial.println(HMin);
+  Serial.print(heure);
+  Serial.print(":");
+  Serial.println(minu);
 
   /***********************************************************************
     Gestion de la lumiere
    * *********************************************************************
   */
   if (newDay == 1) {
-    Nonarro = 1;
     newDay = 0;
     HA = random (232, 247);
     HE = HA + 1065 + random(15);
@@ -110,21 +110,15 @@ void loop() {
 
   if (HMin == 0) {
     newDay = 1;
-    Nonarro = 1;
   }
 
   if (HMin >= HA & HMin < HE) { //On met en route si on est dans le temps et que l'inter2 est en allumé
-    // if (interLumBas) {
-    //Serial.println("Double lumiere ON");
+    Serial.println("Double lumiere ON");
     digitalWrite(Double, LOW);
   }
-  /*else {
-    Serial.println("Lumiere haut ON");
-    digitalWrite(Haut, LOW);
-    }
-    }*/
+
   else {
-    //Serial.println("Lumiere Eteint");
+    Serial.println("Lumiere Eteint");
     digitalWrite(Double, HIGH);
   }
 
@@ -133,11 +127,11 @@ void loop() {
     Gestion de l'extraction
   * *********************************************************************/
   if (minu >= 50) {
-    //Serial.println("Extracteur ON");
+    Serial.println("Extracteur ON");
     digitalWrite(Ventil, LOW);
   }
   else {
-    //Serial.println("Extracteur OFF");
+    Serial.println("Extracteur OFF");
     digitalWrite(Ventil, HIGH);
   }
 
@@ -145,17 +139,15 @@ void loop() {
     Gestion de l'arrosage
   * *********************************************************************/
 
-  if (HMin == HAro & Nonarro) {
+  if (HMin == HAro & sec < 30) {
     Serial.println("arro ON");
     digitalWrite(Arro, LOW);
-    HfinAro = millis();
-    Nonarro = 0;
-  }
-
-  if (millis() - HfinAro >= TAro) {
+  } else {
     Serial.println("arro OFF");
     digitalWrite(Arro, HIGH);
   }
 
-  delay(2000);
+  Serial.println("");
+  Serial.println("");
+  delay(1000);
 }