Czujniki zbliżeniowe można opisać jako jedyne w swoim rodzaju przełączniki, które wykrywają pobliski obiekt za pomocą światła, pola elektromagnetycznego lub dźwięku. Zazwyczaj tego typu urządzenia są zaprojektowane do wykrywania pobliskich obiektów i często jest to praktyczne zastosowanie, w którym większość z tych czujników będzie używana. Ale są okoliczności, w których obiekt jest daleko od czujnika lub jest on blokowany przez przeszkodę, w tego typu sytuacjach możemy wykorzystać urządzenia BLE (Bluetooth Low Energy) do wykrywania i wyczuwania bliskości obiektu. Płytka rozwojowa ESP32 ma wbudowany BLE, którego używaliśmy w wielu innych projektach. Jeśli jesteś zupełnie nowy w BLE, sprawdź projekty klienta BLE ESP32 i serwera BLE ESP32, które zbudowaliśmy wcześniej. Wcześniej zbudowaliśmy również iBeacon Bluetooth przy użyciu ESP32.
W tym artykule pokażę, jak zrobić prosty czujnik obecności BLE za pomocą ESP32 i Arduino, a na koniec przetestujemy te urządzenia za pomocą BLE na moim smartfonie i smartwatchu.
Co to jest Bluetooth Low Energy (BLE)?
BLE to skrót od Bluetooth Low Energy i pojawił się w naszym codziennym życiu w 2011 roku, ponieważ o tej porze roku każdy większy producent zaczął osadzać technologię BLE na swoich urządzeniach. BLE to technologia komunikacji bezprzewodowej o niskim poborze mocy, która została opracowana do zastosowań z zasilaniem bateryjnym, która może być używana do komunikacji między urządzeniami na niewielką odległość. Niektóre z urządzeń, z których korzystasz na co dzień, mają wbudowany Bluetooth, takie jak smartfon, smartwatch, bezprzewodowe słuchawki douszne, bezprzewodowe głośniki, inteligentne urządzenia domowe i bardziej wbudowany Bluetooth do komunikacji lub pobierania danych o lokalizacji.
BLE to stosunkowo nowa technologia, a protokół BLE został opracowany przez Bluetooth Special Interest Group (SIG), a głównym celem jest urzeczywistnienie urządzeń o niskim poborze mocy. Chociaż nazwa nowo utworzonego protokołu pozostała taka sama, nowo opracowany protokół BLE nie był wstecznie kompatybilny, co oznacza, że nasze urządzenia Bluetooth Classic nie mogą komunikować się z urządzeniami BLE, pomimo wad tej technologii, umożliwiło programistom wytwarzanie bardzo niskiego poboru energii wydajne urządzenia, które mogą pracować miesiącami, a nawet latami na małej baterii pastylkowej.
Jak działa komunikacja BLE?
BLE wykorzystuje hierarchiczną strukturę danych do wysyłania i odbierania informacji. Urządzenie BLE działające jako serwer będzie rozgłaszać usługi i cechy, które może wykryć klient, a gdy wymiana informacji się powiedzie, urządzenia BLE mogą komunikować się ze sobą jednocześnie. Z technicznego punktu widzenia ten stos informacji jest znany jako atrybut urządzenia BLE. Jest zdefiniowany i zaimplementowany przy użyciu profilu GATT (Generic Attributes). W tych profilach mamy usługę, cechy i wartości w porządku hierarchicznym. Usługi zawierają cechy, a charakterystyka zawiera wartość. Czytając charakterystykę, możemy odczytać wartości i zmiany wartości w czasie.
Charakterystyki mogą być przetwarzane w celu uwzględnienia informacji do odczytu lub zapisu. Urządzenia zawierające komponenty odczytu mogą publikować informacje, a urządzenia posiadające charakterystykę zapisu mogą odbierać dane od klienta.
Profil GATT pod którym usługi i cechy są zdefiniowane jest znany jako unikatowy identyfikator uniwersalny (UUID). Istnieją pewne standardowe usługi i cechy zdefiniowane i zastrzeżone przez korporację SIG, jeśli przeczytamy UUID urządzenia BLE, możemy od razu stwierdzić, jakiego rodzaju jest to urządzenie.