Advertisement
learnelectronics

Arduino Temperature Controlled Relay Module

Apr 13th, 2019
637
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.75 KB | None | 0 0
  1. //
  2. //
  3. //
  4. //          Arduino Temperature Controlled Relay Module
  5. //          by learnelectronics
  6. //          4/12/2019
  7. //          www.youtube.com/c/learnelectronics
  8. //          email:[email protected]
  9. //
  10. //
  11. //
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. #include <Wire.h>                                   //I2C LIBRARY FOR OLED
  21. #include <Adafruit_GFX.h>                           //ADAFRUIT GRAPHICS LIBRARY
  22. #include <Adafruit_SSD1306.h>                       //ADAFRUIT OLED DRIVER LIBRARY
  23. #include <Adafruit_Sensor.h>
  24. #include <DHT.h>
  25.  
  26.  
  27. #define DHTPIN 6                                    //DHT11 SENSOR IS ON PIN 6
  28. #define DHTTYPE    DHT11                            //TYPE OF SENSOR
  29. #define OLED_RESET 4                                //REQUIRED FOR OLED LIBRARY
  30.  
  31.  
  32.  
  33.  
  34.                                
  35.  
  36. Adafruit_SSD1306 display(OLED_RESET);               //DEFINE THE OLED AS display
  37. DHT dht(DHTPIN, DHTTYPE);                           //SETUP THE DHT11 SENSOR AS DHT ON PIN6 TYPE 11
  38.  
  39. void setup()   {                
  40.   Serial.begin(9600);                               //SERIAL COMMS FOR DEBUGGING
  41.   pinMode(A0,INPUT);                                //DEFINE A0 AS AN INPUT
  42.   pinMode(2,OUTPUT);                                //DEFINE D2 AS AN OUTPUT for relay 1
  43.   pinMode(3,OUTPUT);                                //DEFINE D3 AS AN OUTPUT for relay 2
  44.   pinMode(5,OUTPUT);                                //DEFINE D5 AS AN OUTPUT for relay 3 (cant use D4 - in use by OLED)
  45.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);        //START UP THE OLED
  46.   display.display();                                //SHOW BUFFER
  47.   display.clearDisplay();                           //CLEAR BUFFER
  48.   dht.begin();                                      //START READING DATA FROM THE DHT11
  49.  
  50.  
  51.  
  52.  
  53. }
  54.  
  55.  
  56. void loop() {
  57.  
  58.    float h = dht.readHumidity();                    //GRAB A HUMIDITY READING REL%
  59.    float f = dht.readTemperature(true);             //GRAB A TEMP READING IN DEGRESS F(REMOVE "TRUE" FOR CELCIUS)
  60.  
  61.  
  62.   display.clearDisplay();                           //CLEAR THE DISPLAY
  63.   display.setTextSize(1);                           //SETUP OLED WITH TEXT SIZE OF 1
  64.   display.setTextColor(WHITE);                      //SETUP OLED WITH COLOR WHITE
  65.   display.setCursor(0,0);                           //SETUP OLED WITH CURSOR IN UPPER LEFT
  66.   display.print("Temp:  ");                          //PRINT HEADING TO OLED BUFFER
  67.   display.print(f);                                  //PRINT VALUE TO OLED BUFFER
  68.   display.println("F");
  69.   display.print("Humid: ");                          //PRINT HEADING TO OLED BUFFER
  70.   display.print(h);                                  //PRINT VALUE TO OLED BUFFER
  71.   display.println("%");
  72.   display.println("------------");                  //PRINT A LINE TO OLED BUFFER
  73.   display.println("");
  74.  
  75.  
  76.    if (f < 63)                                      //CHECK IF TEMP IS LOWER THAN 63
  77.       {
  78.       digitalWrite(2,HIGH);                         //CLOSE RELAY 1
  79.       digitalWrite(3,LOW);                          //OPEN RELAY 2
  80.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  81.       display.println("Heat ON");                   //PRINT SYSTEM STATUS TO OLED BUFFER
  82.       }
  83.       else if (f > 70)                              //CHECK IF TEMP IS HIGHER THAN 70
  84.       {
  85.       digitalWrite(3,HIGH);                         //CLOSE RELAY 2(ON)
  86.       digitalWrite(2,LOW);                          //OPEN RELAY 1(OFF)
  87.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  88.       display.println("Cool ON");                   //PRINT SYSTEM STATUS TO OLED BUFFER
  89.       }
  90.       else if (f > 62 && f <69)                     //CHECK IF TEMP IS COMFORTABLE
  91.       {
  92.      
  93.       digitalWrite(2,LOW);                          //OPEN RELAY 1
  94.       digitalWrite(3,LOW);                          //OPEN RELAY 2
  95.       display.setTextSize(2);                       //SET LARGE TEXT ON OLED
  96.       display.println("Fan ON");                    //PRINT SYSTEM STATUS TO OLED BUFFER
  97.       }
  98.  
  99.     if (h > 55)                                    //CHECK IF HUMIDITY IS HIGHER THAN 55
  100.       {
  101.       digitalWrite(5,HIGH);                        //CLOSE RELAY 1
  102.       display.setTextSize(2);                      //SET LARGE TEXT ON OLED
  103.       display.println("Fan ON");                   //PRINT SYSTEM STATUS TO OLED BUFFER
  104.       }
  105.     else if (h <55)                                 //CHECK IF HUMIDITY IS COMFORTABLE
  106.       {
  107.       digitalWrite(5,LOW);                          //OPEN RELAY 1
  108.       }
  109.  
  110.    
  111.   display.display();                                //SHOW WHATS IN THE OLED BUFFER
  112.   delay(1500);                                       //WAIT 1.5S
  113.   display.clearDisplay();                           //CLEAR THE DISPLAY
  114.  
  115.  
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement