🛠 Bluetooth LE : serveur GATT avec la radio 5.2

Raspberry Pi Pico 2 W · intermediaire · Schéma : IMG-pico-2-w-intermediaire-6-pico2w-ble-serveur-gatt.svg — Pico 2 W diffusant une annonce BLE vers un smartphone, service GATT personnalisé et caractéristique lecture/écriture.

Objectifs

La Pico 2 W embarque le même CYW43439 que la Pico W : Bluetooth 5.2 confirmé, avec BLE rôles central et peripheral et même Bluetooth Classic. Ce tutoriel met en place un serveur GATT : la carte diffuse une annonce, un smartphone s'y connecte et lit une caractéristique qui compte les secondes. Le BLE cohabite avec le Wi-Fi sur la même puce, mais il faut choisir l'architecture btstack au lieu de lwIP au moment de la compilation.

Matériel

Code complet

// main.c - squelette inspire de pico-examples pico_w/btstack
// lien : pico_btstack_cyw43 pico_stdlib
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#include "btstack.h"

static const uint8_t adv_data[] = {
    0x02, 0x01, 0x06,                       // flags LE general
    0x06, 0x09, 'P', 'i', 'c', 'o', '2'     // nom d'annonce
};

int main(void) {
    stdio_init_all;
    if (cyw43_arch_init) { return 1; }    // même puce que le Wi-Fi
    cyw43_arch_enable_bt_mode;            // mode Bluetooth du CYW43
    // 1) hci_setup + btstack_run_loop
    // 2) att_server : service 16 bits 0xA0FB + caractéristique compteur (READ)
    // 3) gap_advertise(adv_data) ; dans la boucle, compteur++ chaque seconde
    while (true) { sleep_ms(1000); }
}

Vérification attendue

Le scanner BLE du smartphone voit l'annonce Pico2, se connecte, et la caractéristique augmente d'une unité par seconde. La LED de la radio peut clignoter pendant la publicité.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels