#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define BUTTON1 13
#define BUTTON2 12
#define BUTTON3 14
#define BUZZER 26
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Karakter custom: hati (❤)
byte heartChar[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};
const char* ssid = "Wokwi-GUEST";
const char* password = "";
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
// Buat karakter hati di slot 0
lcd.createChar(0, heartChar);
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
pinMode(BUTTON3, INPUT_PULLUP);
pinMode(BUZZER, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("Sim Fingerprint");
WiFi.begin(ssid, password);
lcd.setCursor(0, 1);
lcd.print("WiFi...");
delay(2000);
lcd.clear();
}
void loop() {
if (digitalRead(BUTTON1) == LOW) {
handleFingerprint(1);
} else if (digitalRead(BUTTON2) == LOW) {
handleFingerprint(2);
} else if (digitalRead(BUTTON3) == LOW) {
handleFingerprint(3);
}
delay(200);
}
void handleFingerprint(int id) {
lcd.clear();
if (id == 1) {
lcd.setCursor(0, 0);
lcd.print("HELLO DIAN,TIDAK");
} else if (id == 2) {
lcd.setCursor(0, 0);
lcd.print("HELLO FRANKLIMIT");
} else {
lcd.setCursor(0, 0);
lcd.print("HELLO UNKNOWN");
}
lcd.setCursor(2, 1); // rata tengah untuk "WELCOME"
lcd.print("WELCOME ");
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(0));
digitalWrite(BUZZER, HIGH);
delay(150);
digitalWrite(BUZZER, LOW);
delay(3000);
lcd.clear();
}