#include <DHT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define DHTPIN 2
#define DHTTYPE DHT22
#define pinBuzzer 3
#define ledMerah 6
#define ledBiru 7
#define ledKuning 8
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(128, 64, &Wire);
void setup() {
dht.begin();
pinMode(pinBuzzer, OUTPUT);
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledBiru, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(1);
display.setTextSize(1);
display.display();
}
void loop() {
noTone(pinBuzzer);
digitalWrite(ledBiru, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
float suhu= dht.readTemperature();
display.clearDisplay();
display.setCursor(0,0);
display.print("SUHU: ");
display.print(suhu);
display.print(" CELCIUS");
if (suhu<29){
digitalWrite(ledBiru, HIGH);
noTone(pinBuzzer);
display.setCursor(0, 20);
display.print("SUHU RENDAH");
}
else if(suhu>=29 and suhu<=35){
digitalWrite(ledKuning, HIGH);
noTone(pinBuzzer);
display.setCursor(0,20);
display.print("SUHU CUKUP");
}
else if (suhu>35){
digitalWrite(ledMerah, HIGH);
tone(pinBuzzer, 1000);
delay(200);
tone(pinBuzzer, 500);
delay(200);
display.setCursor(0,20);
display.print("SUHU PANAS");
}
display.display();
}