#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); //ถ้าจอไม่แสดงผล ให้ลองเปลี่ยน 0x3F เป็น 0x27
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {24, 22, 23, 25};
byte colPins[COLS] = { 27, 29, 31, 33};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
char key,buff;
void setup() {
Serial.begin(9600);
lcd.init(); //lcd.begin();
lcd.backlight(); // เปิดไฟ backlight
lcd.setCursor(5, 0);
lcd.print("Smart Farm");
lcd.setCursor(4, 1);
lcd.print("Control Unit");
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
if (key == 'A')
{
EEPROM.write(1, buff);
Serial.println("Write key to EEPROM(1).");
} else if (key == 'B'){
EEPROM.write(2, buff);
Serial.println("Write key to EEPROM(2).");
} else if (key == 'C'){
char X = EEPROM.read(1);
Serial.print("EEPROM(1) is");
Serial.println(X);
} else if (key == 'D'){
char X = EEPROM.read(2);
Serial.print("EEPROM(2) is");
Serial.println(X);
} else {
buff = key;
Serial.println(key);
}
}
}