#include "DHT.h"
#include "buzzer.h"
#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define SPEAKER_PIN 10
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
DHT dht(DHTPIN, DHTTYPE);
const int merah = 13;
const int kuning = 12;
const int biru = 11;
String statusB;
void setup() {
// Serial.begin(115200);
// Serial.println(F("DHT22 example!"));
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("Hello, Wokwi!");
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(biru, OUTPUT);
dht.begin();
}
void loop() {
// int chk = DHT_read22(DHT22_PIN);
float temperature = dht.readTemperature();
String statusA = "Suhu: " + String(temperature) + " Celcius";
lcd.clear();
lcd.setCursor(0,0);
lcd.print(statusA);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.println("Celcius");
lcd.setCursor(0,1);
if (temperature < 29) {
statusB = "Suhu Rendah";
digitalWrite(biru, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
noTone(SPEAKER_PIN);
} else if (temperature < 35) {
statusB = "Suhu Cukup";
digitalWrite(biru, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(merah, LOW);
noTone(SPEAKER_PIN);
} else {
statusB = "Suhu Panas";
digitalWrite(biru, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, HIGH);
tone(SPEAKER_PIN, NOTE_A6);
}
lcd.setCursor(autoCenter(statusB), 1);
lcd.print(statusB);
delay(2000);
}
int autoCenter(String text) {
int length = text.length();
// return floor((16 - length) / 2);
return (16 - length) / 2;
}