An open API service indexing awesome lists of open source software.

https://github.com/maxonxoxo/customlcd

ESP8266-powered Wi-Fi LCD clock with big custom-character digits, NTP-based time sync, 12-hour format, dynamic greetings, and multiple Wi-Fi credential support.
https://github.com/maxonxoxo/customlcd

12-hour-format custom-characters esp8266 internet-clock iot lcd lcd-display nodemcu ntp-clock wifi-clock

Last synced: 2 months ago
JSON representation

ESP8266-powered Wi-Fi LCD clock with big custom-character digits, NTP-based time sync, 12-hour format, dynamic greetings, and multiple Wi-Fi credential support.

Awesome Lists containing this project

README

          

```
___ ___ ___ __ _______ _ _ __ _________ _______
| \/ | / _ \ \ \ / / _ | \ | |\ \ / / _ \ \ / / _ |
| . . |/ /_\ \ \ V /| | | | \| | \ V /| | | |\ V /| | | |
| |\/| || _ | / \| | | | . ` | / \| | | |/ \| | | |
| | | || | | |/ /^\ \ \_/ / |\ |/ /^\ \ \_/ / /^\ \ \_/ /
\_| |_/\_| |_/\/ \/\___/\_| \_/\/ \/\___/\/ \/\___/

```

# ESP8266 LCD Clock (Wi-Fi + NTP)

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**

![lcd2](https://github.com/user-attachments/assets/0217db36-2466-49df-b1bf-2aa55778d2b4)
![lcd](https://github.com/user-attachments/assets/1a481b98-79e7-4f9b-aa1b-20703cc2c927)
circuit-diagram (9)

---

## ✨ Features
- 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.

---

## πŸ›  Hardware Required
- **ESP8266 NodeMCU**
- **I2C LCD Display** (20x4 recommended)
- USB cable & power supply
- Internet access

---

## πŸ“¦ Libraries Required
Install these libraries via Arduino IDE’s **Library Manager**:
- `ESP8266WiFi.h`
- `NTPClient.h`
- `WiFiUdp.h`
- `Wire.h`
- `LiquidCrystal_I2C.h`

---

## ⚑ How It Works
1. ESP8266 tries to connect to one of the stored Wi-Fi credentials.
2. Fetches time from NTP server (`pool.ntp.org`) with India time offset.
3. Displays the time in big digits on the LCD.
4. Shows a greeting message based on the hour of the day.
5. Refreshes every second for real-time updates.

---

## πŸ”§ Setup
1. Clone the repository:
```bash
git clone https://github.com/MaxonXOXO/CustomLCD.git
```
2. Open the `.ino` file in Arduino IDE.
3. Replace Wi-Fi credentials in the code:
```cpp
#define WIFI_SSID_1 "YourFirstSSID"
#define WIFI_PASSWORD_1 "YourFirstPassword"
```
4. Upload the code to your ESP8266.
5. Connect your I2C LCD to the correct pins and power up.

---

## πŸ“· Example Output
```
Good Morning
08:45 AM
```

---

## πŸ“œ License
This project is licensed under the MIT License β€” feel free to modify and share.

---

**Made with ❀️ by MAXONXOXO**!