/*
Mirza Hilmi Shodiq
225150707111067
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHTesp.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define pinDHT 16
#define LED1 2
#define LED2 4
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (true);
}
dhtSensor.setup(pinDHT, DHTesp::DHT22);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
delay(2000);
}
void loop() {
delay(2000);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float temp = data.temperature;
float hum = data.humidity;
if (isnan(hum) || isnan(temp)) {
Serial.println(F("Pembacaan sensor DHT tidak berhasil!"));
return;
}
Serial.print("Kelembaban: ");
Serial.print(hum);
Serial.print("% \tSuhu: ");
Serial.print(temp);
Serial.print("°C ");
Serial.println();
oled.clearDisplay();
oled.setCursor(0, 0);
oled.println("Mirza Hilmi Shodiq");
oled.setCursor(0, 10);
oled.println("225150707111067");
if (temp < 0) {
digitalWrite(LED1, HIGH);
} else digitalWrite(LED1, LOW);
if (hum > 60) {
if (temp < 0) {
oled.setCursor(0, 50);
oled.println("Warning!");
}
digitalWrite(LED2, HIGH);
} else digitalWrite(LED2, LOW);
oled.display();
}