| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #include <Wire.h>//https://www.arduino.cc/en/reference/wire
- #include <DS3231.h>//https://github.com/NorthernWidget/DS3231
- #include <DS18B20.h>
- #include <DS3231.h>
- #define ONE_WIRE_BUS 3
- /*
- int Inter1 = ; // inter croissance mere
- int Inter2 = ; // inter croissance reste
- int Inter3 = ; // inter flo
- int InterruptHydro = ; //Entrer Interrupt Hydro
- int Inter
- */
- int Led1 = ; //Relai croissance mere
- int Led2 = ; //Relai croissance reste
- int Led3 = ; //Relai flo
- int Extract = ;//relai Extract
- int Dehum = ;
- int Pompe = ; //Relai pompe
- bool ExtractOn = True;
- int tmpArrosage = ; //temps d'arrosage
- DS3231 Clock;
- enum Prochain {
- AlumFlo,
- AlumCroi,
- ExtFlo,
- ExtCroi
- };
- enum Prochain pro = AlumFlo;
- void fc_InterHydro(){
- //Voir si rearmer l'interuption
- SI alarm1 :
- LED();
- Si alarm2 :
- extracteur();
- }
- void fc_InterHydro(){
- writepin(Pompe,ON);
- sleep(tmpArrosage);
- writepin(Pompe,OFF);
-
- }
- void extracteur(){
- //remiseAlarm2 +15min
- if(ExtractOn)
- writepin(Extract,OFF);
- else
- writepin(Extract,ON);
- ExtractOn= ~ExtractOn;
- }
- void LED(){
- Switch (pro){
- case(AlumCroi):
- pro = AlumFlo;
- //rearmer l'alarm +2H
- if(readpin(inter1))
- writepin(Led1,ON);
- if(readpin(inter1))
- writepin(Led2,ON);
- break;
- case(AlumFlo):
- pro = ExtFlo;
- //rearmer l'alarm +12H
- if (readpin(inter3))
- writepin(Led3,ON);
- break;
- case(ExtFlo):
- pro = ExtCroi;
- //rearmer l'alarm +2H
- writepin(Led3,OFF);
- break;
- case(ExtCroi):
- pro = AlumCroi;
- //rearmer l'alarm +8H
- writepin(Led1,OFF);
- writepin(Led2,OFF);
- break;
- }
- }
-
- void setup() {
- DS3231();
- //init I/O
- inter1 ;
- inter2 ;
- inter3 ;
- interuptRTC ;
- InterruptHydro ;
- Led1 ;
- Led2 ;
- Led3 ;
- Extract ;
- Pompe ;
- /*
- * Interruption
- */
- PCintPort::attachInterrupt(InteruptRTC, fc_InterRTC, FALLING);
- PCintPort::attachInterrupt(InterruptHydro, fc_InterHydro, FALLING);}
- void loop() {
-
-
-
- }
|