Mere.ino 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #include <DS3231.h> //RTC DS3231 by andrew wickert
  2. #include <Wire.h>
  3. /*****************************************************************
  4. Déclaration des Capteurs
  5. *****************************************************************/
  6. //relay Lumiere
  7. const int Haut = 2;
  8. const int Bas = 3;
  9. //relay Ventilation
  10. const int Ventil = 4;
  11. //relay Arrosage
  12. const int Arro = 5;
  13. /*
  14. //Interrupteur
  15. const int interLumBas = 6; //inter Lumiere bas ON/OFF
  16. const int interLumOff = 7; //inter Lumiere OFF
  17. const int interVentAuto = 8; //inter Ventilation ON/Auto
  18. const int interVentOff = 9; //inter Ventilation OFF
  19. const int interArroAuto = 10;//inter Arro ON/Auto
  20. const int interArroOff = 11;//inter Arro OFF
  21. const int inter7 = 12;*/
  22. //RTC
  23. DS3231 Clock;
  24. /*****************************************************************
  25. Déclaration des Variables globals
  26. *****************************************************************/
  27. //Variable lumiere
  28. int newDay = 1; // Variable pour savoir si nouveau jour.
  29. int HA; //heure allumage en minute
  30. int HE; //heure extinction en minute (Ha +18H +/-15min)
  31. //Variable Extraction
  32. int tmpExtract, humExtract;
  33. int extract;
  34. //Variabe Arrosage
  35. const int delaySecArrosage = 20;
  36. int HeuArrosage;
  37. int jourArrosage = 1;
  38. /***********************************************************************
  39. Setup
  40. **********************************************************************/
  41. void setup() {
  42. Serial.begin(9600);
  43. /***********************************************************************
  44. init des pins
  45. * *********************************************************************/
  46. //PIN Lumiere
  47. pinMode(Haut, OUTPUT);
  48. digitalWrite(Haut, HIGH);
  49. pinMode(Bas, OUTPUT);
  50. digitalWrite(Bas, HIGH);
  51. //Pin ventilation
  52. pinMode(Ventil, OUTPUT);
  53. digitalWrite(Ventil, HIGH);
  54. //Pin Arrosage
  55. pinMode(Arro, OUTPUT);
  56. digitalWrite(Arro, HIGH);
  57. /*
  58. //interupteur
  59. pinMode(interLumBas, INPUT);
  60. pinMode(interLumOff, INPUT);
  61. pinMode(interVentAuto, INPUT);
  62. pinMode(interVentOff, INPUT);
  63. pinMode(interArroAuto, INPUT);
  64. pinMode(interArroOff, INPUT);
  65. pinMode(inter7, INPUT);*/
  66. /***********************************************************************
  67. init des capteurs
  68. * *********************************************************************/
  69. //RTC
  70. Wire.begin();
  71. }
  72. void loop() {
  73. /***********************************************************************
  74. Gestion des capteurs
  75. * **********************************************************************/
  76. //RTC
  77. bool h24, am;
  78. int heure = Clock.getHour(h24, am );
  79. int minu = Clock.getMinute();
  80. int HMin = heure * 60 + minu; // heure en minute
  81. Serial.println(HMin);
  82. /***********************************************************************
  83. Gestion de la lumiere
  84. * *********************************************************************
  85. */
  86. if (newDay == 1) {
  87. newDay = 0;
  88. HA = random (585, 615);
  89. HE = HA + 1065 + random(30);
  90. }
  91. if (HMin == 0) {
  92. jourArrosage =1;
  93. newDay = 1;
  94. }
  95. if (HMin >= HA & HMin < HE) { //On met en route si on est dans le temps et que l'inter2 est en allumé
  96. // if (interLumBas) {
  97. Serial.println("Double lumiere ON");
  98. digitalWrite(Bas, LOW);
  99. digitalWrite(Haut, LOW);
  100. }
  101. /*else {
  102. Serial.println("Lumiere haut ON");
  103. digitalWrite(Haut, LOW);
  104. }
  105. }*/
  106. else {
  107. Serial.println("Lumiere Eteint");
  108. digitalWrite(Bas, HIGH);
  109. digitalWrite(Haut, HIGH);
  110. }
  111. /***********************************************************************
  112. Gestion de l'extraction
  113. * *********************************************************************/
  114. if (minu >= 50) {
  115. Serial.println("Extracteur ON");
  116. digitalWrite(Ventil, LOW);
  117. }
  118. else {
  119. Serial.println("Extracteur OFF");
  120. digitalWrite(Ventil, HIGH);
  121. }
  122. /***********************************************************************
  123. Gestion de l'arrosage
  124. * *********************************************************************/
  125. if (HMin == 1018 & jourArrosage) {
  126. jourArrosage = 0;
  127. Serial.println("arro ON");
  128. digitalWrite(Arro, LOW);
  129. delay(40000);
  130. digitalWrite(Arro, HIGH);
  131. Serial.println("arro Off");
  132. }
  133. delay(10000);
  134. }