Nærhetssensorer kan beskrives som enestående brytere som oppdager et objekt i nærheten ved hjelp av lys, elektromagnetisk felt eller lyd. Vanligvis er disse typene enheter designet for å oppdage motiver i nærheten, og ofte er det den praktiske applikasjonen som de fleste av disse sensorene skal brukes i. Men det er omstendigheter der motivet er langt borte fra sensoren eller motivet er blokkert av en hindring, i denne typen situasjoner kan vi bruke BLE (Bluetooth Low Energy) -enheter for å oppdage og føle objektets nærhet. ESP32-utviklingskortet har innebygd BLE, som vi har brukt i mange andre prosjekter. Hvis du er helt ny på BLE, så sjekk ut ESP32 BLE-klient- og ESP32 BLE Server-prosjektene som vi har bygget tidligere. Vi har også bygget en Bluetooth iBeacon med ESP32 tidligere.
I denne artikkelen skal jeg vise deg hvordan du lager en enkel BLE-tilstedeværelsesdetektor ved hjelp av en ESP32 og Arduino, og til slutt vil vi teste disse enhetene ved hjelp av BLE på smarttelefonen min og en smartklokke.
Hva er Bluetooth Low Energy (BLE)?
BLE står for Bluetooth Low Energy, og det kom til hverdagen vår i 2011, for på den tiden av året begynte alle større produsenter å legge inn BLE-teknologi på enhetene sine. BLE er en trådløs kommunikasjonsteknologi med lav effekt som ble utviklet for batteristrømapplikasjoner som kan brukes til å kommunisere mellom enheter over kort avstand. Noen av enhetene du bruker hver dag har Bluetooth innebygd i det som din smarttelefon, din Smartwatch, trådløse øreplugger, trådløse høyttalere, smarte hjem enheter, og mer innebygd Bluetooth for å kommunisere eller for å få posisjonsdata.
BLE er en relativt ny teknologi, og BLE-protokollen ble utviklet av Bluetooth Special Interest Group (SIG) med et primært mål å gjøre enheter med lav effekt. Selv om navnet på den nylagde protokollen forble den samme, var den nyutviklede BLE-protokollen ikke bakoverkompatibel, noe som betyr at Bluetooth Classic- enhetene våre ikke kan snakke med BLE-enhetene, til tross for ulempen med denne teknologien, gjorde det mulig for utviklere å produsere svært lav energi -effektive enheter som kan vare i flere måneder til og med år på et lite myntcellebatteri.
Hvordan fungerer BLE-kommunikasjon?
BLE bruker en hierarkisk datastruktur for å sende og motta informasjon. En BLE-enhet som fungerer som en server vil annonsere for tjenester og egenskaper som kan oppdages av en klient, og når informasjonsutvekslingen er vellykket, kan BLE-enheter kommunisere med hverandre samtidig. I tekniske termer er denne informasjonstakken kjent som et attributt for en BLE-enhet. Og den er definert og implementert ved hjelp av GATT-profilen (Generiske attributter). I disse profilene har vi Service, Egenskaper og verdier i en hierarkisk rekkefølge. Tjenester inneholder egenskaper og karakteristikken inneholder verdien, ved å lese karakteristikken kan vi lese verdiene og verdiene endres over tid.
Egenskaper kan behandles for å inkludere lese- eller skriveinformasjon. Enheter som inneholder lest komponenter kan publisere informasjon og enheter som inneholder skriveegenskaper kan motta data fra en klient.
Den GATT profil under hvilke tjenester og egenskaper defineres som er kjent som en universell unik identifikator (UUID). Det er noen standardtjenester og egenskaper som er definert og reservert av SIG-selskapet hvis vi leser UUID for en BLE-enhet, kan vi umiddelbart fortelle hva slags enhet det er.