🛠 Créer un périphérique Bluetooth LE piloté depuis le téléphone

Arduino MKR WiFi 1010 · intermediaire · Schéma : IMG-mkr-wifi-1010-intermediaire-3-mkrwifi-ble-peripheral.svg — MKR WiFi 1010 en périphérique BLE diffusant un service « Led » avec une caractéristique lisible et inscriptible, smartphone exécutant nRF Connect en rôle central.

Objectifs

Activer le Bluetooth Low Energy du module NINA-W102 avec la bibliothèque ArduinoBLE : la carte se rend périphérique, diffuse un service personnalisé avec une caractéristique lecture/écriture, et un téléphone (application gratuite nRF Connect) allume la LED D6 en écrivant 0 ou 1. La MKR WiFi 1010 est l'une des rares plateformes microcontrôleur à faire BLE client et hôte.

Matériel

Code complet

#include "ArduinoBLE.h"

BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLEUnsignedCharCharacteristic ledChar(
    "19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);

void setup {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);          // D6
  if (!BLE.begin) { Serial.println("BLE KO"); while (1); }
  BLE.setLocalName("MKRWiFi1010");
  BLE.setAdvertisedService(ledService);
  ledService.addCharacteristic(ledChar);
  BLE.addService(ledService);
  ledChar.writeValue(0);
  BLE.advertise;
  Serial.println("en attente d'un central...");
}

void loop {
  BLEDevice central = BLE.central;
  if (central) {
    Serial.printf("connecte: %s\n", central.address.c_str);
    while (central.connected) {
      if (ledChar.written)
        digitalWrite(LED_BUILTIN, ledChar.value);
      BLE.poll;                        // fait tourner la pile BLE
    }
    Serial.println("deconnecte");
  }
}

Vérification attendue

Dans nRF Connect, l'appareil « MKRWiFi1010 » apparaît au scan ; en se connectant, on trouve le service et sa caractéristique, et écrire 01 allume la LED D6, 00 l'éteint. Le moniteur série affiche l'adresse MAC du central connecté puis « deconnecte » à la coupure.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels