Nabijheidssensoren kunnen worden omschreven als unieke schakelaars die een object in de buurt detecteren met behulp van licht, elektromagnetisch veld of geluid. Meestal zijn dit soort apparaten ontworpen om onderwerpen in de buurt te detecteren, en vaak is het de praktische toepassing waarin de meeste van deze sensoren zullen worden gebruikt. Maar er zijn omstandigheden waarin het onderwerp ver weg is van de sensor of het onderwerp wordt geblokkeerd door een obstructie, in dit soort situaties kunnen we BLE- apparaten (Bluetooth Low Energy) gebruiken om de nabijheid van het object te detecteren en te detecteren. Het ESP32-ontwikkelbord heeft een ingebouwde BLE, die we in veel andere projecten hebben gebruikt. Als je helemaal nieuw bent bij BLE, bekijk dan de ESP32 BLE-client en ESP32 BLE Server-projecten die we eerder hebben gebouwd. We hebben ook eerder een Bluetooth iBeacon gebouwd met ESP32.
In dit artikel ga ik je laten zien hoe je met behulp van een ESP32 en Arduino een eenvoudige BLE-aanwezigheidsdetector maakt, en uiteindelijk gaan we deze apparaten testen met BLE op mijn smartphone en een smartwatch.
Wat is Bluetooth Low Energy (BLE)?
BLE staat voor Bluetooth Low Energy, en het kwam in ons dagelijks leven in 2011, omdat in die tijd van het jaar elke grote fabrikant BLE-technologie begon in te bedden in hun apparaten. BLE is een draadloze communicatietechnologie met laag vermogen die is ontwikkeld voor batterijvoedingstoepassingen die kan worden gebruikt om over een korte afstand tussen apparaten te communiceren. Bij sommige apparaten die u dagelijks gebruikt, is Bluetooth ingebouwd, zoals uw smartphone, uw smartwatch, draadloze oordopjes, draadloze luidsprekers, slimme apparaten voor thuisgebruik, en meer ingebouwde Bluetooth om te communiceren of om locatiegegevens op te halen.
BLE is een relatief nieuwe technologie en het BLE-protocol is ontwikkeld door Bluetooth Special Interest Group (SIG) met als hoofddoel het realiseren van apparaten met een laag stroomverbruik. Hoewel de naam van het nieuw gemaakte protocol hetzelfde bleef, was het nieuw ontwikkelde BLE-protocol niet achterwaarts compatibel, wat betekent dat onze Bluetooth Classic- apparaten niet met de BLE-apparaten kunnen praten, ondanks de keerzijde van deze technologie, stelde het ontwikkelaars in staat om zeer energiezuinige energie te produceren -efficiënte apparaten die maanden of zelfs jaren meegaan op een kleine knoopcelbatterij.
Hoe werkt BLE-communicatie?
BLE gebruikt een hiërarchische gegevensstructuur om informatie te verzenden en te ontvangen. Een BLE-apparaat dat als server fungeert, maakt reclame voor services en kenmerken die door een client kunnen worden gedetecteerd en zodra de informatie-uitwisseling is gelukt, kunnen BLE-apparaten tegelijkertijd met elkaar communiceren. In technische termen staat deze informatiestapel bij elkaar bekend als een attribuut van een BLE-apparaat. En het is gedefinieerd en geïmplementeerd met behulp van het GATT-profiel (Generic Attributes). In deze profielen hebben we service, kenmerken en waarden in een hiërarchische volgorde. Services bevatten kenmerken en het kenmerk bevat de waarde, door het kenmerk te lezen, kunnen we de waarden aflezen en waarden veranderen in de tijd.
Kenmerken kunnen worden verwerkt om lees- of schrijfinformatie op te nemen. Apparaten met leescomponenten kunnen informatie publiceren en apparaten met schrijfkenmerken kunnen gegevens van een client ontvangen.
Het GATT-profiel waaronder de services en kenmerken zijn gedefinieerd, staat bekend als een Universally Unique Identifier (UUID). Er zijn enkele standaardservices en kenmerken gedefinieerd en gereserveerd door het SIG-bedrijf. Als we de UUID van een BLE-apparaat lezen, kunnen we meteen zien wat voor soort apparaat het is.