🛠 Balise BLE : diffuser un beacon avec le CYW43438
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
- 1 Zero W con Raspberry Pi OS Lite
- Un smartphone con un escáner BLE (nRF Connect, LightBlue)
Pasos
- Instala la pila:
sudo apt install bluez bluepyy luego activa la radio:sudo hciconfig hci0 up. - 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)
- Escanea desde el teléfono:
ZeroW-01debe 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.
- Radio apagada (
hciconfig hci0 downpor defecto al arrancar en algunas imágenes): el escaneo no detecta nada. - bluepy ya no se mantiene: pruébalo antes de usarlo en cualquier producto.
Otros tutoriales para esta placa
- Premier démarrage headless de la Zero W (Wi-Fi + SSH)
- Suder le header 40 broches et faire clignoter une LED
- Se connecter au Wi-Fi en ligne de commande (nmcli)
- Pi-hole : bloqueur de pub DNS sur Zero W
- Gadget USB : Ethernet sur le port OTG + relais Wi-Fi
- Nœud capteur autonome sur batterie : énergie et fiabilité
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash