#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.Temperature();
float h = dht.Humidity();
if(t <= 15 && h <= 10){
digitalWrite(ledp, HIGH);
digitalWrite(ledb, LOW);
digitalWrite(ledm, LOW);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD306_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(SSD306_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(SSD306_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();
ledcWrite(chanbuz,(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(SSD306_WHITE);
oled.setCursor(0,0);
oled.print("Menyala Abangku!!!");
oled.display();
noTone(buzzpin);
}
}