Mere.ino 4.0 KB

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