11.1. Pourquoi le Bluetooth

La mise en réseau permet de connecter la caméra à un réseau Wi-Fi ou Ethernet afin qu’elle puisse communiquer avec tout ce qui est accessible depuis ce réseau. Un ordinateur portable au bout du couloir, un serveur sur un autre continent, un téléphone en itinérance sur le réseau cellulaire. Cette portée s’accompagne de prérequis. Un réseau doit exister. Un point d’accès doit être à portée, des identifiants doivent être disponibles, un routeur doit accepter d’attribuer une adresse à la caméra. La caméra doit également maintenir la radio (ou le port Ethernet) suffisamment active pour conserver la liaison.

Le Bluetooth couvre le cas inverse : courte portée, aucune infrastructure, faible consommation. La caméra et un téléphone situés dans la même pièce échangent des données via une liaison radio directe, sans rien entre eux. Aucun point d’accès, aucun routeur, aucune nécessité pour l’un ou l’autre d’être connecté à un quelconque réseau. La radio reste majoritairement éteinte entre de brèves salves d’activité, de sorte qu’une batterie qui survivrait à peine une journée en Wi-Fi peut durer des mois.

11.1.1. Quand le Bluetooth est le bon outil

Les cas courants sur une caméra :

  • Un téléphone ou une tablette s’appaire avec la caméra. Un utilisateur à proximité ouvre une application sur son téléphone et configure la caméra, lit son état ou télécharge des résultats, sans devoir au préalable connecter les deux appareils au même réseau Wi-Fi. La plupart des téléphones gèrent nativement le Bluetooth Low Energy, de sorte que l’expérience utilisateur se résume à « ouvrir l’application, appuyer sur connexion », et non à « rejoindre ce réseau d’abord ».

  • Un appareil portable ou un capteur transmet ses données à la caméra. Une ceinture cardiofréquencemètre, un thermomètre, une balise, un contacteur : tous sont des appareils alimentés par batterie conçus autour du Bluetooth Low Energy. La caméra se connecte en tant que client, lit leurs valeurs et intègre les données à tout ce qu’elle fait par ailleurs.

  • La caméra publie un petit flux d’état. Niveau de batterie, dernier objet détecté, fréquence d’images : quelques valeurs exposées à tout ce qui se trouve à proximité et souhaite les lire. L’appairage est facultatif ; pour des données non sensibles, la caméra peut diffuser directement les valeurs sans aucune connexion.

  • Deux caméras (ou une caméra et un microcontrôleur) partagent des données sans réseau. Les deux extrémités se connaissent ; les deux extrémités sont dans le même bâtiment ; il n’y a aucune raison que les octets remontent jusqu’au cloud et redescendent pour traverser la pièce.

11.1.2. Quand la mise en réseau est plutôt le bon outil

Les compromis du Bluetooth sont inadaptés à plusieurs cas courants :

  • Interlocuteurs hors de portée. Le Bluetooth Low Energy porte en pratique à quelques mètres, et au mieux à des dizaines de mètres en espace dégagé. Tout ce qui se trouve de l’autre côté d’un bâtiment, à travers la ville ou sur Internet nécessite le Wi-Fi ou l’Ethernet.

  • Liaisons à haut débit. Le Bluetooth Low Energy offre en pratique de quelques dizaines à quelques centaines de kilobits par seconde. La diffusion de trames ou de toute vidéo significative nécessite le Wi-Fi.

  • Communication de groupe plusieurs-à-plusieurs sur une infrastructure partagée. Une salle pleine d’appareils qui communiquent tous avec un même serveur, ou un maillage de caméras partageant leurs résultats : ce schéma est précisément ce pour quoi un réseau IP est conçu.

11.1.3. Low Energy, et non classique

« Bluetooth » désigne, dans le langage courant, deux piles radio distinctes. Le Bluetooth classique est celui des casques sans fil, de l’audio embarqué et des liaisons clavier / souris : une radio de qualité voix et audio, une pile relativement complexe et une consommation notable. Le Bluetooth Low Energy (BLE) est un protocole distinct et plus récent qui partage la marque et la bande des 2,4 GHz, mais bien peu d’autre chose. Il est conçu autour de salves radio courtes et peu fréquentes afin de maintenir une consommation moyenne minime, et autour d’un modèle de données clé/valeur plutôt que d’un flux audio.

MicroPython sur la caméra ne prend en charge que le BLE. Le Bluetooth classique ne fait pas du tout partie de l’API. Ci-dessous, « Bluetooth » signifie BLE.

11.1.4. Ce qui change par rapport au modèle de mise en réseau

Le BLE possède la même pile à cinq couches que la mise en réseau, mais les couches supérieures se comportent différemment :

  • Il n’existe pas d’abstraction du type « ouvrir une socket et envoyer des octets ». Le BLE est conçu autour d’une petite base de données clé/valeur qu’un côté héberge et que l’autre côté lit, écrit ou auquel il s’abonne. La caméra publie des valeurs nommées (un niveau de batterie, une température, un registre de commande) ; le pair les lit ou les surveille.

  • Il n’existe pas d’adressage par nom. Les appareils s’identifient en diffusant (advertising) une courte annonce décrivant qui ils sont ; les pairs balayent (scan) ces annonces et en choisissent une à laquelle se connecter.

  • La radio est la plupart du temps inactive. Les deux extrémités conviennent au moment de la connexion de la fréquence à laquelle se réveiller et communiquer. Entre-temps, les deux se rendorment.

Ces trois différences sont ce qui éloigne le reste de l’API BLE du modèle de socket.