“Because every step should be a safe step.”
SafeStep is an IoT-powered smart assistance and tracking system designed to help locate visually impaired individuals in real-time.
It combines ESP32, ultrasonic sensors, GPS, Supabase, and a web dashboard to enable live location tracking, obstacle alerts, and emergency monitoring.
🌐 Live Dashboard: https://safestep.thenicedev.xyz
📘 Detailed Documentation: SafeStep on Notion
SafeStep is a smart wearable device for blind or visually impaired users that:
- Detects nearby obstacles using an ultrasonic sensor and buzzer alerts.
- Tracks real-time GPS coordinates using TinyGPS++.
- Sends live data securely to Supabase via HTTPS.
- Broadcasts updates to the web dashboard using WebSockets.
- Allows caregivers or family members to locate the user instantly via the dashboard.
┌────────────────────┐
│ SafeStep Device │
│ (ESP32 + Sensors) │
└────────────────────┘
│
│ HTTPS (JSON)
│
▼
┌─────────────────────┐
│ Supabase DB │
│ (Data + Auth + API)│
└─────────────────────┘
│
│ WebSocket
│
▼
┌────────────────────────────────┐
│ Web Dashboard │
│ https://safestep.thenicedev.xyz│
└────────────────────────────────┘
| Component | Description |
|---|---|
| ESP32 NodeMCU (DevKit Wroom-32) | Core microcontroller with Wi-Fi |
| RC522 RFID (optional) | For authentication or attendance tracking |
| HC-SR04 Ultrasonic Sensor | Detects obstacles and distance |
| Buzzer | Provides proximity audio feedback |
| I2C LCD Display | Displays system status |
| GPS Module (NEO-6M or similar) | Provides live location data |
| TP4056 Module | Battery charging and protection |
| 18650 Li-ion Battery (x1–3) | Portable power source |
| Layer | Technology |
|---|---|
| Firmware | Arduino C++ on ESP32 |
| Backend | Supabase (PostgreSQL + REST API + Realtime) |
| Frontend | Next.js dashboard |
| Realtime Updates | Supabase Realtime via WebSockets |
| Hosting | Vercel (Frontend), Supabase Cloud (Backend) |
-
✅ Ultrasonic Distance Detection Buzzer beeps at different rates depending on how close obstacles are.
-
📡 GPS Tracking Sends latitude, longitude, speed, and timestamp to Supabase.
-
🔒 Secure HTTPS Uploads Uses
WiFiClientSecureand Supabase REST API for encrypted data transmission. -
🌍 Realtime Web Dashboard Displays user’s last known location and status via WebSockets.
-
🔋 Battery Powered Supports single or multiple 18650 cells with TP4056 charging.
- Distance measured via
HC-SR04 - Buzzer feedback based on proximity
- GPS handled using
TinyGPS++ - Secure POST to Supabase using
HTTPClient - Data serialized with
ArduinoJson
-
Open the
/firmware/SafeStep.inofile in Arduino IDE or PlatformIO. -
Select ESP32 Dev Module.
-
Install dependencies:
TinyGPSPlusArduinoJsonWiFiHTTPClient
-
Update your WiFi credentials and Supabase key in the code.
-
Upload the sketch.
- Power via USB or 18650 battery through TP4056.
- On boot, it connects automatically to Wi-Fi and starts sending data.
- Visit SafeStep Dashboard to view live tracking and status.
- The data updates in real-time via Supabase Realtime API.
{
"latitude": 23.7808875,
"longitude": 90.2792371,
"altitude": 7.8,
"speed": 2.3,
"course": 175.6,
"satellites": 9,
"hdop": 0.9,
"gps_date": "2025-10-07",
"gps_time": "18:24:52"
}SafeStep aims to provide a low-cost, scalable solution to assist visually impaired individuals by enhancing mobility safety and location awareness.
This project combines IoT innovation and real-time cloud integration to make life easier and safer — one step at a time.
👨💻 Sarker Ayon Student at Rajuk Uttara Model College 🌐 thenicedev.xyz
This project is licensed under the MIT License — feel free to fork, contribute, and innovate.
SafeStep – A Smarter Path for the Visually Impaired.