___ ___ ___ __ _______ _ _ __ _________ _______
| \/ | / _ \ \ \ / / _ | \ | |\ \ / / _ \ \ / / _ |
| . . |/ /_\ \ \ V /| | | | \| | \ V /| | | |\ V /| | | |
| |\/| || _ | / \| | | | . ` | / \| | | |/ \| | | |
| | | || | | |/ /^\ \ \_/ / |\ |/ /^\ \ \_/ / /^\ \ \_/ /
\_| |_/\_| |_/\/ \/\___/\_| \_/\/ \/\___/\/ \/\___/
This project is a custom-character big digit LCD clock using an ESP8266 NodeMCU with I2C LCD.
The time is fetched from the internet via NTP and automatically adjusted for India Standard Time (UTC+5:30).
It also supports:
- 12-hour format with AM/PM
- Custom greetings based on time of day
- Multiple Wi-Fi credentials for reliable connection
- Large custom-digit display using LCD’s CGRAM.
- Time updates from NTP every minute.
- Greets user with:
Good Morning
(6 AM to 12 PM)Good Afternoon
(12 PM to 10 PM)Good Night
(10 PM to 6 AM)
- Multiple stored Wi-Fi credentials — automatically connects to first available.
- Neatly arranged clock layout so AM/PM fits perfectly.
- ESP8266 NodeMCU
- I2C LCD Display (20x4 recommended)
- USB cable & power supply
- Internet access
Install these libraries via Arduino IDE’s Library Manager:
ESP8266WiFi.h
NTPClient.h
WiFiUdp.h
Wire.h
LiquidCrystal_I2C.h
- ESP8266 tries to connect to one of the stored Wi-Fi credentials.
- Fetches time from NTP server (
pool.ntp.org
) with India time offset. - Displays the time in big digits on the LCD.
- Shows a greeting message based on the hour of the day.
- Refreshes every second for real-time updates.
- Clone the repository:
git clone https://github.com/MaxonXOXO/CustomLCD.git
- Open the
.ino
file in Arduino IDE. - Replace Wi-Fi credentials in the code:
#define WIFI_SSID_1 "YourFirstSSID" #define WIFI_PASSWORD_1 "YourFirstPassword"
- Upload the code to your ESP8266.
- Connect your I2C LCD to the correct pins and power up.
Good Morning
08:45 AM
This project is licensed under the MIT License — feel free to modify and share.
Made with ❤️ by MAXONXOXO!