🛠 Piloter une LED par Bluetooth LE avec le SDK nRF5

nRF52840-MDK (id boards.json: nrf52840-mdk) · intermediaire · Un service GATT personnalisé, une écriture depuis le téléphone, et la LED de la carte s'allume — le BLE applicatif de bout en bout.

El objetivo

ble_app_blinky es el ejemplo didáctico de Nordic: un servicio GATT personalizado con una característica LED (escritura) y una característica Button (notificación). Escribes desde el teléfono, el LED RGB de la placa se enciende; pulsas el botón de usuario, el teléfono recibe la notificación. Es el mejor ejercicio para entender write/notify antes de escribir tu propio servicio.

Paso 1 — Compilar para la placa

El repositorio MakerDiary lleva los ejemplos del SDK nRF5 (17.0.x, SoftDevice S140 6.1.1) hacia la placa:

git clone https://github.com/makerdiary/nrf52840-mdk.git
cd nrf52840-mdk
make BOARD=nrf52840_mdk -C examples/nrf5-sdk/ble_app_blinky/s140/nrf52840

El hex de la aplicación aparece en _build/ble_app_blinky_nrf52840_mdk.hex. Si la compilación falla, verifica la versión del SDK y de gcc-arm-none-eabi esperada por el Makefile — el repositorio no se actualiza desde 2021.

Paso 2 — Fusionar SoftDevice + aplicación

El arrastrar y soltar exige una imagen única; olvidar este paso da como resultado una placa que se flashea sin emitir nada (issue #31):

mergehex -m s140_nrf52_6.1.1_softdevice.hex \
           _build/ble_app_blinky_nrf52840_mdk.hex \
         -o firmware.hex

Suelta firmware.hex en la unidad DAPLINK, pulsa Boot/Reset.

Paso 3 — Controlar desde nRF Connect

  1. Instala nRF Connect for Mobile (no Toolbox: aquí queremos el acceso GATT bruto).
  2. Escanea y conéctate al dispositivo DK.
  3. Despliega el servicio personalizado: la característica LED acepta la escritura — envía 01 y el LED se enciende, 00 lo apaga.
  4. Activa las notificaciones en la característica Button, pulsa el botón de usuario de la placa: el valor cambia en la app.

Lo que dominas después

¿SDK nRF5 o nRF Connect SDK?

El SDK nRF5 está en legado; para un proyecto nuevo, Nordic impulsa NCS (base Zephyr). nrf52840_mdk es una placa Zephyr upstream — las compilaciones compatibles con NCS se realizan mediante las guías de MakerDiary, pero la placa no está listada nominalmente en la documentación de Nordic. El equivalente moderno del ejemplo: samples/bluetooth/peripheral_blinky en el árbol de Zephyr.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales