10. diel - Bluetooth Low Energy na module ESP-32 - Úvod
V predchádzajúcej lekcii, Webový server na module ESP-32 - Autentizácia užívateľa , sme sa venovali webovému serveru, ktorý sme zabezpečili prihlasovacím menom a heslom.
V tomto tutoriále Internetu vecí s ESP-32 už opustíme tému Wi-Fi a webového servera a vrhneme sa na novú tému, konkrétne na technológiu Bluetooth Low Energy, skrátene BLE. Ukážeme si rozdiel medzi touto a klasickou Bluetooth technológiou.
Bluetooth Low Energy
Vo svojej podstate sa jedná o variant technológie Bluetooth, ktorý však nie je tak náročný na spotrebu energie. To, že je menej náročná, ale bohužiaľ znamená rôzne obmedzenia. BLE je schopná prenášať malé obsahy dát na veľmi krátku vzdialenosť, pretože má veľmi malú šírku pásma. Technológia tiež stále pracuje v režime spánku a prebúdza sa iba vtedy, ak je vďaka nej pripojené zariadenie. Tým sa líši od klasického Bluetooth pripojenia, ktoré zostáva aktívne aj po odpojení zariadenia.
Spotreba energie pri používaní Bluetooth Low Energy je až 100x menšia. Čím menej procesov a inštrukcií, tým viac klesá spotreba energie.
Pozrime sa na rozdiely medzi Bluetooth Low Energy a klasickému Bluetooth:
BLE | Bluetooth | |
---|---|---|
Použitie | Jednorazový tok dát | Súvislý tok dát (napr. reproduktory, pripojenie v aute atď.) |
Kanály | 40 kanálov s rozdielom 2 MHz | 79 kanálov s rozdielom 1 MHz |
Spotreba | cca 0,01 až 0,5 násobok referenčnej Bluetooth hodnoty | 1 (referenčná hodnota Bluetooth) |
Sieťové módy | Point-to-Point, Broadcast, Mesh | Point-to-Point |
BLE server, klient a GATT
Tieto pojmy predstavujú kľúčové piliere pre prácu s touto technológiou. Nasledujúce informácie neskôr využijeme pri zostavovaní rôznych projektov využívajúcich technológiu BLE.
Server a klient
Časti server a klient už poznáme z lekcií, v ktorých sme pracovali s webovým serverom. Tu fungujú na takmer totožnom princípe. ESP-32 dokáže fungovať ako server aj ako klient. Server funguje tak, že je viditeľný všetkým zariadením v okolí a obsahuje dáta, ktoré dokáže klient prečítať. Klient skenuje okolie a zároveň kontroluje prichádzajúce dáta. Ak narazí na server, ktorý hľadal, vytvorí spojenie a je pripravený pracovať s prichádzajúcimi dátami. V tejto lekcii budeme pracovať s ESP-32 ako so serverom, ktorý bude reagovať na podnety z pripojeného klienta.
Tomuto typu komunikácie sa hovorí Point-to-Point.
Ako bolo spomenuté v tabuľke, Bluetooth Low Energy podporuje módy Broadcast a Mesh. V prípade Broadcast módu server odosiela dáta na toľko klientov, koľko je pripojených. Mesh mód znamená, že všetky zariadenia pripojené k serveru sú vzájomne prepojené.
GATT
Táto skratka označuje pojem Generic Attributes a označuje hierarchickú dátovú štruktúru, ktorá je viditeľná pre všetky zariadenia pripojené cez BLE. Vo svojej podstate sa dá povedať, že GATT definuje spôsob, akým pripojené zariadenia odosielajú a prijímajú štandardné správy.
Znalosť GATT hierarchie je základný kameň pre tvorbu programov využívajúci Bluetooth Low Energy.
Hierarchia GATT pre ESP-32 vyzerá takto:
Táto štruktúra je pri používaní mikrokontroléru ESP-32 vo väčšine prípadov totožná alebo veľmi podobná. Existujú síce prípady, keď si tvorca projektu GATT prispôsobil podľa svojich preferencií, my sa touto problematikou zaťažovať nebudeme.
BLE služba
Najvyššiu úroveň v hierarchii GATT tvorí profil, ktorý sa skladá z jednej alebo viacerých služby. Služba je v podstate kolekcia informácií, napríklad čítanie zo senzora, úroveň napätia a podobne. Typicky jedno BLE zariadenie obsahuje viac ako jednu službu. Každá služba obsahuje aspoň jednu charakteristiku alebo aj referenciu na iné služby. Pre BLE existujú preddefinované služby pre rôzne typy dát, ako napríklad úroveň batérie, tlak, tlkot srdca a podobne.
Tieto preddefinované služby definuje organizácia Bluetooth Special Interest Group.
BLE charakteristika
BLE charakteristika je vždy obsiahnutá v službe a zároveň sú už všetky reálne dáta obsiahnuté práve v tejto charakteristike. Charakteristika vždy obsahuje dva atribúty a voliteľne deskriptor:
deklaráciu, ktorá obsahuje metadáta reálnych dát, hodnotu, deskriptor, čo je rozširujúca charakteristika vo vnútri hodnoty.
Základné procedúry a operácie, ktoré je možné použiť s charakteristikou, sú okrem iného Broadcast, čítanie dát, zápis dát alebo indikácia akejkoľvek zmeny.
UUID
Pred samotnou tvorbou programu si ešte poďme priblížiť pojem
UUID. Táto skratka znamená Universally Unique
IDentifier. Ako z názvu vyplýva, tento jedinečný identifikátor má
každá služba, charakteristika alebo deskriptor. Typicky sú UUID 128-bitové
čísla, vyzerajú napríklad takto:
67373806-1808-4580-aafd-94f8bc021dd9
. Pre všetky služby, profily
a podobne existujú skrátené UUID. V prípade nutnosti si je možné
vygenerovať svoj vlastný UUID napríklad v tomto generátore UUID. Takto
vygenerovaný identifikátor budeme využívať v našich budúcich projektoch
aj my.
Porovnanie BLE s inými bezdrôtovými technológiami
BLE sa líši od iných bezdrôtových technológií, ako sú Wi-Fi, Zigbee alebo Z-Wave, predovšetkým vo svojom zameraní na nízku spotrebu energie a efektivitu v krátkom dosahu. Na rozdiel od Wi-Fi, ktoré poskytuje vyššiu priepustnosť a väčší dosah, je BLE ideálna pre aplikácie s nízkou spotrebou energie a nízkym objemom dát. V porovnaní so Zigbee a Z-Wave, ktoré sú tiež zamerané na nízku spotrebu energie, ponúka BLE jednoduchšiu integráciu s mobilnými zariadeniami vďaka širokej podpore v smartfónoch.
V budúcej lekcii, Bluetooth Low Energy na module ESP-32 - praktický príklad , využijeme nadobudnutých teoretických vedomostí o Bluetooth Low Energy vytvorením jednoduchého projektu.