#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const uint8_t x = 4;
const uint8_t y = 4;
uint8_t pinbaris [x] = {2, 3, 4, 5};
uint8_t pinkolom [y] = {6, 7, 8, 9};
char keys [x][y] = {{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}};
Keypad k = Keypad(makeKeymap(keys), pinbaris, pinkolom, x, y);
bool pinbenar = false;
String pinsimpan = "091001";
String pininput = "";
int dhtpin = A0;
int dhttype = DHT22;
DHT dht (dhtpin, dhttype);
void sugeng() {
lcd.setCursor(2,0);
lcd.print("SUGENG RAWUH");
delay(2000);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("MASUKKAN");
lcd.setCursor(0,1);
lcd.print("PIN:");
}
void pin() {
while (!pinbenar){
char bacakey = k.getKey();
if (bacakey != NO_KEY){
Serial.print(bacakey);
if (bacakey == 'D'){
if (pinsimpan == pininput){
pinbenar = true;
Serial.println("\nBenar");
lcd.clear();
lcd.setCursor(1,0);
lcd.print("LOGIN BERHASIL");
delay(500);
lcd.clear();
}
pininput = "";
}
else{
pininput = pininput + bacakey;
lcd.setCursor(5,1);
lcd.print(pininput);
}
}
}
}
void baca(){
float t = dht.readTemperature();
float h = dht.readHumidity();
lcd.setCursor(0, 0);
lcd.print("Suhu :" + String(t) + (char)223 + "C ");
lcd.setCursor(0, 1);
lcd.print("Humi :" + String(h) + "% ");
Serial.println("Suhu : " + String(t) + "°C");
Serial.println("Humidity : " + String(h) + " %");
Serial.println("==============");
}
void setup() {
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.backlight();
sugeng();
pin();
}
void loop() {
baca();
}