11.1. De ce Bluetooth

Conectarea la rețea aduce camera într-o rețea Wi-Fi sau Ethernet, astfel încât să poată comunica cu orice este accesibil de acolo. Un laptop de pe hol, un server de pe alt continent, un telefon conectat prin rețeaua celulară. Această rază de acțiune vine cu anumite cerințe prealabile. Trebuie să existe o rețea. Trebuie să fie în rază un punct de acces, trebuie să fie disponibile niște credențiale, trebuie să existe un router dispus să atribuie camerei o adresă. Camera trebuie de asemenea să mențină radioul (sau portul Ethernet) suficient de activ pentru a păstra legătura.

Bluetooth acoperă cazul opus – rază scurtă, fără infrastructură, consum redus de energie. Camera și un telefon din aceeași încăpere fac schimb de date printr-o legătură radio directă, fără nimic între ele. Niciun punct de acces, niciun router, fără să fie nevoie ca vreuna dintre părți să se afle în vreo rețea. Radioul rămâne în mare parte oprit între scurte rafale de activitate, astfel încât o baterie care abia ar rezista o zi pe Wi-Fi poate funcționa luni întregi.

11.1.1. Când Bluetooth este instrumentul potrivit

Cazurile uzuale pentru o cameră:

  • Un telefon sau o tabletă se asociază cu camera. Un utilizator din apropiere deschide o aplicație pe telefonul său și configurează camera, îi citește starea sau descarcă rezultate – fără a pune mai întâi ambele dispozitive în aceeași rețea Wi-Fi. Majoritatea telefoanelor vorbesc nativ Bluetooth Low Energy, așa că experiența utilizatorului este „deschide aplicația, apasă conectare”, nu „conectează-te mai întâi la această rețea”.

  • Un dispozitiv purtabil sau un senzor raportează către cameră. O bandă pentru ritmul cardiac, un termometru, un beacon, un comutator de contact – toate sunt dispozitive alimentate de la baterie, concepute în jurul Bluetooth Low Energy. Camera se conectează ca un client, le citește valorile și integrează datele în orice altceva face.

  • Camera publică un mic flux de stare. Nivelul bateriei, ultimul obiect detectat, rata de cadre – câteva valori expuse pentru orice se află în apropiere și dorește să le citească. Asocierea este opțională; pentru date nesensibile, camera poate difuza valorile direct, fără a fi nevoie de nicio conexiune.

  • Două camere (sau o cameră și un microcontroler) împart date fără o rețea. Ambele capete se cunosc reciproc; ambele se află în aceeași clădire; nu există niciun motiv ca octeții să urce până în cloud și să coboare înapoi pentru a traversa încăperea.

11.1.2. Când conectarea la rețea este instrumentul potrivit

Compromisurile Bluetooth sunt nepotrivite pentru câteva cazuri uzuale:

  • Parteneri aflați în afara razei. Bluetooth Low Energy are în practică o rază de câțiva metri și, în cel mai bun caz, zeci de metri în spațiu liber. Orice se află în altă parte a clădirii, în alt cartier sau pe internet necesită Wi-Fi sau Ethernet.

  • Legături cu lățime de bandă mare. Bluetooth Low Energy oferă în practică de la zeci la câteva sute de kilobiți pe secundă. Transmiterea continuă a cadrelor sau orice fel de video semnificativ necesită Wi-Fi.

  • Comunicare de grup mulți-la-mulți pe infrastructură partajată. O încăpere plină de dispozitive care comunică toate cu un singur server sau o rețea de tip mesh de camere care își împart rezultatele – acest tipar este exact pentru ce este construită o rețea IP.

11.1.3. Low Energy, nu clasic

„Bluetooth”, în uz informal, acoperă două stive radio distincte. Bluetooth-ul clasic este cel din căștile fără fir, din sistemele audio auto și din legăturile pentru tastatură / mouse: un radio de calitate voce-și-audio, o stivă comparativ complexă și un consum de energie sesizabil. Bluetooth Low Energy (BLE) este un protocol separat, mai nou, care împărtășește numele de marcă și banda de 2,4 GHz, dar foarte puține altele. Este construit în jurul rafalelor radio scurte și rare pentru a menține puterea medie minusculă și în jurul unui model de date cheie/valoare, mai degrabă decât al transmiterii audio.

MicroPython pe cameră acceptă doar BLE. Bluetooth-ul clasic nu face deloc parte din API. „Bluetooth” mai jos înseamnă BLE.

11.1.4. Ce se schimbă față de modelul de rețea

BLE are aceeași stivă cu cinci straturi pe care o avea rețeaua, dar straturile superioare se comportă diferit:

  • Nu există abstracția „deschide un socket și trimite octeți”. BLE este construit în jurul unei mici baze de date cheie/valoare pe care o parte o găzduiește, iar cealaltă o citește, scrie sau se abonează la ea. Camera publică valori denumite (un nivel al bateriei, o temperatură, un registru de comandă); partenerul le citește sau le urmărește.

  • Nu există adresare după nume. Dispozitivele se identifică prin difuzarea unei scurte transmisii care descrie cine sunt; partenerii scanează aceste transmisii și aleg una la care să se conecteze.

  • Radioul este în mare parte inactiv. Ambele capete convin la momentul conectării cât de des să se trezească și să comunice. În rest, ambele se întorc în repaus.

Aceste trei diferențe sunt cele care îndepărtează restul API-ului BLE de modelul socket.