|
@@ -0,0 +1,154 @@
|
|
|
|
|
+
|
|
|
|
|
+#include <OneWire.h>
|
|
|
|
|
+#include <DS18B20.h> //temp DS18B20_RT by rob tillaart
|
|
|
|
|
+#include <DS3231.h> //RTC DS3231 by andrew wickert
|
|
|
|
|
+#include <DHT.h> //Adafruit
|
|
|
|
|
+#include <Wire.h>
|
|
|
|
|
+
|
|
|
|
|
+/*****************************************************************
|
|
|
|
|
+ Déclaration des Capteurs
|
|
|
|
|
+ *****************************************************************/
|
|
|
|
|
+//relay Lumiere
|
|
|
|
|
+const int RougeHaut = 2;
|
|
|
|
|
+const int BleuHaut = 3;
|
|
|
|
|
+const int RougeBas = 4;
|
|
|
|
|
+const int BleuBas = 5;
|
|
|
|
|
+
|
|
|
|
|
+//relay Ventilation
|
|
|
|
|
+const int DehumPin = 6;
|
|
|
|
|
+const int Extracteur = 7;
|
|
|
|
|
+const int VentilHaut = 8;
|
|
|
|
|
+const int VentilBas = 9;
|
|
|
|
|
+
|
|
|
|
|
+//relay Arrosage
|
|
|
|
|
+const int Arro1 = 10;
|
|
|
|
|
+const int Arro2 = 11;
|
|
|
|
|
+const int Evacuation = 12;
|
|
|
|
|
+const int Melange = 13;
|
|
|
|
|
+
|
|
|
|
|
+//Capteur niveau eau
|
|
|
|
|
+const int NiveauEauRecup = 14;
|
|
|
|
|
+const int NiveauEauAqua = 15;
|
|
|
|
|
+
|
|
|
|
|
+//Capteur Temp
|
|
|
|
|
+#define ONE_WIRE_TEMP 16
|
|
|
|
|
+OneWire oneWireTemp(ONE_WIRE_TEMP);
|
|
|
|
|
+DS18B20 Temp(&oneWireTemp);
|
|
|
|
|
+
|
|
|
|
|
+//capteur Hum air
|
|
|
|
|
+#define DHTTYPE DHT22
|
|
|
|
|
+#define DHTPIN 17
|
|
|
|
|
+DHT dht(DHTPIN, DHTTYPE);
|
|
|
|
|
+
|
|
|
|
|
+//Capteur hum sol
|
|
|
|
|
+const int HumidSolHaut = 18;
|
|
|
|
|
+const int HumidSolBas = 19;
|
|
|
|
|
+
|
|
|
|
|
+//interupteur
|
|
|
|
|
+const int interType = 22;
|
|
|
|
|
+const int interLum = 24;
|
|
|
|
|
+const int interONExt = 26;
|
|
|
|
|
+const int interONVentil = 28;
|
|
|
|
|
+const int interOFFExt = 30;
|
|
|
|
|
+const int interONAro = 32;
|
|
|
|
|
+const int interONVid = 34;
|
|
|
|
|
+const int interOFFAro = 36;
|
|
|
|
|
+const int inter9 = 38;
|
|
|
|
|
+const int inter10 = 40;
|
|
|
|
|
+
|
|
|
|
|
+//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 +12Hou18H +/-15min)
|
|
|
|
|
+
|
|
|
|
|
+//Variable Extraction
|
|
|
|
|
+int tmpExtract = 0, humExtract;
|
|
|
|
|
+int extract;
|
|
|
|
|
+
|
|
|
|
|
+//Variabe Arrosage
|
|
|
|
|
+const int delaySecArro = 20;
|
|
|
|
|
+const int delaySecEvacuation = 30;
|
|
|
|
|
+int SolBas, SolHaut;
|
|
|
|
|
+int HeuArrosage;
|
|
|
|
|
+/***********************************************************************
|
|
|
|
|
+ Setup
|
|
|
|
|
+ **********************************************************************/
|
|
|
|
|
+
|
|
|
|
|
+void setup() {
|
|
|
|
|
+ Serial.begin(9600);
|
|
|
|
|
+
|
|
|
|
|
+ /***********************************************************************
|
|
|
|
|
+ init des pins
|
|
|
|
|
+ * *********************************************************************/
|
|
|
|
|
+ //PIN Lumiere
|
|
|
|
|
+ pinMode(RougeHaut, OUTPUT);
|
|
|
|
|
+ pinMode(RougeBas, OUTPUT);
|
|
|
|
|
+ pinMode(BleuHaut, OUTPUT);
|
|
|
|
|
+ pinMode(BleuBas, OUTPUT);
|
|
|
|
|
+ digitalWrite(RougeHaut, HIGH);
|
|
|
|
|
+ digitalWrite(RougeBas, HIGH);
|
|
|
|
|
+ digitalWrite(BleuHaut, HIGH);
|
|
|
|
|
+ digitalWrite(BleuBas, HIGH);
|
|
|
|
|
+
|
|
|
|
|
+ //Pin ventilation
|
|
|
|
|
+ pinMode(DehumPin, OUTPUT);
|
|
|
|
|
+ pinMode(Extracteur, OUTPUT);
|
|
|
|
|
+ pinMode(VentilHaut, OUTPUT);
|
|
|
|
|
+ pinMode(VentilBas, OUTPUT);
|
|
|
|
|
+ digitalWrite(DehumPin, HIGH);
|
|
|
|
|
+ digitalWrite(Extracteur, HIGH);
|
|
|
|
|
+ digitalWrite(VentilHaut, HIGH);
|
|
|
|
|
+ digitalWrite(VentilBas, HIGH);
|
|
|
|
|
+
|
|
|
|
|
+ //Pin Arrosage
|
|
|
|
|
+ pinMode(Arro1, OUTPUT);
|
|
|
|
|
+ pinMode(Arro2, OUTPUT);
|
|
|
|
|
+ pinMode(Evacuation, OUTPUT);
|
|
|
|
|
+ pinMode(Melange, OUTPUT);
|
|
|
|
|
+ digitalWrite(Arro1, HIGH);
|
|
|
|
|
+ digitalWrite(Arro2, HIGH);
|
|
|
|
|
+ digitalWrite(Evacuation, HIGH);
|
|
|
|
|
+ digitalWrite(Melange, HIGH);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+/*
|
|
|
|
|
+ const int Arro1 = 10;
|
|
|
|
|
+ const int Arro2 = 11;
|
|
|
|
|
+ const int Evacuation = 12;
|
|
|
|
|
+ const int Melange = 13;
|
|
|
|
|
+*/
|
|
|
|
|
+int incomingByte = 0; // for incoming serial data
|
|
|
|
|
+
|
|
|
|
|
+void loop() {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (Serial.available() > 0) {
|
|
|
|
|
+ // read the incoming byte:
|
|
|
|
|
+ incomingByte = Serial.read();
|
|
|
|
|
+ if (incomingByte == 'a') {
|
|
|
|
|
+ Serial.println("ON1");
|
|
|
|
|
+ digitalWrite(Arro1, LOW);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (incomingByte == 'z') {
|
|
|
|
|
+ Serial.println("ON2");
|
|
|
|
|
+ digitalWrite(Arro2, LOW);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (incomingByte == 'q') {
|
|
|
|
|
+ Serial.println("OFF1");
|
|
|
|
|
+ digitalWrite(Arro1, HIGH);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (incomingByte == 's') {
|
|
|
|
|
+ Serial.println("OFF2");
|
|
|
|
|
+ digitalWrite(Arro2, HIGH);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|