| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- #include <DS3231.h> //RTC DS3231 by andrew wickert
- #include <Wire.h>
- /*****************************************************************
- Déclaration des Capteurs
- *****************************************************************/
- //relay Lumiere
- const int Haut = 2;
- const int Bas = 3;
- //relay Ventilation
- const int Ventil = 4;
- //relay Arrosage
- const int Arro = 5;
- /*
- //Interrupteur
- const int interLumBas = 6; //inter Lumiere bas ON/OFF
- const int interLumOff = 7; //inter Lumiere OFF
- const int interVentAuto = 8; //inter Ventilation ON/Auto
- const int interVentOff = 9; //inter Ventilation OFF
- const int interArroAuto = 10;//inter Arro ON/Auto
- const int interArroOff = 11;//inter Arro OFF
- const int inter7 = 12;*/
- //RTC
- DS3231 Clock;
- /*****************************************************************
- Déclaration des Variables globals
- *****************************************************************/
- //Variable lumiere
- int newDay = 1; // Variable pour savoir si nouveau jour.
- int HA; //heure allumage en minute
- int HE; //heure extinction en minute (Ha +18H +/-15min)
- //Variable Extraction
- int tmpExtract, humExtract;
- int extract;
- //Variabe Arrosage
- const int delaySecArrosage = 20;
- int HeuArrosage;
- int jourArrosage = 1;
- /***********************************************************************
- Setup
- **********************************************************************/
- void setup() {
- Serial.begin(9600);
- /***********************************************************************
- init des pins
- * *********************************************************************/
- //PIN Lumiere
- pinMode(Haut, OUTPUT);
- digitalWrite(Haut, HIGH);
- pinMode(Bas, OUTPUT);
- digitalWrite(Bas, HIGH);
- //Pin ventilation
- pinMode(Ventil, OUTPUT);
- digitalWrite(Ventil, HIGH);
- //Pin Arrosage
- pinMode(Arro, OUTPUT);
- digitalWrite(Arro, HIGH);
- /*
- //interupteur
- pinMode(interLumBas, INPUT);
- pinMode(interLumOff, INPUT);
- pinMode(interVentAuto, INPUT);
- pinMode(interVentOff, INPUT);
- pinMode(interArroAuto, INPUT);
- pinMode(interArroOff, INPUT);
- pinMode(inter7, INPUT);*/
- /***********************************************************************
- init des capteurs
- * *********************************************************************/
- //RTC
- Wire.begin();
- }
- void loop() {
- /***********************************************************************
- Gestion des capteurs
- * **********************************************************************/
- //RTC
- bool h24, am;
- int heure = Clock.getHour(h24, am );
- int minu = Clock.getMinute();
-
- int HMin = heure * 60 + minu; // heure en minute
- Serial.println(HMin);
- /***********************************************************************
- Gestion de la lumiere
- * *********************************************************************
- */
- if (newDay == 1) {
- newDay = 0;
- HA = random (585, 615);
- HE = HA + 1065 + random(30);
- }
- if (HMin == 0) {
- jourArrosage =1;
- newDay = 1;
- }
- if (HMin >= HA & HMin < HE) { //On met en route si on est dans le temps et que l'inter2 est en allumé
- // if (interLumBas) {
- Serial.println("Double lumiere ON");
- digitalWrite(Bas, LOW);
- digitalWrite(Haut, LOW);
- }
- /*else {
- Serial.println("Lumiere haut ON");
- digitalWrite(Haut, LOW);
- }
- }*/
- else {
- Serial.println("Lumiere Eteint");
- digitalWrite(Bas, HIGH);
- digitalWrite(Haut, HIGH);
- }
- /***********************************************************************
- Gestion de l'extraction
- * *********************************************************************/
- if (minu >= 50) {
- Serial.println("Extracteur ON");
- digitalWrite(Ventil, LOW);
- }
- else {
- Serial.println("Extracteur OFF");
- digitalWrite(Ventil, HIGH);
- }
- /***********************************************************************
- Gestion de l'arrosage
- * *********************************************************************/
- if (HMin == 1018 & jourArrosage) {
- jourArrosage = 0;
- Serial.println("arro ON");
- digitalWrite(Arro, LOW);
- delay(40000);
- digitalWrite(Arro, HIGH);
- Serial.println("arro Off");
-
- }
- delay(10000);
- }
|