This repository contains the complete source code and system description for an interactive energy-generating bicycle that monitors, transmits, and visualizes real-time electrical parameters such as RPM, voltage, current, and power output.
The project integrates multiple hardware components, including:
- π§ Raspberry Pi 4 β acts as the main display unit
- π‘ Two ESP32 microcontrollers β for sensor reading and control logic
- βοΈ Dynamo β generates electricity as the user pedals
- π‘ 120V LED strips β visually indicate energy production via relays
- As the user pedals, the dynamo generates electricity.
- A dedicated ESP32:
- Reads raw sensor data (RPM, voltage, current).
- Scales and processes the values.
- Sends the data via Bluetooth to the Raspberry Pi 4.
- Simultaneously broadcasts the power data over Wi-Fi (MAC-based protocol) to a second ESP32.
- The Raspberry Pi 4:
- Receives the data via Bluetooth.
- Displays real-time metrics on a connected screen using a Python GUI (Tkinter) dashboard.
- The second ESP32:
- Receives power data over Wi-Fi.
- Controls relay modules to turn on/off high-voltage LED strips.
- The number of LEDs turned on increases with the pedaling effort and power output.
- Real-time data visualization:
- π΅ Voltage
- π’ Current
- π RPM
- π Power (W)
- Bluetooth communication for dashboard data
- Wi-Fi-based broadcast to auxiliary control system
- LED feedback system representing physical effort
- Modular and scalable architecture
- Educational and interactive energy awareness system
- Python 3.x
tkinterfor GUI (pre-installed on Raspberry Pi OS)- Serial libraries for ESP32 code (e.g., Arduino framework)
- Bluetooth configuration (for Raspberry Pi)
- Relay modules compatible with 120V LED strips
MartΓn Felipe BermΓΊdez Romero
Student of Electronic Engineering
Universidad Distrital Francisco JosΓ© de Caldas
martimrome13@gmail.com*
mfbermudezr@udistrital.edu.co*
- Data logging to CSV or database
- Web dashboard for remote monitoring
- Energy storage monitoring (e.g., batteries or capacitors)
- Support for multiple bikes or users
