Advertisement
nikolas77

brumisateur et ventilation auto 2

Aug 27th, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "SPI.h"
  2. #include "Adafruit_GFX.h"
  3. #include "Adafruit_ILI9341.h"
  4.  
  5. #define TFT_DC 9
  6. #define TFT_CS 10
  7. #define TS_CS 8
  8. #define ILI9341_BLACK 0x2104
  9.  
  10. Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TS_CS);
  11.  
  12. #include "RTClib.h"
  13.  
  14. RTC_PCF8523 rtc;
  15.  
  16. #include <Wire.h>
  17. #include <Adafruit_Sensor.h>
  18. #include <Adafruit_BME280.h>
  19.  
  20. Adafruit_BME280 bme; // I2C
  21.  
  22. #define SEALEVELPRESSURE_HPA (1013.25)
  23.  
  24. const int Broche_Relais8 = 36;     //neons UVB
  25. const int Broche_Relais7 = 34;     //lampe chauffante
  26. const int Broche_Relais6 = 32;
  27. const int Broche_Relais5 = 30;
  28. const int Broche_Relais4 = 28;
  29. const int Broche_Relais3 = 26;    //brume terra
  30. const int Broche_Relais2 = 24;    //ventil terra
  31. const int Broche_Relais1 = 22;    //ventil boite
  32.  
  33. const int Broche_Led1 = 38;
  34. const int Broche_Led2 = 40;
  35.  
  36. const int Broche_Retroeclairage = 3;
  37.  
  38. const int tempSeuil = 41;
  39. const int humidSeuil = 19;
  40.  
  41. int Hrs = 0;
  42. int LastHrs = 0;
  43.  
  44. void setup(){
  45.  
  46.     Serial.begin(9600);
  47.     Serial.println("CLEARDATA");
  48.     Serial.println("LABAEL, HEURE");
  49.  
  50.     tft.begin();
  51.     tft.setRotation(1);
  52.     tft.fillScreen(ILI9341_BLACK);
  53.     pinMode(Broche_Retroeclairage, OUTPUT);
  54.     digitalWrite(Broche_Retroeclairage, HIGH);
  55.    
  56.     pinMode(Broche_Relais1, OUTPUT);
  57.     pinMode(Broche_Relais2, OUTPUT);
  58.     pinMode(Broche_Relais3, OUTPUT);
  59.     pinMode(Broche_Relais4, OUTPUT);
  60.     pinMode(Broche_Relais5, OUTPUT);
  61.     pinMode(Broche_Relais6, OUTPUT);
  62.     pinMode(Broche_Relais7, OUTPUT);
  63.     pinMode(Broche_Relais8, OUTPUT);
  64.    
  65.     digitalWrite(Broche_Relais1, HIGH);
  66.     digitalWrite(Broche_Relais2, LOW);
  67.     digitalWrite(Broche_Relais3, LOW);
  68.     digitalWrite(Broche_Relais4, LOW);
  69.     digitalWrite(Broche_Relais5, LOW);
  70.     digitalWrite(Broche_Relais6, LOW);
  71.     digitalWrite(Broche_Relais7, HIGH);
  72.     digitalWrite(Broche_Relais8, HIGH);
  73.    
  74.     pinMode(Broche_Led1, OUTPUT);
  75.     pinMode(Broche_Led2, OUTPUT);
  76.    
  77.     digitalWrite(Broche_Led1, HIGH);
  78.     digitalWrite(Broche_Led2, HIGH);
  79.      
  80.       unsigned status;
  81.  
  82.     status = bme.begin(0x77);
  83.    
  84. if (! rtc.begin()) {
  85.   }
  86.  
  87.   if (! rtc.initialized() || rtc.lostPower()) {
  88.   }
  89.  
  90.   //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  91. }    
  92. void loop(){
  93.  
  94.   gestionHorloge();
  95.   gestiontemperature();
  96.   gestionhumidite();
  97.   raffraichissementTft();
  98. }
  99.  
  100. void gestionhumidite(){                                 //gestion humidité
  101.  
  102.  int humidite = bme.readHumidity();
  103.  
  104. if (humidite < humidSeuil){
  105.  
  106.      digitalWrite(Broche_Led2, HIGH);
  107.      digitalWrite(Broche_Relais3, HIGH);
  108.      tft.fillRect (0, 100, 320, 25, ILI9341_BLACK);    
  109.      tft.setTextColor(ILI9341_RED);
  110.      tft.setCursor(35, 125);
  111.      tft.setTextSize(2);
  112.      tft.print("SEUIL HUMID DEPASSE");
  113.      tft.setTextColor(ILI9341_GREEN);
  114.      tft.setCursor(35, 145);
  115.      tft.setTextSize(2);
  116.      tft.print("BRUMISATEUR ACTIVE");
  117. }
  118. else{  
  119.     digitalWrite(Broche_Led2, LOW);
  120.      digitalWrite(Broche_Relais3, LOW);
  121.      tft.fillRect (0, 120, 320, 50, ILI9341_BLACK);
  122.      tft.setTextColor(ILI9341_CYAN);
  123.      tft.setCursor(35, 105);
  124.      tft.setTextSize(2);
  125.      tft.print("BRUMISATEUR DESACTIVE");
  126. }
  127. }
  128. void gestiontemperature(){                              //gestion température
  129.  
  130. int temperature = bme.readTemperature();
  131.  
  132. if (temperature > tempSeuil){  
  133.                                    
  134.      digitalWrite(Broche_Led1, HIGH);
  135.      digitalWrite(Broche_Relais2,HIGH);
  136.      tft.fillRect (0, 160, 320, 40,ILI9341_BLACK);    
  137.      tft.setTextColor(ILI9341_RED);
  138.      tft.setCursor(35, 200);
  139.      tft.setTextSize(2);
  140.      tft.print("SEUIL TEMP  DEPASSE");
  141.      tft.setTextColor(ILI9341_GREEN);
  142.      tft.setCursor(35, 220);
  143.      tft.setTextSize(2);
  144.      tft.print("VENTILATION ACTIVEE");
  145. }
  146. else{  
  147.      digitalWrite(Broche_Led1, LOW);
  148.      digitalWrite(Broche_Relais2, LOW);
  149.      tft.fillRect (0, 195, 320, 50, ILI9341_BLACK);
  150.      tft.setTextColor(ILI9341_CYAN);
  151.      tft.setCursor(35, 180);
  152.      tft.setTextSize(2);
  153.      tft.print("VENTILATION DESACTIVEE");
  154. }
  155. }
  156. void  gestionHorloge(){                                     //partie horloge
  157.          DateTime now = rtc.now();
  158.         Hrs = now.second();
  159.      if(LastHrs != Hrs){                                     //relevés temperatures et humidité sur moniteur serie
  160.      Serial.print("DATA, TIME,");
  161.      Serial.print(" TEMPERATURE   ");
  162.      Serial.print(bme.readTemperature());
  163.      Serial.print("  C ");
  164.      Serial.print("                        ");
  165.      Serial.print(" HUMIDITE   ");
  166.      Serial.print(bme.readHumidity());
  167.      Serial.print("  % ");
  168.      LastHrs = Hrs;
  169. }
  170.      tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);                        
  171.      tft.setCursor(100, 5);
  172.      tft.setTextSize(3);
  173.    if (now.hour() < 10) {tft.print('0');}
  174.      tft.print(now.hour(), DEC);
  175.      tft.print(':');
  176.    if (now.minute() < 10) {tft.print('0');}
  177.      tft.print(now.minute(), DEC);
  178.      tft.print(':');
  179.    if (now.second() < 10) {tft.print('0');}
  180.      tft.print(now.second(), DEC);
  181.      
  182. if(now.hour()==9&&now.minute()==00&&now.second()<=1){        //programmation eclairages
  183.  
  184.      digitalWrite(Broche_Relais7, HIGH);
  185.      digitalWrite(Broche_Relais8, HIGH);  
  186.      digitalWrite(Broche_Relais1, HIGH);
  187.      digitalWrite(Broche_Retroeclairage, HIGH);  
  188. }
  189. else if(now.hour()==22&&now.minute()==30&&now.second()<=1){
  190.  
  191.      digitalWrite(Broche_Relais7, LOW);
  192.      digitalWrite(Broche_Relais8, LOW);
  193.      digitalWrite(Broche_Relais1, LOW);
  194.      digitalWrite(Broche_Retroeclairage, LOW);
  195. }  
  196. }
  197. void raffraichissementTft(){                             //partie ecran
  198.  
  199.      tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
  200.      tft.setCursor(0, 40);
  201.      tft.setTextSize(2);
  202.      tft.print("Temp");
  203.      tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
  204.      tft.setCursor(55, 40);
  205.      tft.setTextSize(2);
  206.      tft.print(bme.readTemperature(),1);
  207.      tft.print(" C");
  208.  
  209.      tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
  210.      tft.setCursor(175, 40);
  211.      tft.setTextSize(2);
  212.      tft.print("Humid");
  213.      tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
  214.      tft.setCursor(245, 40);
  215.      tft.setTextSize(2);
  216.      tft.print(bme.readHumidity(),1);
  217.      tft.print(" %");
  218.      
  219.      tft.setTextColor(ILI9341_WHITE);
  220.      tft.setCursor(5, 65);
  221.      tft.setTextSize(2);
  222.      tft.print("SEUIL HUMID MINI   20.00 %");
  223.      tft.setTextColor(ILI9341_WHITE);
  224.      tft.setCursor(5, 85);
  225.      tft.setTextSize(2);
  226.      tft.print("SEUIL TEMP MAX     42.00 C");
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement