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ů.