Skip to content

feat: Add BLE RSSI proximity detector example. #410

@nedseb

Description

@nedseb

Target repository

This example should be created in micropython-steami-sample, not in micropython-steami-lib. BLE examples are not tied to a specific driver and belong in the sample repo.

What

Create an example using two STeaMi boards: one broadcasts a BLE beacon, the other scans and displays a proximity gauge on the OLED based on the received RSSI signal strength.

Why

Second step in the BLE + indoor localization path. Introduces the concept of RSSI as a proxy for distance, which is the foundation of BLE indoor positioning.

Suggested approach

  1. Beacon board: advertise with a recognizable name (e.g. STeaMi-BEACON)
  2. Scanner board: scan for the beacon, read the RSSI value
  3. Map RSSI to a proximity level (e.g. -30 dBm = very close, -90 dBm = far)
  4. Display a steami_screen.gauge() that fills up as the beacon gets closer
  5. Optional: add color coding (GRAY=far, LIGHT=medium, RED=close)

Learning goals

  • BLE scanning with aioble
  • Understanding RSSI and its relationship to distance
  • Signal filtering (RSSI is noisy — consider averaging over N samples)

Hardware

  • 2 STeaMi boards (one beacon, one scanner)
  • SSD1327 OLED on the scanner board

Depends on

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions