🛠 Balise BLE : diffuser un beacon avec le CYW43438

Raspberry Pi Zero W (2017) — Fiche carte · intermediaire · Schéma : IMG-zero-w-intermediaire-3-balise-bluetooth-low-energy.svg — Zero W émettant des paquets d'advertising BLE captés par un smartphone affichant le nom ZeroW-01 et une charge utile personnalisée.

Objectifs

Faire de la Zero W une balise de présence BLE : la puce Cypress CYW43438 (celle du Pi 3 B) gère Bluetooth 4.0 + BLE sous Linux, sans dongle.

Matériel

Étapes

  1. Installez la pile : sudo apt install bluez bluepy puis montez la radio : sudo hciconfig hci0 up.
  2. Diffusez nom + charge utile fabricant (schéma iBeacon-like) :
#!/usr/bin/env python3
from bluepy.btle import ADType, Peripheral
import struct, time

p = Peripheral
p.setAdvertiseData(ADType.COMPLETE_LOCAL_NAME, b"ZeroW-01")
payload = struct.pack("<BHBHH", 0xFF, 0x004C, 0x0215, 0xBEEF, 0x0001)
p.setAdvertiseData(ADType.MANUFACTURER_DATA, payload)
p.setAdvertiseEnable(True)
while True:
    time.sleep(1)
  1. Scannez depuis le téléphone : ZeroW-01 doit apparaître avec la charge utile 0xBEEF.

Vérification

hciconfig hci0 affiche l'interface UP RUNNING ; le scanner voit le beacon.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels