tmp.ino 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. #include <OneWire.h>
  2. #include <DS18B20.h> //DS18B20_RT by rob tillaart
  3. #include <DS3231.h> //DS3231 by andrew wickert
  4. #include <Wire.h>
  5. #define ONE_WIRE_BUS 3
  6. //pin relay
  7. const int ExtracteurPin = 2;
  8. const int Rouge1Pin = 4;
  9. const int Rouge2Pin = 5;
  10. const int Bleu1Pin = 6;
  11. const int Bleu2Pin = 7;
  12. const int Bleu3Pin = 8;
  13. const int DehumPin = 9;
  14. //pin inter
  15. const int inter1 = 22;
  16. const int inter2 = 23;
  17. const int inter3 = 24;
  18. const int inter4 = 25;
  19. const int inter5 = 26;
  20. const int inter6 = 27;
  21. const int inter7 = 28;
  22. const int inter8 = 29;
  23. const int inter9 = 30;
  24. const int inter10 = 31;
  25. const int inter11 = 32;
  26. //Variable lumiere
  27. int newDay = 1; // Variable pour savoir si nouveau jour.
  28. int HAFlo; //heure allumage floraison en minute (9H45 ou 10H15)
  29. int HEFlo; //heure extinction floraison en minute (HaFlo +12H +/-15min)
  30. int HACro; //heure allumage croissance en minute (4H45 ou 5H15)
  31. int HECro; //heure extinction croissance en minute (HaFlo +18H +/-15min)
  32. OneWire oneWire(ONE_WIRE_BUS);
  33. DS18B20 sensor(&oneWire);
  34. DS3231 Clock;
  35. uint32_t start, stop;
  36. void setup() {
  37. Serial.begin(9600);
  38. /***********************************************************************
  39. init des pins
  40. * *********************************************************************
  41. */
  42. pinMode(ExtracteurPin, OUTPUT);
  43. pinMode(Rouge1Pin, OUTPUT);
  44. pinMode(Rouge2Pin, OUTPUT);
  45. pinMode(Bleu1Pin, OUTPUT);
  46. pinMode(Bleu2Pin, OUTPUT);
  47. pinMode(DehumPin, OUTPUT);
  48. pinMode(inter1, INPUT); //inter extinction lumiere
  49. pinMode(inter2, INPUT); //inter marche forcé ventilation
  50. pinMode(inter3, INPUT); //60%
  51. pinMode(inter4, INPUT); //70%
  52. pinMode(inter5, INPUT); //80%
  53. pinMode(inter6, INPUT); //croissance mere
  54. pinMode(inter7, INPUT); //croissance mere + serre
  55. pinMode(inter8, INPUT); //Arrosage1 on
  56. pinMode(inter9, INPUT); //Arrosage2 on
  57. pinMode(inter10, INPUT); //pompe vidange on
  58. pinMode(inter11, INPUT);
  59. /***********************************************************************
  60. init des capteurs
  61. * *********************************************************************
  62. */
  63. Wire.begin();
  64. sensor.begin();
  65. sensor.setResolution(12);
  66. delay(1000);
  67. }
  68. void loop() {
  69. /***********************************************************************
  70. Gestion des capteurs
  71. * *********************************************************************
  72. */
  73. //temperature
  74. Serial.println("salut1");
  75. sensor.requestTemperatures();
  76. Serial.println("salut2");
  77. while (!sensor.isConversionComplete());
  78. Serial.println("salut3");
  79. float temp = sensor.getTempC();
  80. Serial.println(temp);
  81. //heure
  82. bool h24, am;
  83. int heure = Clock.getHour(h24, am );
  84. int minu = Clock.getMinute();
  85. int HMin = heure * 60 + minu; // heure en minute
  86. Serial.println(HMin);
  87. //Hydrometrie
  88. /***********************************************************************
  89. Gestion de la lumiere
  90. * *********************************************************************
  91. */
  92. if (newDay==1) {
  93. newDay = 0;
  94. Serial.println("newDay");
  95. Serial.println(HMin);
  96. HAFlo = random (585, 615);
  97. Serial.println(HAFlo);
  98. HEFlo = HAFlo + 705 + random(30);
  99. Serial.println(HEFlo);
  100. HACro = random (285, 315);
  101. Serial.println(HACro);
  102. HECro = HACro + 1065 + random(30);
  103. Serial.println(HECro);
  104. Serial.println("fin newDay");
  105. }
  106. if (HMin == 0)
  107. newDay = 1;
  108. if (HMin >= HAFlo & HMin < HEFlo) {
  109. digitalWrite(Rouge1Pin, LOW);
  110. digitalWrite(Rouge2Pin, LOW);
  111. Serial.println("Alum Flo");
  112. }
  113. else {
  114. digitalWrite(Rouge1Pin, HIGH);
  115. digitalWrite(Rouge2Pin, HIGH);
  116. Serial.println("Ext Flo");
  117. }
  118. if (HMin >= HACro & HMin < HECro) {
  119. digitalWrite(Bleu1Pin, LOW);
  120. digitalWrite(Bleu2Pin, LOW);
  121. digitalWrite(Bleu3Pin, LOW);
  122. }
  123. else {
  124. digitalWrite(Bleu1Pin, HIGH);
  125. digitalWrite(Bleu2Pin, HIGH);
  126. digitalWrite(Bleu3Pin, HIGH);
  127. }
  128. /***********************************************************************
  129. Gestion de l'extraction
  130. * *********************************************************************
  131. */
  132. if (minu == 0 | minu == 1 | temp >= 27)
  133. digitalWrite(ExtracteurPin, LOW);
  134. else
  135. digitalWrite(ExtracteurPin, HIGH);
  136. delay(10000);
  137. }