#include <DHT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int ledp = 14;
int ledb = 26;
int ledm = 25;
int buzzpin = 13;
int chanbuzz = 0;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
DHT dht(23, DHT22);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("oled failed"));
while (1);
};
dht.begin();
pinMode(ledp, OUTPUT);
pinMode(ledb, OUTPUT);
pinMode(ledm, OUTPUT);
ledcSetup(chanbuzz, 5000, 8);
ledcAttachPin(buzzpin, chanbuzz);
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000); // this speeds up the simulation
float t = dht.readTemperature();
float h = dht.readHumidity();
if (t <= 15 && h <= 10) {
digitalWrite(ledp, HIGH);
digitalWrite(ledb, LOW);
digitalWrite(ledm, LOW);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0, 0);
oled.print("Suhu : ");
oled.setTextSize(1);
oled.setCursor(0, 10);
oled.print(t);
oled.setTextSize(1);
oled.setCursor(100, 10);
oled.print("C");
oled.setTextSize(1);
oled.setCursor(0, 20);
oled.print(t + 273.15);
oled.setTextSize(1);
oled.setCursor(100, 20);
oled.print("K");
oled.setTextSize(1);
oled.setCursor(0, 30);
oled.print((t * 9 / 5) + 32);
oled.setTextSize(1);
oled.setCursor(100, 30);
oled.print("F");
oled.display();
ledcWriteNote(chanbuzz, (note_t)NOTE_B, 6);
noTone(buzzpin);
delay(100);
tone(buzzpin, 1000);
delay(50);
noTone(buzzpin);
delay(100);
tone(buzzpin, 1000);
delay(50);
} else if (t > 15 && t <= 27 && h > 10 && h <= 50) {
digitalWrite(ledp, LOW);
digitalWrite(ledb, HIGH);
digitalWrite(ledm, LOW);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0, 0);
oled.print("Suhu : ");
oled.setTextSize(1);
oled.setCursor(0, 10);
oled.print(t);
oled.setTextSize(1);
oled.setCursor(100, 10);
oled.print("C");
oled.setTextSize(1);
oled.setCursor(0, 20);
oled.print(t + 273.15);
oled.setTextSize(1);
oled.setCursor(100, 20);
oled.print("K");
oled.setTextSize(1);
oled.setCursor(0, 30);
oled.print((t * 9 / 5) + 32);
oled.setTextSize(1);
oled.setCursor(100, 30);
oled.print("F");
oled.display();
noTone(buzzpin);
} else if (t > 27 && h >= 51) {
digitalWrite(ledp, LOW);
digitalWrite(ledb, LOW);
digitalWrite(ledm, HIGH);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0, 0);
oled.print("Suhu : ");
oled.setTextSize(1);
oled.setCursor(0, 10);
oled.print(t);
oled.setTextSize(1);
oled.setCursor(100, 10);
oled.print("C");
oled.setTextSize(1);
oled.setCursor(0, 20);
oled.print(t + 273.15);
oled.setTextSize(1);
oled.setCursor(100, 20);
oled.print("K");
oled.setTextSize(1);
oled.setCursor(0, 30);
oled.print((t * 9 / 5) + 32);
oled.setTextSize(1);
oled.setCursor(100, 30);
oled.print("F");
oled.display();
ledcWriteNote(chanbuzz, (note_t)NOTE_C, 4);
tone(buzzpin, 600);
} else {
digitalWrite(ledp, LOW);
digitalWrite(ledb, LOW);
digitalWrite(ledm, LOW);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0, 0);
oled.print("Menyala Abangkuh!!!");
oled.display();
noTone(buzzpin);
}
}