Passive Bluetooth sensing of visitor volume & movement in urban nature — and the question of whether you can trust it.
scroll to begin▼
The problem
Cities want to know how many people use their parks and trails, and how they move through them. But the usual tools — manual counting, cameras, GPS, phone-company data — are expensive, intrusive, or coarse. This study asks whether a pocket-sized Bluetooth sensor can do the job.
$35per Raspberry Pi node
2contrasting sites
BLEpassive, no recording
ICCvs human ground truth
The live feed
What a ping is
A Raspberry Pi with Bluetooth Low Energy passively logs what nearby phones and wearables broadcast — a timestamp, an anonymized address, and a signal strength (RSSI) that stands in for distance. No images, no identities. Switch between the two field sites below — the narrow Trail 6, decoded ping by ping, and the open Jericho Beach, summarized minute by minute — and hover to read any moment.
The rig a Raspberry Pi that only listens
A single-board computer, a Bluetooth Low Energy receiver, and a power bank inside a 3D-printed shell. It transmits nothing — it only listens for the signals devices already broadcast, and writes three columns to disk.
The session, decoded
Where it sits
The place shapes the signal
Two identical rigs, two very different places. The same hardware reads a tight forest trail and an open beach — and the geometry of the space rewrites the signal before a single person is counted.
Two geometries, two signals
Left — the narrow corridor produces brief, spiky bursts of presence; right — the open beach holds a broad, sustained crowd. How well those signals agree with human counts — and where the agreement breaks down — is what the next sections measure.
The gap above is geography as much as hardware. Here is where the two deployments actually sat — and why one funnels while the other disperses. Tap a pin or switch sites.
Where the sensors stood Point Grey, Vancouver
Who passed, who lingered
A barcode of presence
Each row is one device over the session; ticks are detections, the bar its span on site. Most signatures are a quick streak — someone walking through — while a few stretch on: the loiterers, the picnic, the bench.
Device presence over 15 min 58 devices · 283 detections
Dwell time distribution seconds on site
Most devices register a single fleeting detection (passers-by); a long tail lingers up to ~5 minutes.
Following one device RSSI as a proxy for distance
Where to draw the line passer-by vs stay
threshold60 s
Does it count right?
Sensor counts vs human counts
Across 88 fifteen-minute sessions, the sensor's tally is plotted against a human observer's. Points hug the line of perfect agreement in the constrained trail and scatter more on the open beach — but a simple calibration recovers aggregate volume well (R² = 0.793; the paper's pooled model, 0.81).
Sensor vs observed volume per 15-min sessionTrail 6Jericho Beach
Reliability = agreement between the two sensor nodes; validity = sensor vs human. Bands: <.5 poor · .5-.75 moderate · .75-.9 good · >.9 excellent.
Calibration, hands-on raw BLE → people
raw BLE count90
Can it tell direction?
Movement is harder — and depends on the place
Two sensor stations let the system infer direction of travel. In the narrow trail, sensor-derived movement tracks the human count almost perfectly (r = 0.96). On the open beach, where people drift and signals bounce, agreement collapses (r = 0.33) and the sensor over-counts more than two-fold.
Sensor vs field movement per direction · per intervalTrail 6Jericho Beach
Over-counting sensor total ÷ field total
What the sensor sees station-to-station flow
Sensor-detected flows between the two gates' sub-positions (A/B ↔ C/D), summed across all valid intervals.
The full directional matrix Jericho · 8 sub-gate flows
Every detected crossing between the two gates' sub-positions. The near-balance between J1→J2 (427) and J2→J1 (465) is exactly what an open, two-way promenade should show — but on the beach these counts run roughly twice the human tally.
The verdict
A radio whisper is enough to count a crowd. To know where it's going, geometry decides.
What we found
Four readings
01
Volume is reliable and calibratable
Two cheap nodes agree (ICC up to .97) and track human counts well (ICC .87 on the trail), with a calibration that recovers aggregate volume at R² ≈ 0.8.
02
Geometry makes or breaks it
The constrained trail funnels signals into clean readings; the open beach scatters them. Validity drops from excellent to moderate as space opens up.
03
Movement is complementary, not definitive
Direction tracks beautifully where paths are narrow (r = .96) but degrades and over-counts in open settings (r = .33, 2.2×).
04
Error is about the place, not the activity
Discrepancies trace to environmental openness and signal interference, not to who is there or what they are doing.
Why it matters
Monitoring nature, cheaply and privately
Low-cost BLE networks can give park managers a continuous, camera-free read on how busy a space is — and, where geometry allows, how people move through it. The method scales to many sites for the price of a single camera system, turning passive radio noise into planning-grade measurement.