CrowdGlow: GPS and Bluetooth Festival Wearable for Finding Friends in Crowds
by LoreVANDENBREMPT in Circuits > Raspberry Pi
37 Views, 0 Favorites, 0 Comments
CrowdGlow: GPS and Bluetooth Festival Wearable for Finding Friends in Crowds
What is CrowdGlow?
Photo to be added: the finished wristband glowing green on a wrist (main image)
CrowdGlow is a smart LED wristband with a website that helps a group of friends find each other in a busy crowd, like at a festival, concert or carnival. It also works as a little safety tool.
You pick a friend on your wristband and the LED ring shows how close they are: red when they are far, orange when you get closer, and green when you are together. The small screen shows the exact distance. One press on the SOS button makes everyone’s wristband buzz and shows an alarm on the website – handy when the phone network is overloaded:
How does it work?
Photo to be added: the block diagram (the wristband on one side, the Raspberry Pi on the other)
CrowdGlow has two parts that talk to each other over Bluetooth:
- The wristband – a small board with a built-in screen that carries the GPS, the microphone, the LED ring, the buzzer and the SOS button.
- The Raspberry Pi – the “brain”. It receives the data from the wristbands, saves it in a database and runs the website.
In short: the wristband sends its location and SOS to the Raspberry Pi, and the Pi sends back how far away your chosen friend is.
Supplies
What you need
Photo to be added: all the parts laid out and labelled
Step 1: Bill of Materials
Before starting the project, gather all required components.
Electronics
- LilyGO TTGO T-Display ESP32
- NEO-6M GPS Module
- NeoPixel Ring (12 LEDs)
- Sound Sensor
- Vibration Motor
- 2N2222 Transistor
- 1N4007 Diode
- 1kΩ Resistor
- SOS Push Button
- Menu Push Button
- RFID Tag
- Raspberry Pi 5
- LiPo Battery
Tools
- Arduino IDE
- Visual Studio Code
- Raspberry Pi OS
- Fritzing
- Multimeter
- Soldering Iron
- 3D Printer
System Architecture
CrowdGlow consists of three major components:
Wristband
The wearable device collects location and sensor information and provides feedback to the user.
Raspberry Pi
The Raspberry Pi receives data through Bluetooth, stores information in the database and hosts the web application.
Website
The responsive website visualizes the collected information and allows users to manage their groups.
System Flow:
Wristband → Bluetooth → Raspberry Pi → MariaDB → Website
Photo to add:
- Block diagram showing system architecture.
Downloads
Database Design
The database stores all information required by the platform.
Users
Stores user information and RFID identifiers.
Fields:
- id
- name
- rfid_uid
Groups
Stores friend groups.
Fields:
- id
- group_name
Locations
Stores GPS positions.
Fields:
- id
- user_id
- latitude
- longitude
- timestamp
SOS Events
Stores emergency alerts.
Fields:
- id
- sender_id
- status
- timestamp
Photo to add:
- ERD diagram.
Designing the Wristband
The wristband was designed specifically for festival use.
Design requirements:
- Comfortable to wear
- Lightweight
- Easily visible LEDs
- Accessible buttons
- Space for battery
- Space for GPS antenna
The enclosure was designed in 3D software before being printed.
Photo to add:
- Initial sketches.
- 3D model render.
Wiring the GPS Module
The GPS module is responsible for determining the user's location.
Connections:
GPS TX → GPIO17
GPS RX → GPIO22
GPS VCC → 3.3V
GPS GND → GND
After connecting the module, upload a GPS test sketch and verify that coordinates are received through the Serial Monitor.
Photo to add:
- GPS wiring.
: Wiring the Sound Sensor
The sound sensor measures ambient noise levels.
Connections:
OUT → GPIO36
VCC → 3.3V
GND → GND
The sensor is used to detect loud festival environments and can later trigger visual effects.
Photo to add:
- Sound sensor connected to ESP32.
Wiring the NeoPixel Ring
The NeoPixel ring provides visual feedback.
Connections:
DIN → GPIO33
5V → 5V
GND → GND
The LEDs indicate distance to friends:
- Red = far away
- Orange = getting closer
- Green = nearby
Photo to add:
- LED ring connected.
: Wiring the Buttons
Two buttons are used.
SOS Button
GPIO15
Activates emergency mode.
Menu Button
GPIO13
Navigates through screens.
Both buttons use INPUT_PULLUP.
Photo to add:
- Button wiring.
Wiring the Vibration Motor
The vibration motor provides haptic feedback.
Because the motor requires more current than the ESP32 can provide directly, a transistor circuit is used.
Connections:
GPIO26 → 1kΩ resistor → Base of 2N2222
Emitter → GND
Collector → Motor
Motor + → 5V
Diode across motor
Photo to add:
- Motor circuit.
Complete Circuit Assembly
Combine all sensors and actuators into a single circuit.
At this stage, use the Fritzing diagram to verify all connections.
Photo to add:
- Full breadboard setup.
- Fritzing diagram.
Programming the ESP32
Install the required libraries:
- TFT_eSPI
- TinyGPSPlus
- FastLED
- BluetoothSerial
The firmware handles:
- GPS reading
- Bluetooth communication
- Button input
- Display management
- SOS alerts
- Vibration feedback
Upload the firmware through Arduino IDE.
Photo to add:
- Arduino IDE.
Bluetooth Communication
The ESP32 communicates with the Raspberry Pi using Bluetooth.
The wearable periodically sends:
- GPS location
- SOS status
- Sensor data
The Raspberry Pi listens for incoming messages and processes them.
Photo to add:
- Bluetooth pairing.
Raspberry Pi Setup
Install Raspberry Pi OS.
Install:
- Python
- FastAPI
- MariaDB
Configure Bluetooth and verify communication with the wearable.
Photo to add:
- Raspberry Pi setup.
Creating the Database
Import the SQL database.
Verify:
- Users table
- Groups table
- Locations table
- SOS events table
Test database connectivity.
Photo to add:
- Database screenshot.
Building the Website
The website contains:
- Dashboard
- Group Management
- Friend Finder
- SOS Dashboard
- Live Map
Users can monitor group members and manage wristbands.
Photo to add:
- Home page.
RFID Integration
RFID is used to identify users.
When a tag is scanned:
- UID is read.
- User is identified.
- Wristband is linked.
Photo to add:
- RFID scan process.
3D Printing the Enclosure
Print the enclosure using black and red filament.
Recommended settings:
- Layer Height: 0.2 mm
- Infill: 20%
- PLA or PETG
Photo to add:
- Printed parts.
Step 18: Final Assembly
Install:
- TTGO board
- Battery
- GPS
- Wiring
- Buttons
Ensure everything fits securely.
Photo to add:
- Assembly process.
Downloads
Testing the Friend Finder
Step 19: Testing the Friend Finder
Select a friend through the interface.
Walk away from the second wristband.
Verify:
- Red LEDs when far away.
- Orange LEDs when approaching.
- Green LEDs when nearby.
Photo to add:
- Friend finder demonstration.
Testing the SOS Function
Press the SOS button.
Expected result:
- Vibration on all wristbands.
- Website alert.
- Database event recorded.
Photo to add:
- SOS alert on website.
Final Result
The final CrowdGlow prototype successfully combines wearable technology, GPS tracking, Bluetooth communication and web technologies into a single platform.
Features:
- Friend finding
- GPS tracking
- SOS alerts
- RFID identification
- Responsive web dashboard
- Haptic feedback
- LED guidance
Photo to add:
- Final hero image.
Downloads
Here you can find everything you need:
- BOM PDF
- ESP32 Source Code
- Raspberry Pi Source Code
- Database Export
- Fritzing Diagram
- STL Files
https://github.com/howest-mct/2025-2026-projectone-mct-VandenBremptLore.git