🛠 Le Bluetooth Low Energy embarqué, vu depuis le croquis
Objectifs
Utiliser le module Bluetooth Low Energy intégré à la Tian — la carte l'a annoncée en avant-garde : c'était l'une des premières Arduino avec BLE embarqué. Architecture typique de la carte : le module radio est du côté Linux, et le croquis y accède à travers le Bridge. Vous allez lister les périphériques BLE visibles depuis le SAMD21, puis décider quelle face de la carte mérite ce travail.
Matériel
- 1 Arduino Tian alimentée, boot Linux terminé, réseau non requis (le BLE est autonome)
- 1 smartphone avec un capteur BLE publicitaire (ou un beacon, ou l'application Arduino Nano 33 BLE qui diffuse)
- Accès SSH pour la phase de diagnostic bas niveau
Code complet
// Demander à Linux son environnement BLE via le Bridge.
#include <Bridge.h>
void setup {
Serial.begin(9600);
while (!Serial) { }
Bridge.begin;
delay(2000); // laisser le service BLE côté Linux s'initialiser
}
void loop {
// L'API dédiée au BLE passe par le Bridge de la Tian.
// >
// (getBLE / exemples d'usine du package de carte) : valider avec
// l'exemple BLE fourni, la doc officielle archivée étant la référence.
BridgeProcess p = Bridge.runShellCommand("hcitool lescan --duplicates");
// Lecture non bloquante de la sortie du scan côté Linux.
String line;
while (p.available && (line = p.readStringUntil('\n')).length) {
Serial.println(line); // adresse + nom des périphériques détectés
}
delay(10000);
}
Vérification attendue
Le Moniteur série affiche des lignes « AD:RS:ES:S1:BL:E Nom-du-peripherique » au fil des scans : le SAMD21 vient de faire travailler la pile BLE de Linux sans connaître une once de radio. Coupez le capteur : il disparaît des scans suivants.
Erreurs fréquentes
- hcitool absent de l'image :
opkg update && opkg install bluez-libs bluez-toolscôté SSH ; selon les versions de Linino, l'outil s'appelle différemment. > - Coller du code d'exemple Yun sur la Tian : les bibliothèques Bridge diffèrent, la compilation passe parfois mais le comportement n'est pas garanti.
- Vouloir du BLE temps réel via le Bridge : la chaîne croquis -> UART -> Linux -> pile BLE introduit de la latence ; pour de l'HID ou de la connectée réactive, prenez une carte BLE native (Nano 33 BLE) et gardez la Tian pour la passerelle.
- Oublier la cohabitation WiFi/BLE : les deux partagent la radio 2,4 GHz du SoC ; en environnement saturé, les scans longue durée dégradent le débit WiFi.
- Laisser un scan actif tourner sans limite :
--duplicates+ boucle infinie consomme le CPU Linux ; cadencez et tuez proprement vos processus. - Sécurité : ne diffusez pas d'identifiants en clair dans un nom d'advertising, c'est lu par tout le quartier.
Autres tutoriels pour cette carte
- Découvrir l'Arduino Tian : un microcontrôleur et un vrai Linux sur la même carte
- Bouton et LED sur les GPIO de la Tian : les bases côté SAMD21
- Lire un capteur avec l'ADC 12 bits du SAMD21
- Le Bridge : faire exécuter des commandes Linux depuis le croquis
- Configurer le WiFi et piloter Linino en SSH
- Télémétrie : pousser une mesure du capteur vers le réseau
Exemples de code pour cette carte
clignotant-rest.inoArduinoconsole-bridge.inoArduinovaleurs-partagees.inoArduinoprocess-shell.inoArduinoserveur-json.inoArduinolecture-fichier.inoArduino