11.1. Warum Bluetooth¶
Netzwerktechnik bringt die Kamera in ein Wi-Fi- oder Ethernet-Netzwerk, sodass sie mit allem kommunizieren kann, was von dort aus erreichbar ist. Ein Laptop weiter unten im Flur, ein Server auf einem anderen Kontinent, ein Telefon, das im Mobilfunknetz unterwegs ist. Diese Reichweite hat ihre Voraussetzungen. Ein Netzwerk muss vorhanden sein. Irgendein Access Point muss in Reichweite sein, irgendwelche Zugangsdaten müssen verfügbar sein, irgendein Router muss bereit sein, der Kamera eine Adresse zuzuweisen. Die Kamera muss außerdem das Funkmodul (oder den Ethernet-Anschluss) hart genug am Laufen halten, um die Verbindung aufrechtzuerhalten.
Bluetooth deckt den umgekehrten Fall ab – kurze Reichweite, keine Infrastruktur, geringer Stromverbrauch. Die Kamera und ein Telefon im selben Raum tauschen Daten über eine direkte Funkverbindung aus, ohne irgendetwas dazwischen. Kein Access Point, kein Router, keine Notwendigkeit, dass eine der beiden Seiten überhaupt in irgendeinem Netzwerk ist. Das Funkmodul bleibt zwischen kurzen Aktivitätsschüben größtenteils ausgeschaltet, sodass eine Batterie, die mit Wi-Fi kaum einen Tag durchhalten würde, monatelang laufen kann.
11.1.1. Wann Bluetooth das richtige Werkzeug ist¶
Die häufigsten Fälle bei einer Kamera:
Ein Telefon oder Tablet koppelt sich mit der Kamera. Ein Benutzer in der Nähe öffnet eine App auf seinem Telefon und konfiguriert die Kamera, liest ihren Status aus oder lädt Ergebnisse herunter – ohne zuvor beide Geräte in dasselbe Wi-Fi-Netzwerk bringen zu müssen. Die meisten Telefone beherrschen Bluetooth Low Energy nativ, sodass das Benutzererlebnis „App öffnen, auf Verbinden tippen“ lautet, nicht „erst diesem Netzwerk beitreten“.
Ein Wearable oder Sensor meldet sich bei der Kamera. Ein Herzfrequenzgurt, ein Thermometer, ein Beacon, ein Kontaktschalter – allesamt batteriebetriebene Geräte, die rund um Bluetooth Low Energy konzipiert sind. Die Kamera verbindet sich als Client, liest deren Werte aus und integriert die Daten in das, was sie sonst gerade tut.
Die Kamera veröffentlicht einen kleinen Status-Feed. Batteriestand, zuletzt erkanntes Objekt, Bildrate – ein paar Zahlen, die für alles in der Nähe bereitgestellt werden, das sie auslesen möchte. Das Koppeln ist optional; bei unkritischen Daten kann die Kamera die Werte direkt aussenden, ganz ohne Verbindung.
Zwei Kameras (oder eine Kamera und ein Mikrocontroller) tauschen Daten ohne Netzwerk aus. Beide Enden kennen einander; beide Enden befinden sich im selben Gebäude; es gibt keinen Grund, warum die Bytes erst in die Cloud hinauf- und dann wieder herunterwandern sollten, um den Raum zu überqueren.
11.1.2. Wann stattdessen Netzwerktechnik das richtige Werkzeug ist¶
Die Kompromisse von Bluetooth sind in mehreren häufigen Fällen falsch:
Gegenstellen außer Reichweite. Bluetooth Low Energy reicht in der Praxis ein paar Meter und im freien Raum bestenfalls einige Dutzend Meter weit. Alles über ein Gebäude, durch die Stadt oder über das Internet hinweg benötigt Wi-Fi oder Ethernet.
Verbindungen mit hoher Bandbreite. Bluetooth Low Energy liefert in der Praxis einige zehn bis ein paar hundert Kilobit pro Sekunde. Das Streamen von Einzelbildern oder irgendein sinnvolles Video benötigt Wi-Fi.
Viele-zu-viele-Gruppenkommunikation über gemeinsame Infrastruktur. Ein Raum voller Geräte, die alle mit einem Server kommunizieren, oder ein Mesh aus Kameras, die Ergebnisse teilen – für dieses Muster ist ein IP-Netzwerk gebaut.
11.1.3. Low Energy, nicht Classic¶
„Bluetooth“ umfasst im Alltagsgebrauch zwei unterschiedliche Funk-Stacks. Classic Bluetooth ist das in kabellosen Headsets, in der Audioanlage im Auto und in Tastatur-/Maus-Verbindungen: ein Funk in Sprach- und Audioqualität, ein vergleichsweise komplexer Stack und ein spürbarer Stromverbrauch. Bluetooth Low Energy (BLE) ist ein separates, neueres Protokoll, das sich den Markennamen und das 2,4-GHz-Band teilt, aber sonst nur sehr wenig. Es ist um kurze, seltene Funkschübe herum aufgebaut, um die durchschnittliche Leistung winzig zu halten, und um ein Schlüssel/Wert-Datenmodell statt Audio-Streaming.
MicroPython auf der Kamera unterstützt nur BLE. Classic Bluetooth ist überhaupt nicht Teil der API. „Bluetooth“ bedeutet im Folgenden BLE.
11.1.4. Was sich gegenüber dem Netzwerkmodell ändert¶
BLE hat denselben fünfschichtigen Stack wie die Netzwerktechnik, aber die oberen Schichten verhalten sich anders:
Es gibt keine „einen Socket öffnen und Bytes senden“-Abstraktion. BLE ist um eine kleine Schlüssel/Wert-Datenbank herum aufgebaut, die eine Seite bereitstellt und die andere Seite liest, beschreibt oder abonniert. Die Kamera veröffentlicht benannte Werte (einen Batteriestand, eine Temperatur, ein Befehlsregister); die Gegenstelle liest sie oder beobachtet sie.
Es gibt keine Adressierung über Namen. Geräte identifizieren sich, indem sie eine kurze Aussendung bewerben (advertising), die beschreibt, wer sie sind; Gegenstellen durchsuchen (scannen) diese Aussendungen und wählen eine zum Verbinden aus.
Das Funkmodul ist die meiste Zeit untätig. Beide Enden vereinbaren beim Verbindungsaufbau, wie oft sie aufwachen und kommunizieren. Dazwischen gehen beide wieder schlafen.
Diese drei Unterschiede sind es, die den Rest der BLE-API vom Socket-Modell wegtreiben.