#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define width 128
#define height 64
#define red 18
#define green 19
#define btn 14
Adafruit_SSD1306 oled(width, height, &Wire, -1);
const int dht_pin = 4;
int col = 16;
int row = 2;
float temp;
DHT dht(dht_pin, DHT22);
LiquidCrystal_I2C lcd(0x27, col, row);
//project by Muhammad Fikri Anwar XII mipa 4
void setup(){
Serial.begin(9600);
lcd.backlight();
lcd.init();
dht.begin();
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(btn, INPUT);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
oled.clearDisplay();
}
}
void loop() {
int status =digitalRead(btn);
if(status==1){
temp = dht.readTemperature(false);
String wow = String(temp) + " Celsius";
lcd.setCursor(1,1);
lcd.print(wow);
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(30, 28);
oled.print("DHT ON");
oled.display();
if(temp<=15){
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
lcd.setCursor(5,0);
lcd.print("GREEN");
}else{
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
lcd.setCursor(6,0);
lcd.print("RED");
}
}else{
lcd.clear();
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(26, 28);
oled.print("DHT OFF");
oled.setCursor(1,2);
oled.display();
lcd.setCursor(2, 0);
lcd.print("Hold button !");
lcd.setCursor(4, 1);
lcd.print("To Check");
digitalWrite(red, LOW);
digitalWrite(green, LOW);
delay(1000);
lcd.clear();
}
}