Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SPI.h"
- #include "Adafruit_GFX.h"
- #include "Adafruit_ILI9341.h"
- #define TFT_DC 9
- #define TFT_CS 10
- #define TS_CS 8
- #define ILI9341_BLACK 0x2104
- Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TS_CS);
- #include "RTClib.h"
- RTC_PCF8523 rtc;
- #include <Wire.h>
- #include <Adafruit_Sensor.h>
- #include <Adafruit_BME280.h>
- Adafruit_BME280 bme; // I2C
- #define SEALEVELPRESSURE_HPA (1013.25)
- const int Broche_Relais8 = 36; //neons UVB
- const int Broche_Relais7 = 34; //lampe chauffante
- const int Broche_Relais6 = 32;
- const int Broche_Relais5 = 30;
- const int Broche_Relais4 = 28;
- const int Broche_Relais3 = 26; //brume terra
- const int Broche_Relais2 = 24; //ventil terra
- const int Broche_Relais1 = 22; //ventil boite
- const int Broche_Led1 = 38;
- const int Broche_Led2 = 40;
- const int Broche_Retroeclairage = 3;
- const int tempSeuil = 41;
- const int humidSeuil = 19;
- int Hrs = 0;
- int LastHrs = 0;
- void setup(){
- Serial.begin(9600);
- Serial.println("CLEARDATA");
- Serial.println("LABAEL, HEURE");
- tft.begin();
- tft.setRotation(1);
- tft.fillScreen(ILI9341_BLACK);
- pinMode(Broche_Retroeclairage, OUTPUT);
- digitalWrite(Broche_Retroeclairage, HIGH);
- pinMode(Broche_Relais1, OUTPUT);
- pinMode(Broche_Relais2, OUTPUT);
- pinMode(Broche_Relais3, OUTPUT);
- pinMode(Broche_Relais4, OUTPUT);
- pinMode(Broche_Relais5, OUTPUT);
- pinMode(Broche_Relais6, OUTPUT);
- pinMode(Broche_Relais7, OUTPUT);
- pinMode(Broche_Relais8, OUTPUT);
- digitalWrite(Broche_Relais1, HIGH);
- digitalWrite(Broche_Relais2, LOW);
- digitalWrite(Broche_Relais3, LOW);
- digitalWrite(Broche_Relais4, LOW);
- digitalWrite(Broche_Relais5, LOW);
- digitalWrite(Broche_Relais6, LOW);
- digitalWrite(Broche_Relais7, HIGH);
- digitalWrite(Broche_Relais8, HIGH);
- pinMode(Broche_Led1, OUTPUT);
- pinMode(Broche_Led2, OUTPUT);
- digitalWrite(Broche_Led1, HIGH);
- digitalWrite(Broche_Led2, HIGH);
- unsigned status;
- status = bme.begin(0x77);
- if (! rtc.begin()) {
- }
- if (! rtc.initialized() || rtc.lostPower()) {
- }
- //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
- }
- void loop(){
- gestionHorloge();
- gestiontemperature();
- gestionhumidite();
- raffraichissementTft();
- }
- void gestionhumidite(){ //gestion humidité
- int humidite = bme.readHumidity();
- if (humidite < humidSeuil){
- digitalWrite(Broche_Led2, HIGH);
- digitalWrite(Broche_Relais3, HIGH);
- tft.fillRect (0, 100, 320, 25, ILI9341_BLACK);
- tft.setTextColor(ILI9341_RED);
- tft.setCursor(35, 125);
- tft.setTextSize(2);
- tft.print("SEUIL HUMID DEPASSE");
- tft.setTextColor(ILI9341_GREEN);
- tft.setCursor(35, 145);
- tft.setTextSize(2);
- tft.print("BRUMISATEUR ACTIVE");
- }
- else{
- digitalWrite(Broche_Led2, LOW);
- digitalWrite(Broche_Relais3, LOW);
- tft.fillRect (0, 120, 320, 50, ILI9341_BLACK);
- tft.setTextColor(ILI9341_CYAN);
- tft.setCursor(35, 105);
- tft.setTextSize(2);
- tft.print("BRUMISATEUR DESACTIVE");
- }
- }
- void gestiontemperature(){ //gestion température
- int temperature = bme.readTemperature();
- if (temperature > tempSeuil){
- digitalWrite(Broche_Led1, HIGH);
- digitalWrite(Broche_Relais2,HIGH);
- tft.fillRect (0, 160, 320, 40,ILI9341_BLACK);
- tft.setTextColor(ILI9341_RED);
- tft.setCursor(35, 200);
- tft.setTextSize(2);
- tft.print("SEUIL TEMP DEPASSE");
- tft.setTextColor(ILI9341_GREEN);
- tft.setCursor(35, 220);
- tft.setTextSize(2);
- tft.print("VENTILATION ACTIVEE");
- }
- else{
- digitalWrite(Broche_Led1, LOW);
- digitalWrite(Broche_Relais2, LOW);
- tft.fillRect (0, 195, 320, 50, ILI9341_BLACK);
- tft.setTextColor(ILI9341_CYAN);
- tft.setCursor(35, 180);
- tft.setTextSize(2);
- tft.print("VENTILATION DESACTIVEE");
- }
- }
- void gestionHorloge(){ //partie horloge
- DateTime now = rtc.now();
- Hrs = now.second();
- if(LastHrs != Hrs){ //relevés temperatures et humidité sur moniteur serie
- Serial.print("DATA, TIME,");
- Serial.print(" TEMPERATURE ");
- Serial.print(bme.readTemperature());
- Serial.print(" C ");
- Serial.print(" ");
- Serial.print(" HUMIDITE ");
- Serial.print(bme.readHumidity());
- Serial.print(" % ");
- LastHrs = Hrs;
- }
- tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
- tft.setCursor(100, 5);
- tft.setTextSize(3);
- if (now.hour() < 10) {tft.print('0');}
- tft.print(now.hour(), DEC);
- tft.print(':');
- if (now.minute() < 10) {tft.print('0');}
- tft.print(now.minute(), DEC);
- tft.print(':');
- if (now.second() < 10) {tft.print('0');}
- tft.print(now.second(), DEC);
- if(now.hour()==9&&now.minute()==00&&now.second()<=1){ //programmation eclairages
- digitalWrite(Broche_Relais7, HIGH);
- digitalWrite(Broche_Relais8, HIGH);
- digitalWrite(Broche_Relais1, HIGH);
- digitalWrite(Broche_Retroeclairage, HIGH);
- }
- else if(now.hour()==22&&now.minute()==30&&now.second()<=1){
- digitalWrite(Broche_Relais7, LOW);
- digitalWrite(Broche_Relais8, LOW);
- digitalWrite(Broche_Relais1, LOW);
- digitalWrite(Broche_Retroeclairage, LOW);
- }
- }
- void raffraichissementTft(){ //partie ecran
- tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
- tft.setCursor(0, 40);
- tft.setTextSize(2);
- tft.print("Temp");
- tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
- tft.setCursor(55, 40);
- tft.setTextSize(2);
- tft.print(bme.readTemperature(),1);
- tft.print(" C");
- tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
- tft.setCursor(175, 40);
- tft.setTextSize(2);
- tft.print("Humid");
- tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
- tft.setCursor(245, 40);
- tft.setTextSize(2);
- tft.print(bme.readHumidity(),1);
- tft.print(" %");
- tft.setTextColor(ILI9341_WHITE);
- tft.setCursor(5, 65);
- tft.setTextSize(2);
- tft.print("SEUIL HUMID MINI 20.00 %");
- tft.setTextColor(ILI9341_WHITE);
- tft.setCursor(5, 85);
- tft.setTextSize(2);
- tft.print("SEUIL TEMP MAX 42.00 C");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement