How ethannsie/ble-based-ips works
This repository is a BLE-based indoor positioning prototype: anchor devices collect RSSI observations, estimate distances, report measurements to a Flask service, and the service computes a position estimate for a web-facing client. Separate scripts support RSSI collection and calibration. The README documents no capabilities beyond the project identity, and several files are unsampled; the graph therefore shows only relationships supported by the available source, with the browser-to-API connection left out.
Main entry points: threadtests.py RSSI distance reporter · flaskserver.py Position API · index.html Web page · calibration.py RSSI calibration
Components 14
BLE capture
- RSSI distance reporter
client/BLE-based-IPS/threadtests.py - BLE inquiry
inquiry-with-RSSI.py - RSSI data collector
dataCollect.py - RSSI calibration
client/BLE-based-IPS/calibration.py
Position service
- Report endpoint
flaskserver.py - Received RSSI state
flaskserver.py - Position regression
flaskserver.py - Position API
flaskserver.py
Web interface
- Web page
templates/index.html - WebGL renderer
webgl-demo.js
Other components
- BLE anchors
- BLE monitor stream
- Browser user
- RSSI distance samples
rssi_data_collection
Connections 12
- BLE monitor stream → RSSI distance reporter: streams RSSI
- BLE anchors → RSSI distance reporter: supply readings
- RSSI distance reporter → Report endpoint: POSTs distances
- Report endpoint → Received RSSI state: stores readings
- Position API → Received RSSI state: reads readings
- Position API → Position regression: requests estimate
- Browser user → Web page: opens page
- Web page → WebGL renderer: loads script
- BLE inquiry → BLE anchors: queries devices
- BLE monitor stream → RSSI data collector: streams RSSI
- BLE monitor stream → RSSI calibration: streams RSSI
- RSSI distance samples → RSSI calibration: informs calibration