#include "DHT.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSansBold9pt7b.h>
#include <Fonts/Picopixel.h>
#define ledBiru 13
#define ledKuning 12
#define ledMerah 11
#define DHTPin 2
#define DHTType DHT22
DHT dht(DHTPin, DHTType);
int buzzerPin = 10;
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
// put your setup code here, to run once:
pinMode(ledBiru, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledMerah, OUTPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(ledBiru, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
noTone(buzzerPin);
dht.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
// put your main code here, to run repeatedly:
float t = dht.readTemperature();
if(t < 29){
noTone(buzzerPin);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
digitalWrite(ledBiru, HIGH);
display.clearDisplay();
display.setFont();
display.setTextColor(1);
display.setCursor(22, 10);
display.print("SUHU : ");
display.print(t); display.print(" C");
display.setCursor(4, 32);
display.print("Suhu Terlalu Rendah");
display.display();
}
else if ((t>=29) && (t<=35)){
noTone(buzzerPin);
digitalWrite(ledBiru, LOW);
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, HIGH);
display.clearDisplay();
display.setFont();
display.setTextColor(1);
display.setCursor(22, 10);
display.print("SUHU : ");
display.print(t); display.print(" C");
display.setCursor(8, 32);
display.print("Suhu Cukup Optimal");
display.display();
}
else {
digitalWrite(ledKuning, LOW);
digitalWrite(ledBiru, LOW);
digitalWrite(ledMerah, HIGH);
tone(buzzerPin, 150);
display.clearDisplay();
display.setFont();
display.setTextColor(1);
display.setCursor(22, 10);
display.print("SUHU : ");
display.print(t); display.print(" C");
display.setCursor(4, 32);
display.print("Suhu Terlalu Tinggi");
display.display();
}
}