Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- //
- //
- // Arduino Temperature Controlled Relay Module
- // by learnelectronics
- // 4/12/2019
- // www.youtube.com/c/learnelectronics
- // email:[email protected]
- //
- //
- //
- #include <Wire.h> //I2C LIBRARY FOR OLED
- #include <Adafruit_GFX.h> //ADAFRUIT GRAPHICS LIBRARY
- #include <Adafruit_SSD1306.h> //ADAFRUIT OLED DRIVER LIBRARY
- #include <Adafruit_Sensor.h>
- #include <DHT.h>
- #define DHTPIN 6 //DHT11 SENSOR IS ON PIN 6
- #define DHTTYPE DHT11 //TYPE OF SENSOR
- #define OLED_RESET 4 //REQUIRED FOR OLED LIBRARY
- Adafruit_SSD1306 display(OLED_RESET); //DEFINE THE OLED AS display
- DHT dht(DHTPIN, DHTTYPE); //SETUP THE DHT11 SENSOR AS DHT ON PIN6 TYPE 11
- void setup() {
- Serial.begin(9600); //SERIAL COMMS FOR DEBUGGING
- pinMode(A0,INPUT); //DEFINE A0 AS AN INPUT
- pinMode(2,OUTPUT); //DEFINE D2 AS AN OUTPUT for relay 1
- pinMode(3,OUTPUT); //DEFINE D3 AS AN OUTPUT for relay 2
- pinMode(5,OUTPUT); //DEFINE D5 AS AN OUTPUT for relay 3 (cant use D4 - in use by OLED)
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //START UP THE OLED
- display.display(); //SHOW BUFFER
- display.clearDisplay(); //CLEAR BUFFER
- dht.begin(); //START READING DATA FROM THE DHT11
- }
- void loop() {
- float h = dht.readHumidity(); //GRAB A HUMIDITY READING REL%
- float f = dht.readTemperature(true); //GRAB A TEMP READING IN DEGRESS F(REMOVE "TRUE" FOR CELCIUS)
- display.clearDisplay(); //CLEAR THE DISPLAY
- display.setTextSize(1); //SETUP OLED WITH TEXT SIZE OF 1
- display.setTextColor(WHITE); //SETUP OLED WITH COLOR WHITE
- display.setCursor(0,0); //SETUP OLED WITH CURSOR IN UPPER LEFT
- display.print("Temp: "); //PRINT HEADING TO OLED BUFFER
- display.print(f); //PRINT VALUE TO OLED BUFFER
- display.println("F");
- display.print("Humid: "); //PRINT HEADING TO OLED BUFFER
- display.print(h); //PRINT VALUE TO OLED BUFFER
- display.println("%");
- display.println("------------"); //PRINT A LINE TO OLED BUFFER
- display.println("");
- if (f < 63) //CHECK IF TEMP IS LOWER THAN 63
- {
- digitalWrite(2,HIGH); //CLOSE RELAY 1
- digitalWrite(3,LOW); //OPEN RELAY 2
- display.setTextSize(2); //SET LARGE TEXT ON OLED
- display.println("Heat ON"); //PRINT SYSTEM STATUS TO OLED BUFFER
- }
- else if (f > 70) //CHECK IF TEMP IS HIGHER THAN 70
- {
- digitalWrite(3,HIGH); //CLOSE RELAY 2(ON)
- digitalWrite(2,LOW); //OPEN RELAY 1(OFF)
- display.setTextSize(2); //SET LARGE TEXT ON OLED
- display.println("Cool ON"); //PRINT SYSTEM STATUS TO OLED BUFFER
- }
- else if (f > 62 && f <69) //CHECK IF TEMP IS COMFORTABLE
- {
- digitalWrite(2,LOW); //OPEN RELAY 1
- digitalWrite(3,LOW); //OPEN RELAY 2
- display.setTextSize(2); //SET LARGE TEXT ON OLED
- display.println("Fan ON"); //PRINT SYSTEM STATUS TO OLED BUFFER
- }
- if (h > 55) //CHECK IF HUMIDITY IS HIGHER THAN 55
- {
- digitalWrite(5,HIGH); //CLOSE RELAY 1
- display.setTextSize(2); //SET LARGE TEXT ON OLED
- display.println("Fan ON"); //PRINT SYSTEM STATUS TO OLED BUFFER
- }
- else if (h <55) //CHECK IF HUMIDITY IS COMFORTABLE
- {
- digitalWrite(5,LOW); //OPEN RELAY 1
- }
- display.display(); //SHOW WHATS IN THE OLED BUFFER
- delay(1500); //WAIT 1.5S
- display.clearDisplay(); //CLEAR THE DISPLAY
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement