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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions