Arduino.ino 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #include <Wire.h>//https://www.arduino.cc/en/reference/wire
  2. #include <DS3231.h>//https://github.com/NorthernWidget/DS3231
  3. #include <DS18B20.h>
  4. #include <DS3231.h>
  5. #define ONE_WIRE_BUS 3
  6. /*
  7. int Inter1 = ; // inter croissance mere
  8. int Inter2 = ; // inter croissance reste
  9. int Inter3 = ; // inter flo
  10. int InterruptHydro = ; //Entrer Interrupt Hydro
  11. int Inter
  12. */
  13. int Led1 = ; //Relai croissance mere
  14. int Led2 = ; //Relai croissance reste
  15. int Led3 = ; //Relai flo
  16. int Extract = ;//relai Extract
  17. int Dehum = ;
  18. int Pompe = ; //Relai pompe
  19. bool ExtractOn = True;
  20. int tmpArrosage = ; //temps d'arrosage
  21. DS3231 Clock;
  22. enum Prochain {
  23. AlumFlo,
  24. AlumCroi,
  25. ExtFlo,
  26. ExtCroi
  27. };
  28. enum Prochain pro = AlumFlo;
  29. void fc_InterHydro(){
  30. //Voir si rearmer l'interuption
  31. SI alarm1 :
  32. LED();
  33. Si alarm2 :
  34. extracteur();
  35. }
  36. void fc_InterHydro(){
  37. writepin(Pompe,ON);
  38. sleep(tmpArrosage);
  39. writepin(Pompe,OFF);
  40. }
  41. void extracteur(){
  42. //remiseAlarm2 +15min
  43. if(ExtractOn)
  44. writepin(Extract,OFF);
  45. else
  46. writepin(Extract,ON);
  47. ExtractOn= ~ExtractOn;
  48. }
  49. void LED(){
  50. Switch (pro){
  51. case(AlumCroi):
  52. pro = AlumFlo;
  53. //rearmer l'alarm +2H
  54. if(readpin(inter1))
  55. writepin(Led1,ON);
  56. if(readpin(inter1))
  57. writepin(Led2,ON);
  58. break;
  59. case(AlumFlo):
  60. pro = ExtFlo;
  61. //rearmer l'alarm +12H
  62. if (readpin(inter3))
  63. writepin(Led3,ON);
  64. break;
  65. case(ExtFlo):
  66. pro = ExtCroi;
  67. //rearmer l'alarm +2H
  68. writepin(Led3,OFF);
  69. break;
  70. case(ExtCroi):
  71. pro = AlumCroi;
  72. //rearmer l'alarm +8H
  73. writepin(Led1,OFF);
  74. writepin(Led2,OFF);
  75. break;
  76. }
  77. }
  78. void setup() {
  79. DS3231();
  80. //init I/O
  81. inter1 ;
  82. inter2 ;
  83. inter3 ;
  84. interuptRTC ;
  85. InterruptHydro ;
  86. Led1 ;
  87. Led2 ;
  88. Led3 ;
  89. Extract ;
  90. Pompe ;
  91. /*
  92. * Interruption
  93. */
  94. PCintPort::attachInterrupt(InteruptRTC, fc_InterRTC, FALLING);
  95. PCintPort::attachInterrupt(InterruptHydro, fc_InterHydro, FALLING);}
  96. void loop() {
  97. }