Skip to content

desiFish/ESP32-GPS-Clock-and-Weather-Station-V1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 ESP32 GPS Clock & Weather Station

License ESP32 Arduino

Status Issues

ESP32 GPS Clock & Weather Station is an open-source project that combines an ESP32 microcontroller with a GPS receiver and environmental sensors to create a satellite-synchronized digital clock and weather monitor. It displays precise time, temperature, humidity, and atmospheric data, making it ideal for DIY electronics enthusiasts, Arduino/ESP32 hobbyists, and IoT developers who need reliable, real-time information. With built-in support for auto-brightness control, OTA updates, and expandable hardware, this project works as both a GPS-based timekeeping alternative to NTP and a compact home weather station.πŸ›°οΈ


⚠️ Another Version Available ⚠️

A different version of this project with physical buttons for better device configuration is available at:
ESP32-GPS-CLOCK-V2


✨ Features

πŸ•’ Time GPS-synchronized precise timekeeping
🌑️ Environment Temperature & humidity monitoring
πŸ”† Display Auto-brightness & power saving
πŸ“± Connectivity WiFi with OTA updates

🌟 Project Highlights

⚑ Fast GPS Lock πŸŒ™ Auto Brightness πŸ”„ OTA Updates
πŸ“± WiFi Manager πŸ”‹ Battery Backup 🌑️ Environment Monitor

πŸ› οΈ Hardware Requirements

Core Components πŸ“‹
Component Purpose Notes
ESP32 devkit v1 🧠 Controller DOIT version recommended
BH1750 πŸ’‘ Light sensor IΒ²C interface
BME280 🌑️ Environment Temperature/Humidity
GPS Neo 6m πŸ“‘ GPS receiver UART interface
ST7920 LCD πŸ–₯️ Display 128x64 pixels
Buzzer πŸ”Š Alerts Active buzzer
Optional Components πŸ”§
  • πŸ”‹ LiFePO4 AAA 80mAh (GPS backup)
  • ⚑ TP5000 charging circuit
  • πŸ”Œ BMS with IN4007 diode
  • πŸ› οΈ Prototyping materials
Required Libraries πŸ“š
Library Source Notes
ASyncTCP ESP32Async Latest version
ESPAsyncWebServer ESP32Async Latest version

ℹ️ Note: We use the libraries from ESP32Async repository as they are regularly maintained and updated.

Initial Setup and Updates πŸš€
Step Instructions Notes
1. Initial Upload Upload via USB/Serial first time Required for initial flash
2. LittleFS Upload Generate & Upload HTML binaries For web interface files
3. OTA Updates Enable ElegantOTA updates For wireless updates

ℹ️ Note: After initial USB upload, all subsequent updates can be done wirelessly via OTA.

🎯 Key Features Explained

  • πŸ•’ Precise Timekeeping: GPS-synchronized time with battery backup
  • 🌑️ Environmental Monitoring: Temperature and humidity tracking
  • πŸ“± Smart Connectivity: WiFi enabled with web configuration
  • πŸ”† Adaptive Display: Auto-brightness with power saving

⚠️ Important Notice

❌ DO NOT USE AHT25 SENSOR!
Due to significant accuracy issues, we recommend using BME280/BMP280/TMP117 instead.

πŸ”‹ GPS Battery Modification

⚠️ Known Issue with GPS Module's Internal Battery

The NEO-6M GPS modules often come with problematic internal rechargeable batteries that:

  • Are frequently dead on arrival
  • Fail to hold charge properly
  • Only last 15-20 minutes when disconnected
  • Cannot be reliably recharged

πŸ› οΈ Solution Implemented

To resolve this, I've made the following modifications:

  • Removed the internal battery and charging diode
  • Installed a LiFePO4 battery (AAA size)
  • Added TP5000 charging circuit for reliable charging
  • Implemented BMS for deep discharge protection
  • Added diode to drop voltage to 3V for GPS backup pin

πŸ’‘ User Options

You have two choices:
  1. Keep Original Battery:
    • Suitable if clock remains powered most of the time
    • No modifications needed
  2. Modify Battery (Recommended):
    • Better for frequent power cycles
    • Eliminates 5-10 minute GPS lock delay on cold starts
    • More reliable long-term solution

πŸ“Š Schematics

πŸ‘€ Circuit Diagram
GPS Clock Schematic

ESP32 GPS Clock Circuit Diagram

πŸ“ Format High-resolution PNG
πŸ” Zoom Click image to enlarge
πŸ’Ύ Download Full Resolution

πŸ“Έ Gallery

esp32-gps-clock Internal Components

Internal Components πŸ”§

esp32-gps-clock PVC Case

PVC Case 🎨

esp32-gps-clock Front View

Front View πŸ“±

esp32-gps-clock PCB Layout

PCB Layout πŸ”Œ

esp32-gps-clock Internal View 2

Internal View 2 πŸ”Œ

πŸ“œ License

GNU General Public License v3.0

βœ… Permissions

  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use

⚠️ Conditions

  • License and copyright notice: Include the original license and copyright
  • State changes: Document all modifications
  • Disclose source: Make source code available
  • Same license: Use the same license for derivatives

❌ Limitations

  • No liability
  • No warranty

🀝 Contributing

🍴 Fork πŸ”§ Code πŸ“€ Push πŸ“« PR

πŸ“ž Support

If this project helps you, please consider:

⭐ Giving it a star
πŸ› Reporting issues
πŸ’‘ Suggesting improvements
🀝 Contributing code

🎨 Credits


Made with ❀️

Stars