An IoT-based wearable emergency alert system. Press one button โ ESP32 fetches your live GPS coordinates and sends them as a clickable Google Maps link via SMS to predefined contacts. No smartphone. No internet. No app.
SOS in <2s, SMS delivery in 8โ12s over 2G GSM โ no smartphone or internet required. Resolved SIM800L 2A current spike with AMS1117 + 1000ยตF.
๐ Open Website
| Metric | Result |
|---|---|
| GPS Accuracy (outdoor, open sky) | 2.5โ5 meters |
| SMS Delivery Time | 8โ12 seconds (good network) |
| SOS Response Time | < 2 seconds (interrupt-driven) |
| Battery Life (GPS + GSM active) | ~6 hours continuous |
| Cancel Window After SOS Press | 10 seconds |
| Networks Required | 2G GSM only โ no internet needed |
| Layer | Component | Role |
|---|---|---|
| Input | SOS Push Button | Interrupt-driven trigger (GPIO4, active LOW) |
| Location | Neo-6M GPS | NMEA sentence parsing via TinyGPS++ |
| Processing | ESP32 / Arduino | Coordinate formatting, SMS message assembly |
| Communication | SIM800L GSM | AT command SMS transmission to contacts |
| Power | Li-ion + AMS1117 | Regulated 4V supply for GSM stability |
- ๐จ One-click SOS emergency alert
- ๐ Real-time GPS location tracking (2.5โ5m accuracy)
- ๐ฉ SMS alert with clickable Google Maps link
- โฑ๏ธ 10-second cancel window to avoid false triggers
- ๐ก Works on 2G GSM โ no internet required
- ๐ ~6 hours battery life
- ๐ป Web dashboard via Bluetooth (ESP32 version)
- ๐ Interrupt-driven firmware for instant response
| Component | Quantity | Purpose |
|---|---|---|
| ESP32-WROOM-32 | 1 | Main MCU โ Wi-Fi, Bluetooth, GPIO |
| SIM800L GSM Module | 1 | Sends SMS via 2G network |
| Neo-6M GPS Module | 1 | Real-time latitude/longitude |
| SOS Push Button | 1 | Emergency trigger (active LOW, pull-up) |
| Cancel Button | 1 | Cancel SOS within 10-second window |
| Li-ion Battery (3.7V) | 1 | Portable power |
| AMS1117 Voltage Regulator | 1 | Steps 5V โ 4V for SIM800L stability |
| Capacitor (1000ยตF) | 1 | Buffers GSM current spikes |
| Perfboard | 1 | Final assembly |
| ESP32 Pin | Connected To |
|---|---|
| GPIO16 (RX2) | GPS TX (Neo-6M) |
| GPIO17 (TX2) | GPS RX (Neo-6M) |
| GPIO4 | SOS Button (INPUT_PULLUP, active LOW) |
| Arduino Pin | Connected To |
|---|---|
| D2 | SOS Button (INPUT_PULLUP) |
| D3 | Cancel Button (INPUT_PULLUP) |
| D7 (RX) | GSM TX (SIM800L) |
| D8 (TX) | GSM RX (SIM800L) |
| D4 (RX) | GPS TX (Neo-6M) |
| D5 (TX) | GPS RX (Neo-6M) |
Two firmware variants are included:
sim800l-code/ โ Arduino + SIM800L (SMS version)
- Interrupt-driven SOS button with 10-second cancel window
- Sends Google Maps link via SMS using AT commands
- Uses
TinyGPS++for NMEA sentence parsing - Handles GPS cold start with cached last-known-location fallback
esp32-code/ โ ESP32 + Bluetooth (web dashboard version)
- Broadcasts GPS coordinates every 10 seconds via Bluetooth Classic
- On SOS press: sends
SOS,lat,lngto paired browser - 50ms hardware debounce on SOS button
- Uses
BluetoothSerial+ Hardware UART2 for GPS
- Open
sim800l-code/in Arduino IDE - Edit
phone_number[]with your emergency contact number - Select board: Arduino Uno/Nano
- Upload via Arduino IDE
- Open
esp32-code/in Arduino IDE - Select board: ESP32 Dev Module
- Upload via Arduino IDE
- Open
index.htmlin Chrome - Click Connect ESP32 โ pair with
WearableSOS - Add emergency contacts โ live location appears on map
- On power-up, ESP32 initialises GPS and GSM modules
- GPS streams NMEA sentences continuously; ESP32 caches latest valid fix
- SOS button pressed โ GPIO interrupt fires instantly
- 10-second cancel window starts (press cancel button to abort)
- After 10 seconds without cancel โ ESP32 formats SMS:
"SOS ALERT! Location: https://maps.google.com/?q=lat,lng" - SIM800L sends SMS via AT commands to predefined contact
- Recipient clicks Google Maps link โ sees exact location
UART conflict between GPS and GSM modules
Both Neo-6M and SIM800L use UART. Running both simultaneously on the same bus caused
data corruption and garbled AT command responses. Solved using SoftwareSerial with
carefully timed sequential reads โ GPS parses continuously in the main loop, GSM
transmits only on SOS trigger.
SIM800L voltage instability The module requires exactly 4.0V ยฑ0.2V but draws ~2A peaks during SMS transmission. These spikes caused ESP32 to reset mid-transmission. Fixed by adding an AMS1117 voltage regulator and a 1000ยตF capacitor on the SIM800L power line to buffer the current surge.
GPS cold start delay First satellite fix after power-on takes 30โ60 seconds outdoors. If SOS is triggered before a fresh fix is acquired, the system falls back to the last cached coordinates so the SMS still sends with a location rather than failing silently.
Button debouncing false triggers Mechanical switch contact bounce generated multiple interrupt triggers on a single press. Fixed with both hardware (pull-up resistor keeping pin HIGH at rest) and software (50ms debounce delay before re-arming the interrupt).
Indoor GPS accuracy degradation GPS accuracy drops to 10โ15 metre error range indoors due to signal attenuation. Partially mitigated with an external patch antenna. Full indoor accuracy would require supplementary Wi-Fi or BLE positioning โ noted as future scope.
women-safety-wearable-device/
โ
โโโ esp32-code/
โ โโโ esp32_bluetooth.ino โ ESP32 Bluetooth + GPS firmware
โ
โโโ sim800l-code/
โ โโโ sim800l_gsm.ino โ Arduino + SIM800L SMS firmware
โ
โโโ images/ โ Hardware photos
โ
โโโ index.html โ Web dashboard (Bluetooth + Mapbox)
โโโ script.js
โโโ style.css
โโโ README.md
- Miniaturize onto custom PCB โ wristband/pendant form factor
- Accelerometer-based automatic fall detection (no button press needed)
- Firebase/Blynk cloud integration for live tracking dashboard
- Two-way voice call via SIM800L
- Multi-contact SMS blast
- Panic buzzer + LED confirmation on SOS trigger
- ML-based distress movement pattern detection
| Name | GitHub |
|---|---|
| Diya Sharma | @diyasharma22 |
| Eipshita Basuli | @riiverse |
| Richa Datta | @richaaaa2005 |
Institution: VIT Bhopal University โ B.Tech ECE (AI & Cybernetics)
MIT License โ Open for learning, academic reference, and innovation.




