🛠 Se connecter en BLE UART depuis un smartphone
Objetivos
Exponer un servicio BLE « UART » (perfil serie) desde la micro:bit V2 para enviar y recibir texto con un smartphone o un PC, sin cables. Como el módulo de radio de MicroPython no expone un perfil GATT serie, aquí se utiliza MakeCode y su extensión Bluetooth.
Material
- 1 tarjeta micro:bit V2
- 1 smartphone Android/iOS con una aplicación « micro:bit » o « Bluetooth Terminal »
- Editor makecode.microbit.org (se debe añadir la extensión Bluetooth)
Código completo
// MakeCode (JavaScript) — ajouter l'extension "Bluetooth"
// Profil Bluetooth: UART (réglage de l'extension)
let trame = ""
bluetooth.onBluetoothConnected(function {
basic.showString("BLE")
})
bluetooth.onUartDataReceived(serial.delimiters(Delimiters.NewLine),
function {
trame = bluetooth.uartReadUntil(serial.delimiters(Delimiters.NewLine))
if (trame === "ROUGE") {
basic.showString("R")
} else if (trame === "COEUR") {
basic.showIcon(IconNames.HEART)
} else {
basic.showString(trame)
}
})
basic.forever(function {
if (input.buttonIsPressed(Button.A)) {
bluetooth.uartWriteString("BOUTON A APPUYE\n")
basic.pause(500)
}
})
La micro:bit permanece en BLE (SoftDevice S113): no hay Wi-Fi ni Ethernet en esta tarjeta. En MicroPython, el equivalente más cercano sigue siendo el módulo radio, que no es un perfil GATT UART estándar.
Verificación esperada
La aplicación encuentra un dispositivo « BBC micro:bit », se conecta y luego: escribir « CORAZON » + intro muestra un corazón en la matriz; pulsar A envía « BOTON A PULSADO » al teléfono.
Errores frecuentes
- Extensión Bluetooth no añadida en MakeCode: los bloques
bluetooth.*no existen. - Olvidar el delimitador newline en el terminal: el trama nunca se « recibe completa ».
- El emparejamiento clásico falla: este perfil BLE a menudo no utiliza código PIN, conéctese desde la aplicación.
- El programa de radio o BLE ya está ocupado: solo una conexión a la vez, desconecte la otra aplicación.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
coeur.pyMicroPythonboutons.pyMicroPythonpodometre.pyMicroPythonlumiere.pyMicroPythonmusique.pyMicroPythonradio_ping.pyMicroPython