Mere.ino 3.9 KB

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