11.1. Miért Bluetooth¶
A hálózatkezelés a kamerát egy Wi-Fi vagy Ethernet hálózatra köti, így bármivel kommunikálhat, ami onnan elérhető. Egy laptoppal a folyosó végén, egy szerverrel egy másik kontinensen, egy mobilon barangoló telefonnal. Ez a kiterjedt hatótáv azonban előfeltételekkel jár. Léteznie kell egy hálózatnak. Valamilyen hozzáférési pontnak hatótávon belül kell lennie, valamilyen hitelesítő adatoknak rendelkezésre kell állniuk, valamilyen útválasztónak hajlandónak kell lennie címet adni a kamerának. A kamerának ráadásul elég intenzíven kell járatnia a rádiót (vagy az Ethernet portot) ahhoz, hogy fenntartsa a kapcsolatot.
A Bluetooth az ellenkező esetet fedi le – rövid hatótáv, infrastruktúra nélkül, alacsony fogyasztással. A kamera és egy ugyanabban a szobában lévő telefon közvetlen rádiókapcsolaton keresztül cserél adatot, anélkül, hogy bármi lenne közöttük. Nincs hozzáférési pont, nincs útválasztó, és egyik oldalnak sem kell semmilyen hálózathoz csatlakoznia. A rádió a rövid aktivitási kitörések között többnyire kikapcsolva marad, így egy akkumulátor, amely Wi-Fi mellett alig húzna ki egy napot, hónapokig is működhet.
11.1.1. Mikor a Bluetooth a megfelelő eszköz¶
A kamera tipikus esetei:
Egy telefon vagy táblagép párosodik a kamerával. Egy közeli felhasználó megnyit egy alkalmazást a telefonján, és konfigurálja a kamerát, leolvassa az állapotát, vagy letölti az eredményeket – anélkül, hogy előbb mindkét eszközt ugyanarra a Wi-Fi hálózatra kellene csatlakoztatnia. A legtöbb telefon natívan beszéli a Bluetooth Low Energy nyelvet, így a felhasználói élmény az, hogy „megnyitom az alkalmazást, megnyomom a csatlakozást”, nem pedig az, hogy „előbb csatlakozz ehhez a hálózathoz”.
Egy viselhető eszköz vagy érzékelő jelent a kamerának. Egy pulzusmérő öv, egy hőmérő, egy jeladó, egy érintkezőkapcsoló – mindegyik akkumulátorról működő, a Bluetooth Low Energy köré tervezett eszköz. A kamera kliensként csatlakozik, leolvassa az értékeiket, és beépíti az adatokat abba, amit éppen csinál.
A kamera közzétesz egy kis állapotfolyamot. Akkumulátorszint, utoljára észlelt objektum, képkockasebesség – néhány szám, amelyet bárki leolvashat a közelben, aki erre kíváncsi. A párosítás opcionális; nem érzékeny adatok esetén a kamera közvetlenül is hirdetheti az értékeket, kapcsolat nélkül.
Két kamera (vagy egy kamera és egy mikrovezérlő) hálózat nélkül oszt meg adatot. Mindkét fél ismeri a másikat; mindkét fél ugyanabban az épületben van; semmi okuk nincs arra, hogy a bájtok felmenjenek a felhőbe és vissza, csak hogy átérjenek a szobán.
11.1.2. Mikor a hálózatkezelés a megfelelő eszköz inkább¶
A Bluetooth kompromisszumai több gyakori esetben sem megfelelőek:
Hatótávon kívüli partnerek. A Bluetooth Low Energy a gyakorlatban néhány méter, szabad térben legfeljebb néhány tíz méter. Bármi, ami egy épületen át, a városon át vagy az interneten át található, Wi-Fi-t vagy Ethernetet igényel.
Nagy sávszélességű kapcsolatok. A Bluetooth Low Energy a gyakorlatban néhány tíztől néhány száz kilobit per másodperc sebességet nyújt. Képkockák streamelése vagy bármilyen érdemi videó Wi-Fi-t igényel.
Sok-a-sokhoz csoportos kommunikáció megosztott infrastruktúrán. Egy szobányi eszköz, amely mind egyetlen szerverrel beszél, vagy egy eredményeket megosztó kamerahálózat – erre a mintára épült egy IP-hálózat.
11.1.3. Low Energy, nem klasszikus¶
A „Bluetooth” a köznyelvben két különböző rádiós protokollkészletet fed le. A klasszikus Bluetooth az, amelyik a vezeték nélküli fejhallgatókban, az autós hangrendszerekben és a billentyűzet/egér kapcsolatokban van: hang- és audiominőségű rádió, viszonylag összetett protokollkészlet, és érezhető energiafogyasztás. A Bluetooth Low Energy (BLE) egy különálló, újabb protokoll, amely osztozik a márkanéven és a 2,4 GHz-es sávon, de nagyon kevés máson. Rövid, ritka rádiós kitörések köré épül, hogy az átlagos fogyasztás apró maradjon, és egy kulcs/érték adatmodell köré, nem pedig streamelt audió köré.
A kamera MicroPython rendszere csak a BLE-t támogatja. A klasszikus Bluetooth egyáltalán nem része az API-nak. A „Bluetooth” az alábbiakban a BLE-t jelenti.
11.1.4. Mi változik a hálózatkezelési modellhez képest¶
A BLE ugyanazzal az ötrétegű protokollkészlettel rendelkezik, mint a hálózatkezelés, de a felső rétegek máshogy viselkednek:
Nincs „nyiss egy socketet és küldj bájtokat” absztrakció. A BLE egy kis kulcs/érték adatbázis köré épül, amelyet az egyik oldal üzemeltet, a másik pedig olvas, ír vagy feliratkozik rá. A kamera elnevezett értékeket tesz közzé (egy akkumulátorszintet, egy hőmérsékletet, egy parancsregisztert); a partner ezeket olvassa vagy figyeli.
Nincs név szerinti címzés. Az eszközök úgy azonosítják magukat, hogy hirdetnek egy rövid szórt üzenetet, amely leírja, kik ők; a partnerek pásztáznak ezeket a szórásokat, és kiválasztanak egyet, amelyhez csatlakoznak.
A rádió többnyire tétlen. Mindkét fél a kapcsolat létrejöttekor megegyezik abban, milyen gyakran ébredjenek fel és beszéljenek. A köztes időben mindkettő visszaalszik.
Ez a három különbség az, ami a BLE API többi részét eltávolítja a socket modelltől.