Närhetssensorer kan beskrivas som en unik brytare som detekterar ett närliggande objekt med hjälp av ljus, elektromagnetiskt fält eller ljud. Dessa typer av enheter är vanligtvis utformade för att upptäcka motiv i närheten, och ofta är det den praktiska applikationen som de flesta av dessa sensorer kommer att användas i. Men det finns omständigheter där motivet är långt ifrån sensorn eller motivet blockeras av ett hinder, i dessa typer av situationer kan vi använda BLE- enheter (Bluetooth Low Energy) för att upptäcka och känna objektets närhet. ESP32-utvecklingskortet har inbyggt BLE, som vi har använt i många andra projekt. Om du är helt ny på BLE, kolla in projekten ESP32 BLE-klienten och ESP32 BLE Server som vi har byggt tidigare. Vi har också byggt en Bluetooth iBeacon med ESP32 tidigare.
I den här artikeln ska jag visa dig hur du gör en enkel BLE-närvarodetektor med hjälp av en ESP32 och Arduino, och i slutändan kommer vi att testa dessa enheter med BLE på min smartphone och en smartwatch.
Vad är Bluetooth Low Energy (BLE)?
BLE står för Bluetooth Low Energy, och det kom till vår vardag 2011, för vid den tiden på året började alla större tillverkare att bädda in BLE-teknik på sina enheter. BLE är en trådlös kommunikationsteknik med låg effekt som utvecklades för applikationer med batteriström som kan användas för att kommunicera mellan enheter över en kort sträcka. Några av enheterna du använder varje dag har Bluetooth inbyggt i den som din smartphone, din smartwatch, trådlösa öronsnäckor, trådlösa högtalare, smarta hem- enheteroch mer inbäddad Bluetooth för att kommunicera eller för att få platsdata.
BLE är en relativt ny teknik och BLE-protokollet utvecklades av Bluetooth Special Interest Group (SIG) med ett primärt mål att göra enheter med låg effekt verklighet. Även om namnet på det nyligen gjorda protokollet förblev detsamma, var det nyutvecklade BLE-protokollet inte bakåtkompatibelt vilket innebär att våra Bluetooth Classic- enheter inte kan prata med BLE-enheterna, trots nackdelen med denna teknik, gjorde det möjligt för utvecklare att producera mycket låg energi -effektiva enheter som kan hålla i månader till och med år på ett litet knappcellsbatteri.
Hur fungerar BLE-kommunikation?
BLE använder en hierarkisk datastruktur för att skicka och ta emot information. En BLE-enhet som fungerar som en server kommer att annonsera för tjänster och egenskaper som kan detekteras av en klient och när informationsutbytet är framgångsrikt kan BLE-enheter kommunicera med varandra samtidigt. I tekniska termer är denna informationsstapel tillsammans känd som ett attribut för en BLE-enhet. Och den definieras och implementeras med GATT-profilen (Generic Attributes). I dessa profiler har vi Service, egenskaper och värden i en hierarkisk ordning. Tjänster innehåller egenskaper och karakteristiken innehåller värdet, genom att läsa karakteristiken kan vi läsa värden och värden förändringar över tiden.
Egenskaper kan bearbetas för att inkludera läs- eller skrivinformation. Enheter som innehåller läskomponenter kan publicera information och enheter som innehåller skrivegenskaper kan ta emot data från en klient.
Den GATT profil enligt vilken de tjänster och egenskaper definieras är känd som en universellt unik identifierare (UUID). Det finns vissa standardtjänster och egenskaper som definierats och reserverats av SIG-företaget om vi läser UUID för en BLE-enhet, kan vi direkt berätta vilken typ av enhet det är.