#include <DHT.h>
#include <Wire.h>
//#include <max6675.h>
#include <LiquidCrystal_I2C.h>
// Pin Konfigurasi ADD-Ons
#define LED1 2
#define BUZ1 3
#define LED2 7
#define BUZ2 8
// Pin konfigurasi DHT
#define DHT11_PIN A0
DHT dht(DHT11_PIN, DHT22);
// Pin konfigurasi MAX6675
//int thermoSCK = 4;
//int thermoCS = 5;
//int thermoSO = 6;
//MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
// Pin konfigurasi LCD i2c
LiquidCrystal_I2C lcd(0x27, 16, 2);
void LCD_setup() {
lcd.init();
lcd.backlight();
}
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
dht.begin();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BUZ1, OUTPUT);
pinMode(BUZ2, OUTPUT);
LCD_setup();
}
unsigned long previousMillis_lcd = 0;
unsigned long previousMillis_kedip = 0;
void loop() {
unsigned long currentMillis = millis();
// DATA SENSOR
int DHT11_Suhu = dht.readTemperature();
//int Termokopel_Suhu = thermocouple.readCelsius();
// LCD OUTPUT
if (currentMillis - previousMillis_lcd >= 2000){
previousMillis_lcd = currentMillis;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DHT11 : " + String(DHT11_Suhu));
lcd.setCursor(0, 1);
lcd.print("Kopel : " + String(DHT11_Suhu));
}
// KEDIP SENSOR 1
if (DHT11_Suhu > 30) {
if (currentMillis - previousMillis_kedip >= 500) {
digitalWrite(LED1, HIGH);
digitalWrite(BUZ1, HIGH);
}
if (currentMillis - previousMillis_kedip >= 1000) {
previousMillis_kedip = currentMillis;
digitalWrite(LED1, LOW);
digitalWrite(BUZ1, LOW);
}
} else{
digitalWrite(LED1, LOW);
digitalWrite(BUZ1, LOW);
}
// MENYALA TERUS MENERUS SENSOR 2
if (DHT11_Suhu > 60){
digitalWrite(LED2, HIGH);
digitalWrite(BUZ2, HIGH);
}else{
digitalWrite(LED2, LOW);
digitalWrite(BUZ2, LOW);
}
}