11.1. Proč Bluetooth

Síťování připojí kameru k síti Wi-Fi nebo Ethernet, takže může komunikovat s čímkoli, co je odtud dosažitelné. S notebookem na konci chodby, se serverem na jiném kontinentu, s telefonem putujícím přes mobilní síť. Tento dosah s sebou nese určité předpoklady. Síť musí existovat. Nějaký přístupový bod musí být v dosahu, musí být k dispozici nějaké přihlašovací údaje a nějaký router musí být ochoten přidělit kameře adresu. Kamera také musí udržovat rádio (nebo ethernetový port) v dostatečném chodu, aby spojení zůstalo zachováno.

Bluetooth pokrývá opačný případ – krátký dosah, žádná infrastruktura, nízká spotřeba. Kamera a telefon ve stejné místnosti si vyměňují data přes přímé rádiové spojení, mezi nimiž není nic. Žádný přístupový bod, žádný router, ani potřeba, aby jedna nebo druhá strana byla v jakékoli síti. Rádio zůstává mezi krátkými dávkami aktivity většinou vypnuté, takže baterie, která by na Wi-Fi sotva přečkala den, může vydržet měsíce.

11.1.1. Kdy je Bluetooth správný nástroj

Běžné případy u kamery:

  • Telefon nebo tablet se spáruje s kamerou. Uživatel poblíž otevře aplikaci v telefonu a nakonfiguruje kameru, přečte její stav nebo stáhne výsledky – aniž by musel obě zařízení nejprve připojit ke stejné Wi-Fi síti. Většina telefonů ovládá Bluetooth Low Energy nativně, takže uživatelská zkušenost je „otevři aplikaci, stiskni připojit“, nikoli „nejprve se připoj k této síti“.

  • Nositelné zařízení nebo senzor hlásí data kameře. Hrudní pás na měření tepu, teploměr, beacon, kontaktní spínač – všechno jsou zařízení napájená z baterie navržená kolem Bluetooth Low Energy. Kamera se připojí jako klient, přečte jejich hodnoty a začlení data do čehokoli dalšího, co právě dělá.

  • Kamera publikuje malý stavový kanál. Stav baterie, naposledy detekovaný objekt, snímková frekvence – několik čísel zpřístupněných čemukoli poblíž, co je chce číst. Párování je volitelné; u necitlivých dat může kamera hodnoty zveřejňovat přímo, bez nutnosti jakéhokoli připojení.

  • Dvě kamery (nebo kamera a mikrokontrolér) sdílejí data bez sítě. Obě strany se navzájem znají; obě strany jsou ve stejné budově; není důvod, aby bajty cestovaly nahoru do cloudu a zpět dolů jen proto, aby překonaly místnost.

11.1.2. Kdy je naopak správný nástroj síťování

Kompromisy Bluetoothu jsou nevhodné pro několik běžných případů:

  • Protějšky mimo dosah. Bluetooth Low Energy má v praxi dosah několik metrů, ve volném prostoru v nejlepším případě desítky metrů. Cokoli přes celou budovu, přes město nebo přes internet potřebuje Wi-Fi nebo Ethernet.

  • Spojení s vysokou propustností. Bluetooth Low Energy v praxi dodává desítky až několik set kilobitů za sekundu. Streamování snímků nebo jakékoli smysluplné video potřebuje Wi-Fi.

  • Skupinová komunikace mnoha s mnoha přes sdílenou infrastrukturu. Místnost plná zařízení, která všechna komunikují s jedním serverem, nebo síť kamer sdílejících výsledky – přesně pro tento vzorec je IP síť vytvořena.

11.1.3. Low Energy, ne klasický

„Bluetooth“ v běžné řeči zahrnuje dva odlišné rádiové zásobníky. Klasický Bluetooth je ten v bezdrátových sluchátkách, audiu do auta a spojeních klávesnice / myši: rádio na úrovni hlasu a zvuku, poměrně složitý zásobník a znatelná spotřeba energie. Bluetooth Low Energy (BLE) je samostatný, novější protokol, který sdílí značku a pásmo 2,4 GHz, ale jinak toho má společného jen velmi málo. Je postaven kolem krátkých, řídkých rádiových dávek, aby udržel průměrnou spotřebu nepatrnou, a kolem datového modelu klíč/hodnota namísto streamování zvuku.

MicroPython na kameře podporuje pouze BLE. Klasický Bluetooth není součástí API vůbec. „Bluetooth“ níže znamená BLE.

11.1.4. Co se mění oproti modelu síťování

BLE má stejný pětivrstvý zásobník jako síťování, ale horní vrstvy se chovají odlišně:

  • Neexistuje abstrakce „otevři socket a pošli bajty“. BLE je postaven kolem malé databáze klíč/hodnota, kterou jedna strana hostuje a druhá strana z ní čte, zapisuje do ní nebo se k ní přihlašuje k odběru. Kamera publikuje pojmenované hodnoty (stav baterie, teplotu, příkazový registr); protějšek je čte nebo sleduje.

  • Neexistuje adresování podle jména. Zařízení se identifikují vysíláním (advertising) krátkého broadcastu, který popisuje, kdo jsou; protějšky tyto broadcasty skenují a vyberou si jeden, ke kterému se připojí.

  • Rádio je většinou nečinné. Obě strany se v okamžiku navázání spojení domluví, jak často se mají probouzet a komunikovat. Mezitím se obě vracejí do spánku.

Tyto tři rozdíly jsou tím, co zbytek BLE API odvádí od modelu socketů.