#include "DHTesp.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ledBiru 19
#define ledKuning 18
#define ledMerah 5
#define buzzer 12
#define DHT_PIN 15
#define LEBAR_LAYAR 128
#define TINGGI_LAYAR 64
DHTesp dhtSensor;
Adafruit_SSD1306 oled(LEBAR_LAYAR, TINGGI_LAYAR, &Wire, -1);
void setup()
{
Serial.begin(9600);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(ledBiru, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledMerah, OUTPUT);
pinMode(buzzer, OUTPUT);
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 10);
oled.display();
}
void loop()
{
delay(2000);
oled.clearDisplay();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float t = data.temperature;
float h = data.humidity;
Serial.println("Temp: " + String(t, 2) + "°C");
Serial.println("Humidity: " + String(h, 1) + "%");
Serial.println("---");
oled.setCursor(20,0);
oled.print("Suhu: ");
oled.print(data.temperature);
oled.print("°C");
if(t>35)
{
digitalWrite(ledMerah, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledBiru, LOW);
oled.setCursor(0, 20);
oled.print("SUHU PANAS");
tone(buzzer, 2000, 500);
}
else if(t>29)
{
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
digitalWrite(ledBiru, LOW);
oled.setCursor(0, 20);
oled.print("SUHU CUKUP");
}
else
{
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
digitalWrite(ledBiru, HIGH);
oled.setCursor(0, 20);
oled.print("SUHU RENDAH");
}
oled.display();
}