- Ορολογίες που σχετίζονται με το BLE (Bluetooth χαμηλής ενέργειας)
- Προετοιμασία του υλικού
- Προγραμματισμός ESP32 για ένδειξη στάθμης μπαταρίας χρησιμοποιώντας την υπηρεσία GATT
- Δοκιμή της υπηρεσίας GATT στο ESP32 BLE
Ασύρματα ακουστικά, ζώνες γυμναστικής, ηχεία Bluetooth, ακουστικά In-Ear, κινητά τηλέφωνα, φορητοί υπολογιστές… υπάρχουν τόσες πολλές συσκευές Bluetooth γύρω μας και οι περισσότερες από αυτές τις συσκευές λειτουργούν με μπαταρία. Αναρωτηθήκατε ποτέ ότι, όταν συνδέετε μια συσκευή Bluetooth στο κινητό σας τηλέφωνο, πώς κατανοεί αυτόματα ότι η συνδεδεμένη συσκευή είναι ένας υπολογιστής ή μια συσκευή ήχου ή ένα κινητό τηλέφωνο; Για ορισμένες συσκευές, το τηλέφωνό μας ενδέχεται να εμφανίζει αυτόματα το ποσοστό μπαταρίας της συνδεδεμένης συσκευής στη γραμμή ειδοποιήσεων. Πώς συμβαίνουν όλα αυτά μόνα τους; Θα πρέπει να υπάρχει κάποιο κοινό πρωτόκολλο κοινόχρηστο μεταξύ του τηλεφώνου και της συσκευής Bluetooth σωστά!
Μείνετε περίεργοι, θα λάβετε απαντήσεις για αυτές τις ερωτήσεις καθώς προσπαθούμε να κατανοήσουμε το Bluetooth Low Energy (BLE για συντομία), με τη δημοφιλή μονάδα ESP32. Σε αντίθεση με το Classic Bluetooth στο ESP32, το BLE λειτουργεί μόνο όταν μια επικοινωνία είναι ενεργοποιημένη και παραμένει σε κατάσταση αναμονής διαφορετικά, αυτό το καθιστά τη σωστή επιλογή για εφαρμογές με μπαταρία. Το BLE μπορεί επίσης να σχηματίσει δίκτυα πλέγματος και να λειτουργήσει ως Beacons. Κανονικά μια μονάδα BLE λειτουργεί είτε ως διακομιστής είτε ως πελάτης, εδώ θα χρησιμοποιήσουμε το ESP32 BLE ως διακομιστή.
Εδώ έχουμε χωρίσει το πλήρες ESP32 Bluetooth σε τρία τμήματα για ευκολία κατανόησης.
1. Σειριακό Bluetooth σε ESP32 εναλλαγή LED από κινητό τηλέφωνο
2 . Διακομιστής BLE για αποστολή δεδομένων επιπέδου μπαταρίας σε κινητό τηλέφωνο χρησιμοποιώντας την υπηρεσία GATT
3. Ο πελάτης BLE για σάρωση για συσκευές BLE και ενεργεί ως φάρος.
Έχουμε ήδη καλύψει το πρώτο άρθρο. σε αυτό το άρθρο θα μάθουμε πώς να κάνουμε το ESP32 BLE να λειτουργεί ως διακομιστής και να χρησιμοποιούμε την Υπηρεσία GATT για την αποστολή πληροφοριών σχετικά με το επίπεδο της μπαταρίας. Για σκοπούς δοκιμής, θα στείλουμε τιμές με κωδικό από το ESP32 ως ποσοστό μπαταρίας στο κινητό μας τηλέφωνο μέσω της υπηρεσίας BLE GATT, με αυτόν τον τρόπο το κινητό μας θα υποθέσει ότι το ESP32 είναι μια συσκευή Bluetooth που λειτουργεί με μπαταρία και προσπαθεί να στείλει στο ποσοστό της μπαταρίας της. Πριν προχωρήσουμε σε λεπτομέρειες, θα υποτιμήσουμε λίγες ορολογίες που σχετίζονται με το Bluetooth Low Energy.
Ορολογίες που σχετίζονται με το BLE (Bluetooth χαμηλής ενέργειας)
Διακομιστής BLE: Όπως προαναφέρθηκε, το BLE μπορεί να προγραμματιστεί για να λειτουργεί είτε ως διακομιστής είτε ως πελάτης. Όταν εργάζεστε ως διακομιστής, το BLE μπορεί να παρέχει μόνο δεδομένα που δεν μπορεί να ξεκινήσει μια σύνδεση. Παράδειγμα θα ήταν μια μπάντα γυμναστικής. Ένας διακομιστής θα μπορούσε να στείλει πληροφορίες μόνο εάν ο πελάτης το ζητήσει.
Συνήθως το BLE του ESP32 χρησιμοποιείται ως διακομιστής. Κάθε διακομιστής θα έχει μία ή περισσότερες υπηρεσίες εντός αυτού και παρομοίως κάθε υπηρεσία θα έχει ένα ή περισσότερα χαρακτηριστικά που σχετίζονται με αυτήν. Ένα χαρακτηριστικό μπορεί να έχει μηδέν, έναν ή περισσότερους από έναν Περιγραφέα μέσα σε αυτό. Κάθε Υπηρεσία, χαρακτηριστικό ή Περιγραφέας θα έχει το δικό της προκαθορισμένο μοναδικό αναγνωριστικό που ονομάζεται UUID.
Πελάτης BLE: Ο πελάτης μπορεί να σαρώσει τη σύνδεση και να ακούσει άλλες συσκευές Bluetooth. Ένα παράδειγμα θα ήταν το κινητό σας τηλέφωνο. Σημειώστε ότι οι περισσότερες συσκευές υλικού BLE μπορούν να λειτουργήσουν ως διακομιστής και ως πελάτης, είναι το λογισμικό που αποφασίζει το ρόλο της συσκευής.
Περιφερειακή συσκευή / κεντρική συσκευή: Σε ένα δίκτυο BLE θα μπορούσε να υπάρχει μόνο μία κεντρική συσκευή, αλλά μπορεί να έχει όσες περιφερειακές συσκευές απαιτείται. Η κεντρική συσκευή μπορεί να συνδεθεί σε όλες τις περιφερειακές συσκευές ταυτόχρονα, αλλά η περιφερειακή συσκευή μπορεί να συνδεθεί μόνο με την κεντρική συσκευή, με αυτόν τον τρόπο καμία δύο περιφερειακή συσκευή δεν μπορεί να μοιράζεται δεδομένα μεταξύ τους. Ένα καλύτερο παράδειγμα για την κεντρική συσκευή θα είναι τα έξυπνα τηλέφωνα και για την περιφερειακή συσκευή θα είναι τα ακουστικά Bluetooth ή οι ζώνες γυμναστικής.
Διαφήμιση BLE: Μια διαφήμιση BLE είναι ο όρος geeky που καθοδηγεί τη συσκευή Bluetooth να είναι ορατή σε όλους, ώστε να μπορεί να ζευγαρώσει και να δημιουργήσει μια σύνδεση. Μπορεί να θεωρηθεί ως μονόδρομη επικοινωνία. Εδώ ο διακομιστής συνεχίζει να διαφημίζει δεδομένα αναμένοντας από έναν διακομιστή να τα λάβει. Το BLE Beacon είναι ένας τύπος BLE.
UUID (Universal Unique Identifier): Σε κάθε συσκευή Bluetooth BLE παρέχεται ένας Universal Unique Identifier Number όταν προγραμματίζεται από τον προγραμματιστή. Μπορείτε να σκεφτείτε αυτό το αναγνωριστικό ως μια ακολουθία αριθμών που αντιπροσωπεύει τη λειτουργικότητα / ρόλο της συσκευής BLE. Και πάλι υπάρχουν δύο τύποι UUID. Το ένα είναι το UUID υπηρεσίας και το άλλο είναι το χαρακτηριστικό UUID.
Υπηρεσία GATT: Το GATT σημαίνει Generic Attribute Profile. Αυτό καθορίζει ορισμένους τυπικούς τρόπους με τους οποίους πρέπει να επικοινωνούν πάντα δύο συσκευές BLE. Αυτό το πρωτόκολλο χαρακτηριστικού (ATT) είναι προκαθορισμένο και είναι κοινό για όλες τις συσκευές BLE, έτσι ώστε κάθε συσκευή BLE να μπορεί να ταυτοποιηθεί μεταξύ τους. Έτσι η GATT ήταν η απάντηση στην προηγούμενη ερώτησή μας.
Η τεχνική με την οποία δύο συσκευές BLE θα πρέπει να στέλνουν δεδομένα προς τα εμπρός καθορίζεται από την έννοια που ονομάζεται υπηρεσίες και χαρακτηριστικά.
Χαρακτηριστικό υπηρεσίας BLE / BLE: Το UUID υπηρεσίας μας λέει τι είδους υπηρεσία πρόκειται να εκτελέσει η συσκευή BLE και το χαρακτηριστικό UUID λέει ποιες είναι οι παράμετροι ή οι λειτουργίες που θα εκτελεστούν από αυτήν την υπηρεσία. Έτσι κάθε υπηρεσία θα έχει ένα ή περισσότερα χαρακτηριστικά κάτω από αυτά. Εντάξει! Από πού λαμβάνει ο προγραμματιστής αυτό το UUID; Κάθε UUID ορίζεται ήδη από το GATT (Γενικό χαρακτηριστικό προφίλ) μπορείτε να επισκεφθείτε τον ιστότοπό του και να επιλέξετε το UUID όπως απαιτείται για το έργο. Ξέρω ότι έχει αναπηδήσει λίγο πάνω από το κεφάλι μας. ας προσπαθήσουμε να το κατανοήσουμε με ένα παράδειγμα.
Ας υποθέσουμε ότι η συσκευή BLE ενός προγράμματος αναπαραγωγής ήχου. Αρχικά όταν το συνδυάζετε με το τηλέφωνό σας, το τηλέφωνό σας το αναγνωρίζει ως συσκευή ήχου και εμφανίζει επίσης το επίπεδο της μπαταρίας στη γραμμή κατάστασης. Έτσι, για να συμβεί αυτό, η συσκευή αναπαραγωγής ήχου πρέπει κάπως να πει στο τηλέφωνό σας ότι είναι πρόθυμη να μοιραστεί το επίπεδο της μπαταρίας και το ποσοστό φόρτισης που έχει στην μπαταρία. Αυτό γίνεται με τη χρήση του UUID, υπάρχει ένα συγκεκριμένο UUID που λέει ότι τα ζάρια BLE πρόκειται να παρέχουν λεπτομέρειες σχετικά με το επίπεδο της μπαταρίας αυτό το UUID που λέει τον τύπο υπηρεσίας ονομάζεται Service UUID, και πάλι θα μπορούσαν να υπάρχουν τόσες πολλές παράμετροι που πρέπει να να ανταλλάσσεται για την ολοκλήρωση μιας υπηρεσίας, όπως η τιμή της μπαταρίας βρίσκεται σε μια τέτοια παράμετρο, κάθε παράμετρος θα έχει το δικό της UUID και αυτά ονομάζονται το Χαρακτηριστικό UUID.Η κοινή συνάρτηση που εκτελείται από ένα χαρακτηριστικό είναι η ανάγνωση, η εγγραφή, η ειδοποίηση και η ένδειξη.
BLE Descriptor: Ο περιγραφέας είναι ένα προαιρετικό χαρακτηριστικό που υπάρχει μέσα στο χαρακτηριστικό. Ένας Περιγραφέας καθορίζει κανονικά τον τρόπο πρόσβασης σε ένα Χαρακτηριστικό.
BLE Beacon: Το Bluetooth Beacon μοιάζει περισσότερο με έναν διακόπτη εγγύτητας ο οποίος εκτελεί κάποια προκαθορισμένη ενέργεια όταν ο χρήστης μπαίνει σε μια περιοχή (κοντινή απόσταση). Διαφημίζει την ταυτότητά του όλη την ώρα και ως εκ τούτου είναι πάντα έτοιμο να συνδυαστεί.
BLE2902: Είμαι ακόμη δύσπιστος για αυτό το πράγμα, αλλά μπορείτε να το θεωρήσετε ως ένα λογισμικό από την πλευρά του πελάτη που ενημερώνει τον διακομιστή για να ενεργοποιήσει ή να απενεργοποιήσει την ειδοποίηση, αυτό θα μας βοηθήσει στην εξοικονόμηση ενέργειας
Ελπίζω να έχετε μια τραχιά ιδέα, το καλό είναι ότι δεν χρειάζεται να ξέρουμε πολλά, καθώς όλες οι εργασίες έχουν ήδη γίνει για εμάς μέσω των βιβλιοθηκών.
Προετοιμασία του υλικού
Το έργο δεν απαιτεί ρύθμιση υλικού, αλλά βεβαιωθείτε ότι έχετε προσθέσει τις λεπτομέρειες της πλακέτας ESP32 στο Arduino IDE και έχετε δοκιμάσει το ελάχιστο δείγμα προγράμματος αναλαμπής για να ελέγξετε αν όλα λειτουργούν όπως αναμένεται. Έχετε σκεπτικισμό για το πώς να το κάνετε, μπορείτε να ακολουθήσετε το σεμινάριο Ξεκινώντας με το ESP32 με το Arduino για να κάνετε το ίδιο.
Επίσης, για να δοκιμάσουμε τις υπηρεσίες BLE θα χρησιμοποιούμε την εφαρμογή Android nRF στο κινητό μας, το οποίο μπορείτε να κατεβάσετε απευθείας από το PlayStore. Είναι επίσης διαθέσιμο στο Itunes Store για χρήστες Iphone. Εάν σκοπεύετε να συνεργαστείτε με το BLE για μεγάλο χρονικό διάστημα, αυτή η εφαρμογή θα είναι πραγματικά χρήσιμη για σκοπούς εντοπισμού σφαλμάτων.
Προγραμματισμός ESP32 για ένδειξη στάθμης μπαταρίας χρησιμοποιώντας την υπηρεσία GATT
Μέχρι τώρα, υποθέτω ότι έχετε μια δίκαιη ιδέα για το τι υπηρεσία GATT και πώς υλοποιείται με τη χρήση υπηρεσιών και χαρακτηριστικών μοντέλων. Τώρα, ας δούμε το πρόγραμμα για να μάθουμε πώς εφαρμόζεται στο ESP32 χρησιμοποιώντας το Arduino IDE. Πριν συνεχίσουμε, θα ήθελα να χρησιμοποιήσω αυτόν τον χώρο για να ευχαριστήσω τον Andreas Spiess για το βίντεό του BLE που έκανε τα πράγματα πολύ ξεκάθαρα από την πλευρά μου.
Ξεκινάμε το πρόγραμμα εισάγοντας τις απαιτούμενες βιβλιοθήκες στο σκίτσο μας. Υπάρχουν πολλά πράγματα που μπορείτε να διαμορφώσετε για να χρησιμοποιήσετε τη λειτουργία BLE του ESP32, ελπίζουμε όμως χάρη στον Neil Kolban που έχει ήδη κάνει τη σκληρή δουλειά για εμάς και έχει προσφέρει τις βιβλιοθήκες. Αν θέλετε να κατανοήσετε τη λειτουργικότητα των βιβλιοθηκών, μπορείτε να ανατρέξετε στην τεκμηρίωσή του στη σελίδα github.
#περιλαμβάνω
Στη συνέχεια πρέπει να ορίσουμε τη λειτουργία διακομιστή-επιστροφής για τη συσκευή μας Bluetooth. Πριν από αυτό ας καταλάβουμε ότι είναι η λειτουργία επανάκλησης στο BLE.
Τι είναι η λειτουργία επανάκλησης στο BLE;
Όταν το BLE λειτουργεί ως διακομιστής, είναι σημαντικό να ορίσετε μια λειτουργία επιστροφής διακομιστή. Υπάρχουν πολλοί τύποι επιστροφών κλήσεων που σχετίζονται με το BLE, αλλά για να το κάνουμε απλό, θεωρείτε ότι αυτά γίνονται επιβεβαίωση για να βεβαιωθείτε ότι η ενέργεια έχει ολοκληρωθεί. Μια επαναφορά διακομιστή χρησιμοποιείται για να διασφαλίσει ότι η σύνδεση μεταξύ πελάτη και διακομιστή έχει δημιουργηθεί με επιτυχία.
Χρησιμοποιούμε τις ακόλουθες γραμμές κώδικα για να πραγματοποιήσουμε μια επιστροφή κλήσης διακομιστή.
bool _BLEClientConnected = false; τάξη MyServerCallbacks : δημόσια BLEServerCallbacks { void onConnect (BLEServer * pServer) { _BLEClientConnected = true; }; void onDisconnect (BLEServer * pServer) { _BLEClientConnected = false; } }
Μέσα στη λειτουργία κενής ρύθμισης , ξεκινάμε τη σειριακή επικοινωνία στο 115200 για εντοπισμό σφαλμάτων και στη συνέχεια προετοιμάζουμε τη συσκευή Bluetooth μέσω της λειτουργίας InitBLE
άκυρη ρύθμιση () { Serial.begin (115200); Serial.println ("Ένδειξη στάθμης μπαταρίας - BLE"); InitBLE (); }
Το initBLE είναι το μέρος όπου συμβαίνει όλη η μαγεία. Πρέπει να δημιουργήσουμε έναν διακομιστή Bluetooth και να χρησιμοποιήσουμε την υπηρεσία επιπέδου μπαταρίας εδώ. Αλλά πριν από αυτό πρέπει να ορίσουμε το UUID για σέρβις, χαρακτηριστικό και περιγραφή για την ανάγνωση του επιπέδου της μπαταρίας. Όλα τα UUID μπορούν να ληφθούν από τον ιστότοπο υπηρεσιών Bluetooth GATT. Για την περίπτωσή μας προσπαθούμε να χρησιμοποιήσουμε την υπηρεσία μπαταρίας και το UUID για αυτό ορίζεται ως 0X180F όπως φαίνεται παρακάτω.
Στη συνέχεια, πρέπει να γνωρίζουμε το χαρακτηριστικό που σχετίζεται με αυτήν την υπηρεσία. Για να το ξέρετε, απλώς κάντε κλικ στο Service Battery και θα μεταφερθείτε στη σελίδα Χαρακτηριστικά Service, όπου αναφέρεται ότι το επίπεδο μπαταρίας είναι το όνομα των χαρακτηριστικών και παίρνει την τιμή από 0 έως 100. Σημειώστε επίσης ότι μπορούμε να εκτελέσουμε μόνο δύο ενέργειες με αυτό το χαρακτηριστικό, το ένα είναι να διαβάσετε το οποίο είναι υποχρεωτικό να κάνετε και το άλλο να ειδοποιήσετε το οποίο είναι προαιρετικό Πρέπει λοιπόν να στείλουμε την τιμή της μπαταρίας στον πελάτη (Τηλέφωνο) που είναι υποχρεωτική και, εάν χρειαστεί, μπορούμε να ειδοποιήσουμε το τηλέφωνο για το ποια είναι προαιρετική.
Αλλά περιμένετε, δεν βρήκαμε ακόμη την τιμή UUID για το χαρακτηριστικό επίπεδο μπαταρίας. Για να το κάνετε αυτό, μπείτε στη σελίδα Χαρακτηριστικό μπαταρίας και αναζητήστε το όνομα επιπέδου μπαταρίας, θα βρείτε το UUID του ως 0X2A19, το στιγμιότυπο του ίδιου φαίνεται παρακάτω.
Τώρα που έχουμε όλες τις τιμές, ας το θέσουμε στο πρόγραμμα όπως φαίνεται παρακάτω. Το όνομα BatterySerivce , BatteryLevelCharacteristic και BatteryLevelDescriptor είναι μεταβλητές που καθορίζονται από τον χρήστη και αναφέρονται στην Υπηρεσία, το Χαρακτηριστικό και τον Περιγραφέα που χρησιμοποιούμε στο πρόγραμμα. Η τιμή για το πρόγραμμα περιγραφής 0X2901 χρησιμοποιείται όταν το μέγεθος της τιμής είναι 8-bit, περισσότερες πληροφορίες μπορείτε να βρείτε στη σελίδα Περιγραφή περιγραφέα.
#define BatteryService BLEUUID ((uint16_t) 0x180F)
BLECharacteristic BatteryLevelCharacteristic (BLEUUID ((uint16_t) 0x2A19), BLECharacteristic :: PROPERTY_READ - BLECharacteristic :: PROPERTY_NOTIFY); BLEDescriptor BatteryLevelDescriptor (BLEUUID ((uint16_t) 0x2901));
Επιστροφή στη λειτουργία initBLE . Πρέπει πρώτα να ξεκινήσουμε τον διακομιστή BLE και να τον διαφημίσουμε με ένα όνομα. Οι ακόλουθες γραμμές χρησιμοποιούνται για την εκκίνηση του BLE ως διακομιστή. Το όνομα που έχω δώσει στον διακομιστή BLe μου είναι "BLE Battery", αλλά μπορείτε να επιλέξετε το δικό σας.
BLEDevice:: init ("Μπαταρία BLE"); // Δημιουργήστε τον διακομιστή BLE BLEServer * pServer = BLEDevice:: createServer (); pServer-> setCallbacks (νέο MyServerCallbacks ());
Στη συνέχεια πρέπει να ξεκινήσουμε την υπηρεσία GATT αφού έχουμε ήδη ορίσει το UUID, μπορούμε απλώς να ξεκινήσουμε την υπηρεσία χρησιμοποιώντας την παρακάτω γραμμή.
// Δημιουργία υπηρεσίας BLE BLEService * pBattery = pServer-> createService (BatteryService);
Μόλις ξεκινήσει η υπηρεσία, μπορούμε να συνδέσουμε τον περιγραφέα με χαρακτηριστικά και να ορίσουμε τις τιμές. Η υπηρεσία BLE2902 προστίθεται επίσης εδώ όπως φαίνεται παρακάτω.
pBattery-> addCharacteristic (& BatteryLevelCharacteristic); BatteryLevelDescriptor.setValue ("Ποσοστό 0 - 100"); BatteryLevelCharacteristic.addDescriptor (& BatteryLevelDescriptor); BatteryLevelCharacteristic.addDescriptor (νέο BLE2902 ());
Τελικά όλα έχουν ρυθμιστεί, τώρα το μόνο που μένει είναι να ζητήσουμε από το ESP32 να διαφημιστεί έτσι ώστε άλλες συσκευές όπως το τηλέφωνό μας να μπορούν να το ανακαλύψουν και να συνδεθούν σε αυτό, και όταν συνδέεται με έναν πελάτη θα πρέπει να ξεκινήσει την υπηρεσία μπαταρίας που μπορεί να γίνει αν και ακόλουθες γραμμές.
pServer-> getAdvertising () -> addServiceUUID (BatteryService); pBattery-> έναρξη (); // Ξεκινήστε τη διαφήμιση pServer-> getAdvertising () -> start ();
Αυτό είναι τόσο καλό, το τελευταίο βήμα είναι να πείτε στον περιγραφέα ποια είναι η τιμή της μπαταρίας σε ποσοστό που πρέπει να αποσταλεί στον πελάτη (Τηλέφωνο). Αυτή η τιμή μπορεί να είναι από 0 -100 όπως διαβάσαμε νωρίτερα, για να κρατήσω τα πράγματα απλά, έχω απλή κωδικοποίηση η τιμή της μπαταρίας να είναι 57 και στη συνέχεια αυξάνεται κάθε 5 δευτερόλεπτα και ξεκινά από το 0 μόλις φτάσει στα 100. Ο κώδικας που πρέπει να κάνετε που φαίνεται παρακάτω. Σημειώστε ότι η τιμή που αποστέλλεται είναι σε μορφή unit8_t.
uint8_t επίπεδο = 57; void loop () { BatteryLevelCharacteristic.setValue (& επίπεδο, 1); BatteryLevelCharacteristic.notify (); καθυστέρηση (5000) επίπεδο ++; Serial.println (int (επίπεδο)); εάν (int (επίπεδο) == 100) επίπεδο = 0; }
Δοκιμή της υπηρεσίας GATT στο ESP32 BLE
Ο πλήρης κωδικός που εξηγείται παραπάνω δίνεται στο τέλος της σελίδας. Ανεβάστε τον κωδικό στην πλακέτα ESP32. Μόλις ανεβάσετε το τηλέφωνό σας, θα πρέπει να ανακαλύψετε μια συσκευή Bluetooth που ονομάζεται "BLE Battery" Ζεύγος με αυτήν.
Στη συνέχεια, εγκαταστήστε την εφαρμογή Android nRF και ανοίξτε την και συνδεθείτε στη συσκευή BLE Battery BLE. Αναπτύξτε την ενότητα Υπηρεσία μπαταρίας και θα βρείτε την ακόλουθη οθόνη.
Όπως μπορείτε να δείτε, η εφαρμογή έχει εντοπίσει αυτόματα ότι το BLE παρέχει υπηρεσία μπαταρίας και έχει τα χαρακτηριστικά του επιπέδου μπαταρίας λόγω του UUID που χρησιμοποιήσαμε στο πρόγραμμα. Μπορείτε επίσης να δείτε ότι η τρέχουσα τιμή της μπαταρίας είναι 67% περιμένετε για 5 δευτερόλεπτα και μπορείτε επίσης να παρατηρήσετε ότι αυξάνεται.
Το ωραίο για τη χρήση του BLE είναι ότι τώρα οποιαδήποτε εφαρμογή που λειτουργεί με το BLE θα πιστεύει ότι το ESP32 είναι συσκευή BLE που ειδοποιεί το επίπεδο της μπαταρίας. Για να το δοκιμάσω, χρησιμοποίησα μια εφαρμογή που ονομάζεται BatON και η εφαρμογή αναγνώρισε το ESP32 ως συσκευή Bluetooth με μπαταρία και έδωσα το ποσοστό ειδοποίησης στο τηλέφωνό μου έτσι
Δροσερός!! Σωστά? Έχω δείξει επίσης την πλήρη εργασία στο παρακάτω βίντεο. Τώρα, που έχετε μάθει πώς να χρησιμοποιείτε τις υπηρεσίες μπαταρίας BLE με ESP32, μπορείτε να δοκιμάσετε και άλλες υπηρεσίες GATT, οι οποίες είναι πολύ ενδιαφέρουσες, όπως ο ρυθμός παλμού, το HID, ο καρδιακός ρυθμός κ.λπ.