// #include <esp_core/Arduino.h>
// #include <esp_core/esp32-hal-ledc.h>
// #include <ino_lib/DHT_sensor_library/DHT.h>
// #include <ino_lib/LiquidCrystal_I2C-master/LiquidCrystal_I2C.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHT_TYPE 22
#define PIN_DHT 4
const int led[] = {17, 5, 18};
const int dingin[] = {3, 152, 252};
const int sedang[] = {252, 209, 18};
const int panas[] = {255, 0, 0};
LiquidCrystal_I2C lcd(0x27, 20, 4);
DHT dht(PIN_DHT, DHT_TYPE);
namespace SENSOR {
void init() {
dht.begin();
lcd.init();
lcd.backlight();
lcd.clear();
for(int i = 0; i < (sizeof(led) / sizeof(led[0]));i++) {
ledcAttach(led[i], 5000, 8);
}
}
void activeLed(String cond) {
if(cond == "dingin") {
for(int i = 0; i < (sizeof(dingin) / sizeof(dingin[0])); i++) {
ledcWrite(led[i], dingin[i]);
}
}
else if(cond == "sedang") {
for(int i = 0; i < (sizeof(sedang) / sizeof(sedang[0])); i++) {
ledcWrite(led[i], sedang[i]);
}
}
else if(cond == "panas") {
for(int i = 0; i < (sizeof(panas) / sizeof(panas[0])); i++) {
ledcWrite(led[i], panas[i]);
}
}
}
void main() {
float temp = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.printstr("Suhu: ");
lcd.print(temp);
lcd.printstr(" Celcius ");
if(temp < 16) {
activeLed("dingin");
}
else if(temp < 34) {
activeLed("sedang");
}
else if(temp >= 34) {
activeLed("panas");
}
delay(10);
}
}
void setup() {
SENSOR::init();
}
void loop() {
SENSOR::main();
}