//LIBRARY ============================================================
#include <LiquidCrystal_I2C.h>//libray LCD
#include "DHT.h"//library DHT22
//====================================================================
//DHT 22 SESNOR ======================================================
// Defines the DHT22 PIN and DHT sensor type.
#define DHTPIN 23
// #define DHTTYPE DHT22
#define DHTTYPE DHT22
String Status_Read_Sensor = "";
int Temp = 0;//temperatur
int Humd = 0;//kelembaban
#define BUTTON1 34 //mendefinisikan pin 34 sebagai BUTTON1
#define BUTTON2 35 //mendefinisikan pin 35 sebagai BUTTON2
uint8_t button1 = 0; //variabel untuk button1
uint8_t button2 = 0; //variabel untuk button2
bool k1 = 0;
bool k2 = 0;
int menu = 0;
int masukMenu = 0;
DHT dht22(DHTPIN, DHTTYPE);
//====================================================================
//LCD 16x2 ===========================================================
LiquidCrystal_I2C lcd(0x27, 20, 4);
//====================================================================
//FUNCTION MEMBACA DATA SENSOR DHT 22 ================================
void bacaDHT22() {
Humd = dht22.readHumidity();
Temp = dht22.readTemperature();
if (isnan(Humd) || isnan(Temp)) {
Serial.println();
Serial.println(F("Failed to read from DHT sensor!"));
Serial.println();
Status_Read_Sensor = "Failed";
Temp = 0;
Humd = 0;
}
else {
Status_Read_Sensor = "Success";
}
Serial.println();
Serial.println("-------------");
Serial.print(F("Status_Read_Sensor : "));
Serial.print(Status_Read_Sensor);
Serial.print(F(" | Humidity : "));
Serial.print(Humd);
Serial.print(F("% | Temperature : "));
Serial.print(Temp);
Serial.println(F("°C"));
Serial.println("-------------");
}
//====================================================================
//MAIN SETUP =========================================================
void setup() {
Serial.begin(115200);
pinMode(BUTTON1, INPUT);
pinMode(BUTTON2, INPUT);
lcd.init();//inisialisai lcd
lcd.backlight();//backlight lcd
lcd.setCursor(0,0);
lcd.print("SMKN 39 JAKARTA");
lcd.setCursor(0,1);
lcd.print("Kelas TAV 2");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Irfan Mahrubi");
lcd.setCursor(0,1);
lcd.print("1234567");
delay(2000);
lcd.clear();
}
//=====================================================================
//MAIN LOOP ===========================================================
void loop() {
button1 = digitalRead(BUTTON1);
button2 = digitalRead(BUTTON2);
//Button1
if(button1 == 1 && k1 == 0){
k1 = 1;
}
if(button1 == 0 && k1 == 1){
//isi program
menu++;
if(menu > 1){
menu = 0;
}
k1 = 0;
}
//Button2
if(button2 == 1 && k2 == 0){
k2 = 1;
}
if(button2 == 0 && k2 == 1){
//isi program
if(menu == 0){
masukMenu = 1;
}
if(menu == 1){
masukMenu = 2;
}
k2 = 0;
}
if(menu == 1){
lcd.setCursor(0,0);
lcd.print(" Temperatur ");
lcd.setCursor(0,1);
lcd.print("> Humidity ");
}
else{
lcd.setCursor(0,0);
lcd.print("> Temperatur ");
lcd.setCursor(0,1);
lcd.print(" Humidity ");
}
while(masukMenu == 1){
bacaDHT22();
lcd.setCursor(0,0);
lcd.print(" Mode ");
lcd.setCursor(0,1);
lcd.print("Temperatur: ");
lcd.print(Temp);
lcd.print("C");
}
while(masukMenu == 2){
bacaDHT22();
lcd.setCursor(0,0);
lcd.print(" Mode ");
lcd.setCursor(0,1);
lcd.print("Humidity: ");
lcd.print(Humd);
lcd.print("%");
}
// bacaDHT22();
// lcd.setCursor(0,0);
// lcd.print("Temperatur: ");
// lcd.print(Temp);
// lcd.setCursor(0,1);
// lcd.print("Humidity: ");
// lcd.print(Humd);
}
//=====================================================================