🛠 Balise BLE : diffuser un beacon avec le CYW43438

Raspberry Pi Zero W (2017) — Ficha de placa · 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.

Objetivos

Convertir la Zero W en una baliza de presencia BLE: el chip Cypress CYW43438 (el del Pi 3 B) gestiona Bluetooth 4.0 + BLE bajo Linux, sin necesidad de un dongle.

Material

Pasos

  1. Instala la pila: sudo apt install bluez bluepy y luego activa la radio: sudo hciconfig hci0 up.
  2. Difunde el nombre + carga útil del fabricante (esquema tipo iBeacon):
#!/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. Escanea desde el teléfono: ZeroW-01 debe aparecer con la carga útil 0xBEEF.

Verificación

hciconfig hci0 muestra la interfaz UP RUNNING; el escáner ve la baliza.

Errores frecuentes

> NO VERIFICADO: las fuentes oficiales de Raspberry Pi anuncian BT 4.0 + BLE, mientras que la documentación de marketing de CYW43438 habla de 4.1+EDR — no bases ningún requisito de compatibilidad en ninguno de los dos números.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales