Skip to content

Latest commit

 

History

History
247 lines (212 loc) · 10.2 KB

README.md

File metadata and controls

247 lines (212 loc) · 10.2 KB

🌟 ESP32-GPS-Clock-V2 ⏰

A smart GPS Clock with temperature, humidity, and light sensing capabilities

GitHub license GitHub release (latest by date) GitHub issues GitHub stars GitHub forks GitHub last commit GitHub repo size

Read ⚠️ Important Notice below gallery section

🛠️ Hardware Components

📡 Core Components

  1. ESP32 Development Board ESP32

    • Dual-core processor up to 240MHz
    • Integrated Wi-Fi and Bluetooth
    • Operating voltage: 3.3V
    • Tested on: ESP32-Devkit-V1
  2. BH1750 Light Sensor 🌞

    • 16-bit digital output
    • Range: 1-65535 lux
    • Power: 2.4-3.6V
    • I²C interface
  3. GPS Module (NEO-6M) 🛰️

    • Update rate: 1-5 Hz
    • Position accuracy: 2.5m
    • Cold start: 27s typical
    • Hot start: 1s typical
    • Operating voltage: 3.0-3.6V
  4. ST7920 LCD Display 📺

    • Resolution: 128x64 pixels
    • 5V logic level
    • Parallel/Serial interface
  5. Buzzer Module 🔊

    • Active buzzer
    • Operating voltage: 3.3-5V
    • Frequency: ~2300Hz
    • Sound output: >85dB
  6. Push Buttons x3 ⚡

    • Tactile momentary switches
    • Life cycle: 100,000 clicks
    • With caps for better feel
    • Two for Menu navigation, one for reset
  7. 10K Potentiometer

    • For contrast adjustment

🔋 Optional Components (Battery Backup)

Power Management

  1. LiFePO4 Battery

    • Capacity: 80mAh (AAA size)
    • Nominal voltage: 3.2V
    • Cycle life: >2000 cycles
    • Temperature range: -20°C to 60°C
    • Perfect for GPS backup
  2. TP5000 Charging Circuit

    • Input voltage: 4.5-28V
    • Charging current: 0.5-2A
    • Efficiency: >90%
    • Built-in protection features
    • Auto-detect battery type
  3. Battery Protection 🛡️

    • BMS for single cell
    • Using for Over-discharge protection
  4. Additional Components 🔧

    • IN4007 diode (1A, 1000V)
    • JST connectors
    • Prototyping board
    • Silicone wires (better) or PVC Wires
    • Heat shrink tubing

💡 Compatibility Notes

  • All I²C devices operate at 3.3V logic
  • Power supply should provide at least 500mA
  • USB connection recommended for programming
  • External antenna optional for GPS

🏗️ Construction Guide

📦 Enclosure Preparation

  • Used a standard PVC electrical junction box (IP55 rated for weather resistance)
    • Size: Approximately 150mm x 100mm x 70mm
    • Cost-effective alternative to 3D printing
    • Naturally resistant to moisture and dust
    • Available at most hardware stores

🛠️ Tools Required

  • Drill machine with metal cutting bits (for holes)
  • Drill machine with metal cutting attachment that looks like CD (for rectangular cuts)
  • Hot glue gun
  • Wire strippers
  • Soldering iron
  • Basic hand tools (screwdrivers, pliers)
  • Safety equipment (goggles, gloves)

🔨 Assembly Steps

  1. Display Window Creation 🪟

    • Mark display dimensions on box
    • Drill corner pilot holes
    • Use metal cutting bits for rough cut
    • File edges smooth for perfect fit
    • Pro tip: Use masking tape to prevent scratches
  2. Light Sensor Window 💡

    • Create small 10mm opening for BH1750
    • Use clear epoxy or hot glue to seal
    • Ensure sensor faces directly outward
    • Keep sealed but transparent for accuracy
  3. Component Mounting 🔌

    • Mount display using hot glue at corners
    • Create standoffs for ESP32 board
    • Position GPS antenna near top for best reception

💡 Pro Tips

  • Ensure proper ventilation while cutting/drilling PVC
  • Double-check measurements before cutting
  • Test all components before final assembly
  • Label all wires for future maintenance
  • Add small ventilation holes for the sensor
  • Consider magnetic mount options
  • Keep spare wire lengths for modifications
  • Document your build with photos

🚀 Upcoming Features

Check Issues

📷 Pictures, Schematics and other stuff

Schematics

Schematics

front-view

Front View

front-view

Front View

inside

Inside View

display-connections

Display Connections

bme280

BME280 Sensor

testing-phase

Testing Phase

esp32_with_connections

ESP32 with Connections

circuit-connections

Circuit Connections

cutting-display-window

Cutting Display Window

display-in-plastic-frame

Display in Plastic Frame

fullview

Full View

⚠️ 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

📜 License

GNU General Public License v3.0

This project is protected under the GNU General Public License v3.0. This means:

  • ✅ Commercial use is permitted
  • ✅ Modification is permitted
  • ✅ Distribution is permitted
  • ✅ Private use is permitted
  • ❗ License and copyright notice must be included
  • ❗ Source code must be made available when distributing
  • ❗ Changes must be documented
  • ❗ Same license must be used

View full license


Made with ❤️ for the IoT Community

ESP32 Ready GPS Enabled Open Source
Watchers