#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#define cong_doan_num 5
bool dk1 = false;
bool dk2 = false;
String msg;
bool dk_setup = false;
char key = 0;
String ma_cd_set;
String ma_cd[cong_doan_num];
int sanluong[cong_doan_num];
unsigned long time_wifi_dis;
unsigned long num_wifi_dis = 2000;
// Khai báo định dạng LCD
LiquidCrystal_I2C lcd(0x27, 16, 2); // Địa chỉ I2C và kích thước LCD (16x2)
const byte ROWS = 4; // Số hàng của keypad
const byte COLS = 4; // Số cột của keypad
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {13, 23, 19, 18}; // Chân hàng kết nối với ESP32
byte colPins[COLS] = {5, 4, 2, 15}; // Chân cột kết nối với ESP32
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const char password[] = "1234"; // Mật khẩu mặc định
char enteredPassword[5]; // Mật khẩu người dùng nhập
bool isLocked = true; // Trạng thái khóa
void setup() {
lcd.init(); // Khởi tạo LCD
lcd.backlight(); // Bật đèn nền LCD
lcd.setCursor(1, 0); // Đặt con trỏ văn bản ở hàng đầu tiên
}
void loop() {
show_sl();
if (millis() - time_wifi_dis > num_wifi_dis) {
time_wifi_dis = millis();
sanluong[0]=sanluong[0] + 1;
}
// key = keypad.getKey(); // Đọc phím được nhấn trên keypad
// if (key) {
// if (key == 'A') {
// // Người dùng nhấn phím "A" để nhập mật khẩu
// lcd.clear();
// lcd.setCursor(1, 0);
// lcd.print("Enter password:");
// lcd.setCursor(1, 0);
// } else if (key == 'B') {
// // Người dùng nhấn ph
// lcd.clear();
// lcd.print("Password cleared");
// delay(1000);
// lcd.clear();
// lcd.print("1234:");
// } else if (key == 'C') {
// // Người dùng nhấn phím "C" để khôi phục mật khẩu
// ;
// lcd.clear();
// lcd.print("Password restored");
// delay(1000);
// lcd.clear();
// lcd.print("1234:");
// } else if (key == 'D') {
// // Người dùng nhấn phím "D" để mở khóa nếu đã nhập đúng mật khẩu
// if (checkPassword()) {
// unlock();
// lcd.clear();
// lcd.print("Unlocked");
// delay(1000);
// lcd.clear();
// lcd.print("mo khoa:");
// }
// } else {
// // Người dùng nhập ký tự mật khẩu
// if (enteredPassword[0] == '\0') {
// lcd.clear();
// lcd.print("Enter password:");
// }
// if (strlen(enteredPassword) < 4) {
// enteredPassword[strlen(enteredPassword)] = key;
// lcd.print('*');
// }
// }
// }
}
void resetPassword() {
memset(enteredPassword, 0, sizeof(enteredPassword)); // Xóa mật khẩu đang nhập
}
bool checkPassword() {
if (strcmp(enteredPassword, password) == 0) {
return true;
} else {
return false;
}
}
void unlock() {
isLocked = false;
}