11.1. Varför Bluetooth

Nätverk får kameran ansluten till ett Wi-Fi- eller Ethernet-nätverk så att den kan prata med vad som helst som är nåbart därifrån. En bärbar dator längre bort i korridoren, en server på en annan kontinent, en telefon som roamar på mobilnätet. Den räckvidden kommer med förutsättningar. Ett nätverk måste finnas. Någon accesspunkt måste vara inom räckhåll, vissa inloggningsuppgifter måste finnas tillgängliga, någon router måste vara villig att tilldela kameran en adress. Kameran måste också hålla radion (eller Ethernet-porten) igång tillräckligt hårt för att upprätthålla länken.

Bluetooth täcker det motsatta fallet – kort räckvidd, ingen infrastruktur, låg effekt. Kameran och en telefon i samma rum utbyter data över en direkt radiolänk, utan något emellan. Ingen accesspunkt, ingen router, inget behov av att någondera sidan befinner sig på något nätverk alls. Radion är mestadels avstängd mellan korta aktivitetsskurar, så ett batteri som knappt skulle överleva en dag på Wi-Fi kan räcka i månader.

11.1.1. När Bluetooth är rätt verktyg

De vanliga fallen på en kamera:

  • En telefon eller surfplatta paras ihop med kameran. En användare i närheten öppnar en app på sin telefon och konfigurerar kameran, läser dess status eller laddar ner resultat – utan att först placera båda enheterna på samma Wi-Fi-nätverk. De flesta telefoner talar Bluetooth Low Energy direkt, så användarupplevelsen blir ”öppna appen, tryck på anslut”, inte ”anslut till det här nätverket först”.

  • En bärbar enhet eller sensor rapporterar till kameran. Ett pulsband, en termometer, en beacon, en kontaktbrytare – alla är batteridrivna enheter byggda kring Bluetooth Low Energy. Kameran ansluter som en klient, läser deras värden och vävar in datan i vad den nu annars håller på med.

  • Kameran publicerar ett litet statusflöde. Batterinivå, senast detekterade objekt, bildfrekvens – några siffror exponerade för vad som helst i närheten som vill läsa dem. Ihopparning är valfri; för icke-känslig data kan kameran annonsera värdena direkt utan att någon anslutning alls behövs.

  • Två kameror (eller en kamera och en mikrokontroller) delar data utan ett nätverk. Båda ändarna känner varandra; båda ändarna finns i samma byggnad; det finns ingen anledning för byten att resa upp till molnet och ner igen för att korsa rummet.

11.1.2. När nätverk är rätt verktyg i stället

Bluetooths avvägningar är fel för flera vanliga fall:

  • Motparter utom räckhåll. Bluetooth Low Energy är ett par meter i praktiken, och tiotals meter i fri sikt i bästa fall. Allt på andra sidan en byggnad, tvärs över staden eller tvärs över internet behöver Wi-Fi eller Ethernet.

  • Länkar med hög bandbredd. Bluetooth Low Energy levererar tiotals till några hundra kilobit per sekund i praktiken. Att strömma bildrutor eller någon meningsfull video behöver Wi-Fi.

  • Många-till-många-gruppkommunikation över delad infrastruktur. Ett rum fullt av enheter som alla pratar med en server, eller ett nät av kameror som delar resultat – det mönstret är vad ett IP-nätverk är byggt för.

11.1.3. Low Energy, inte classic

”Bluetooth” i vardagligt bruk täcker två olika radiostackar. Classic Bluetooth är den i trådlösa headset, billjud och tangentbords-/musländkar: en radio av röst- och ljudklass, en jämförelsevis komplex stack och märkbart strömuttag. Bluetooth Low Energy (BLE) är ett separat, nyare protokoll som delar varumärkesnamnet och 2,4 GHz-bandet men mycket lite annat. Det är byggt kring korta, sällsynta radioskurar för att hålla genomsnittseffekten pytteliten, och kring en nyckel/värde-datamodell snarare än strömmande ljud.

MicroPython på kameran stöder endast BLE. Classic Bluetooth ingår inte alls i API:et. ”Bluetooth” nedan betyder BLE.

11.1.4. Vad som ändras från nätverksmodellen

BLE har samma femlagersstack som nätverk hade, men de övre lagren beter sig annorlunda:

  • Det finns ingen abstraktion av typen ”öppna ett socket och skicka byten”. BLE är byggt kring en liten nyckel/värde-databas som ena sidan är värd för och den andra sidan läser, skriver eller prenumererar på. Kameran publicerar namngivna värden (en batterinivå, en temperatur, ett kommandoregister); motparten läser eller bevakar dem.

  • Det finns ingen adressering via namn. Enheter identifierar sig själva genom att annonsera en kort utsändning som beskriver vilka de är; motparter skannar efter dessa utsändningar och väljer en att ansluta till.

  • Radion är mestadels inaktiv. Båda ändarna kommer överens vid anslutningstillfället om hur ofta de ska vakna och prata. Däremellan går båda tillbaka till viloläge.

Dessa tre skillnader är det som driver resten av BLE-API:et bort från socket-modellen.