Built to order

BLE Indoor Positioning using ESP32 Beacons

An indoor positioning system that tracks a Bluetooth Low Energy tag across rooms using ESP32 beacons and received-signal-strength (RSSI) trilateration. Fixed beacons broadcast BLE advertisements, an ESP32 gateway measures signal strength from each, and a web dashboard converts the readings into a live position on a floor map. GPS does not work indoors, so this is the practical answer for asset tracking, lab monitoring and smart-building demos — with honest, room-level accuracy rather than centimetre claims.

BLE Indoor Positioning using ESP32 Beacons — project thumbnail preview
More project photos (3)

The problem

GPS stops at the front door: satellite signals are far too weak to penetrate buildings reliably, yet the interesting tracking problems — where is the lab equipment, which room is the patient monitor in, how do visitors move through a museum — all happen indoors. Bluetooth Low Energy beacons are the standard low-cost answer: tiny battery-powered transmitters that broadcast an identifier several times a second, letting any receiver estimate distance from signal strength. This project builds a complete indoor positioning system around the ESP32, which has BLE and Wi-Fi on one chip. Three or more ESP32 beacons are fixed at known positions in the room; an ESP32 gateway scans their advertisements plus the tag's, converts RSSI to distance estimates with a calibrated path-loss model, and publishes the results over MQTT. A web dashboard renders the live position on a floor plan with per-beacon signal bars. The honest engineering lesson is multipath: walls, furniture and human bodies scatter 2.4 GHz signals, so RSSI positioning gives room/zone-level accuracy (design target roughly 2–5 m), not GPS-style precision — and the report measures and documents exactly that.

SYSTEM FLOW

5 components 4 connections

Live flow
Drag to explore
100%
sensorBLE tracked tag

BLE tag carried by the asset; its advertisements are scanned for RSSI like the beacons'.

Follow the working sequence

How it works

  1. Each ESP32 beacon broadcasts BLE advertisements containing its ID at a fixed interval (e.g. 500 ms) from a known, configured position in the room.
  2. The ESP32 gateway scans continuously, recording the RSSI of every advertisement it hears from the beacons and from the tracked tag.
  3. RSSI values pass through a moving-average filter to smooth fast fading, then the calibrated path-loss model converts each to a distance estimate.
  4. Trilateration combines the distance estimates from three or more beacons into a 2D coordinate; with fewer beacons the system falls back to nearest-beacon zone.
  5. The gateway publishes the position fix and raw RSSI over MQTT/Wi-Fi to the dashboard backend.
  6. The web dashboard plots the tag on the floor plan, updates per-beacon signal bars, and logs the track history for the demo.

Tech stack:

  • ESP32 (beacon firmware, gateway scanner) with Arduino framework
  • BLE advertisements (iBeacon/Eddystone-style format)
  • MQTT over Wi-Fi for telemetry
  • Log-distance path-loss model with per-beacon calibration
  • Trilateration in the gateway firmware
  • Web dashboard (HTML/JS with SVG floor plan, MQTT over WebSockets)
Parameter Value
Beacons ESP32 boards, battery-powered, BLE advertisements at configurable interval
Gateway ESP32 scanner + Wi-Fi MQTT publisher
Positioning method RSSI trilateration (log-distance path-loss model, per-beacon calibration)
Accuracy Room/zone-level; design target roughly 2–5 m in a furnished room (environment-dependent)
Update rate Position fix per scan cycle (configurable, typically ~1–2 s)
Connectivity BLE for ranging, Wi-Fi/MQTT for telemetry, WebSocket dashboard
Power Beacons run on batteries (life depends on advertising interval); gateway USB-powered
Dashboard Live floor map, RSSI diagnostics, zone display, track history

Project features

  • [ESP32 BLE beacon firmware] Battery-friendly firmware broadcasting iBeacon/Eddystone-style advertisements with configurable TX power and advertising interval.
  • [RSSI-to-distance engine] A calibrated log-distance path-loss model converts RSSI to distance estimates, with per-beacon calibration constants stored in config.
  • [Trilateration positioning] The gateway combines distance estimates from three or more beacons into a 2D position fix, recomputed on every scan cycle.
  • [MQTT telemetry pipeline] Position fixes and raw RSSI readings publish over MQTT/Wi-Fi, decoupling the embedded side from the dashboard.
  • [Live floor-map dashboard] A web dashboard draws beacons, the estimated tag position and a movement trail on a floor plan, updating in real time.
  • [Zone detection] Named zones (e.g. "Lab A", "Corridor") resolve from the nearest beacon or position fix, so the system answers "which room" even when the exact coordinates wobble.
  • [Signal diagnostics view] Per-beacon RSSI bars, packet counts and last-seen timestamps make multipath and dead zones visible instead of mysterious.
  • [Configurable beacon layout] Beacon coordinates and zone polygons are config-file driven, so the system adapts to any room without firmware changes.

What is included

  • Beacon firmware source code (advertising, TX power and interval configuration)
  • Gateway firmware source code (scanning, filtering, trilateration, MQTT publishing)
  • Web dashboard (floor-map view, diagnostics, zone display)
  • Calibration procedure (measuring path-loss constants in your room, buyer-run)
  • Circuit notes and beacon placement guide
  • Project report PDF (BLE theory, RSSI ranging, trilateration math, measured accuracy)
  • PPT presentation for final review
  • Viva Q&A preparation document (BLE advertising, RSSI vs ToF, multipath, trilateration)

Advantages

  • Battery-friendly ESP32 beacon firmware broadcasts iBeacon/Eddystone-style advertisements with configurable TX power and advertising interval.
  • A calibrated log-distance path-loss model converts RSSI to distance estimates, with per-beacon calibration constants stored in config.
  • The gateway combines distance estimates from three or more beacons into a 2D position fix by trilateration, recomputed on every scan cycle.
  • Position fixes and raw RSSI readings publish over MQTT/Wi-Fi, decoupling the embedded side from the dashboard.
  • The live floor-map dashboard draws beacons, the estimated tag position and a movement trail on a floor plan, updating in real time.
  • Named zones such as Lab A and Corridor resolve from the nearest beacon or position fix, so the system answers which room even when exact coordinates wobble, and a signal diagnostics view shows per-beacon RSSI bars, packet counts and last-seen timestamps.

Disadvantages

  • RSSI positioning is inherently room/zone-level: multipath reflections, furniture and human bodies make 2.4 GHz signal strength noisy, so the design target is roughly 2-5 m and centimetre or sub-metre claims would be dishonest.
  • Accuracy must be calibrated per room, since the path-loss constants depend on the environment, and moving the system to a new room without recalibration degrades results.
  • At least three beacons with good geometry are needed for trilateration; with fewer, or beacons in a straight line, the system degrades to nearest-beacon zone detection.
  • Beacon battery life trades directly against advertising interval and TX power: faster updates mean shorter battery life.
  • The 2.4 GHz band is shared with Wi-Fi, so heavy nearby Wi-Fi traffic can add noise to RSSI readings, and this is a prototype demo, not a safety-critical tracking system.

Limitations & prerequisites

  • RSSI positioning is inherently room/zone-level: multipath reflections, furniture and human bodies make 2.4 GHz signal strength noisy, so centimetre or sub-metre claims would be dishonest — the design target is roughly 2–5 m and the report measures your room's actual error.
  • Accuracy must be calibrated per room: the path-loss constants depend on the environment, and moving the system to a new room without recalibration degrades results.
  • At least three beacons with good geometry are needed for trilateration; with fewer, or beacons in a straight line, the system degrades to nearest-beacon zone detection.
  • Beacon battery life trades directly against advertising interval and TX power: faster updates mean shorter battery life, documented in the power notes.
  • The 2.4 GHz band is shared with Wi-Fi; heavy nearby Wi-Fi traffic can add noise to RSSI readings.
  • This is a prototype positioning demo, not a safety-critical tracking system; it is not suitable for applications where a wrong position has real consequences.

Frequently Asked Questions

Which controller is used?

ESP32 for everything: the beacons (BLE advertising) and the gateway (BLE scanning plus Wi-Fi/MQTT). One chip covers both radios, which keeps the hardware bill small.

How accurate is it really?

Room/zone-level. Expect roughly 2–5 m in a furnished room after calibration — good enough to say which room or area a tag is in. Multipath makes true precision positioning a research problem, not a student-project outcome, and the report is honest about the measured error.

Does it work without Wi-Fi?

The BLE ranging side needs no Wi-Fi, but the live dashboard needs the gateway's MQTT link, which runs over Wi-Fi. Without Wi-Fi you can still log positions to the gateway's serial output.

Can I track multiple tags?

Yes. Each tag advertises a unique ID and the gateway computes a fix per ID; the dashboard renders multiple tracks. More tags mean more scan-cycle load, which the firmware notes cover.

What is actually implemented vs optional?

Implemented: beacon firmware, gateway with trilateration, MQTT pipeline, floor-map dashboard, zone detection, diagnostics. Optional on request: fingerprinting-based positioning, phone-app receiver, cloud logging.

Can the beacons be replaced with off-the-shelf BLE tags?

Yes — any BLE advertiser with a known ID works as a beacon or tag, though TX-power calibration should be redone for the new hardware. Suitable for B.E./B.Tech final-year projects in Electronics, IoT and Embedded Systems.

Components & software requirements
  • ESP32 (beacon firmware, gateway scanner) with Arduino framework
  • BLE advertisements (iBeacon/Eddystone-style format)
  • MQTT over Wi-Fi for telemetry
  • Log-distance path-loss model with per-beacon calibration
  • Trilateration in the gateway firmware
  • Web dashboard (HTML/JS with SVG floor plan, MQTT over WebSockets)
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Beigi & Shah-Mansouri, An Intelligent Indoor Positioning Algorithm Based on Wi-Fi and Bluetooth Low Energy (ESP32 testbed)

Get a quotation