Bluetooth Low Energy
Bluetooth Low Energy, BLE, er en trådløs protokol til korte dataudvekslinger med lavt energiforbrug. BLE er især velegnet til sensorer, små styrekommandoer og batteridrevne enheder.
Grundprincipper
- En enhed kan annoncere sin tilstedeværelse med advertising-pakker.
- En anden enhed kan scanne, finde den og oprette en forbindelse.
- Data organiseres ikke som en fri UART-strøm, men som services og characteristics.
- En forbindelse kan læse, skrive eller modtage notifikationer fra characteristics.
Roller
- Central – scanner og opretter forbindelsen. En telefon eller computer er ofte central.
- Peripheral – annoncerer og stiller data eller funktioner til rådighed. En sensor eller Uno R4 WiFi kan have denne rolle.
- Rollerne beskriver forbindelsesrollen, ikke nødvendigvis om enheden er “server” eller “klient” i HTTP-forstand.
GATT: services og characteristics
- Service – en samling af relaterede funktioner, identificeret med en UUID.
- Characteristic – et konkret datafelt eller en funktion i servicen.
- Read – centralen læser den aktuelle værdi.
- Write – centralen skriver en kommando eller ny værdi.
- Notify – peripheral’en sender ændringer uden at centralen hele tiden spørger.
BLE sammenlignet med klassisk Bluetooth
BLE er optimeret til korte, energieffektive dataudvekslinger. Det er ikke det samme som klassisk Bluetooth med for eksempel en konstant lyd- eller seriel datastrøm. Valg af teknologi afhænger af datamængde, rækkevidde, energiforbrug og krav til forbindelsen.
Hastighed i byte
BLE-radioens rå kapacitet svarer omtrent til:
- LE Coded S=8: ca. 16 kB/s
- LE Coded S=2: ca. 63 kB/s
- LE 1M PHY: ca. 125 kB/s
- LE 2M PHY: ca. 250 kB/s
Det er øvre radiohastigheder omregnet til byte/s, ikke den hastighed en app nødvendigvis får. GATT-nyttedata bliver lavere på grund af pakkeoverhead, kvitteringer og ventetid mellem forbindelsesevents; den konkrete hastighed afhænger af begge enheder og forbindelsesindstillingerne.
Protokol-lag
BLE håndterer den trådløse forbindelse og BLE’s dataorganisation. En applikation kan derefter definere, hvad en characteristic betyder, for eksempel temperatur, batteriniveau eller en motorværdi. HTTP og IP er separate protokol-lag og er ikke nødvendige for en lokal BLE-forbindelse.