Πώς να ρυθμίσετε και να προγραμματίσετε το ESP32 για επικοινωνία με ένα Android Smartphone μέσω Bluetooth

Pos Na Rythmisete Kai Na Programmatisete To Esp32 Gia Epikoinonia Me Ena Android Smartphone Meso Bluetooth



Το ESP32 είναι μια πλακέτα μικροελεγκτή με ένα ευρύ φάσμα δυνατοτήτων. Διαθέτει ενσωματωμένες μονάδες Wi-Fi και Bluetooth. Χρησιμοποιώντας και τις δύο αυτές μονάδες, μπορείτε να προγραμματίσετε το ESP32 ασύρματα. Με αυτό, δεν χρειάζεται να ανησυχείτε για συνδέσεις μακριού καλωδίου για τον έλεγχο των περιφερειακών ESP32.

Σε αυτό το άρθρο, θα συνδέσουμε μια πλακέτα ESP32 με ένα τηλέφωνο Android και θα επικοινωνήσουμε δεδομένα μέσω Bluetooth. Επιπλέον, θα ελέγξουμε μια λυχνία LED συνδεδεμένη με τις ακίδες GPIO του ESP32 απευθείας μέσω του smartphone Android.

Περιεχόμενα:







Τι είναι το ESP32 Bluetooth LE

Το ESP32 είναι μια πλακέτα μικροελεγκτή που υποστηρίζει τόσο το Bluetooth Classic όσο και το Bluetooth Low Energy, γνωστό και ως έξυπνο Bluetooth. Το BLE ή έξυπνο Bluetooth είναι ειδικό για ενεργειακά αποδοτική επικοινωνία ή έχει σχεδιαστεί για επικοινωνία μικρής εμβέλειας ή μικρές μεταφορές δεδομένων.



Η λειτουργία BLE του ESP32 του επιτρέπει να λειτουργεί ως διακομιστής ή πελάτης στις επικοινωνίες Bluetooth. Μπορεί να χειριστεί εργασίες όπως υπηρεσίες ανάγνωσης και γραφής. Μπορεί επίσης να κρυπτογραφήσει συνδέσεις και να δημιουργήσει τις συνδέσεις Serial Port Profile (SPP) για μετάδοση δεδομένων σε λειτουργία pass-through UART-BLE. Το ESP32 Bluetooth υποστηρίζει τα πρωτόκολλα 4.2, πράγμα που σημαίνει ότι είναι συμβατό με διαφορετικά επίπεδα όπως το Physical Layer (PHY) και το Link Layer (LL). Διαθέτει επίσης υποστήριξη για το Host Controller Interface (HCI), μεταξύ άλλων.



Ελέγξτε τον πίνακα διαφορών για ESP32 Classic και BLE Bluetooth.





χαρακτηριστικό Κλασικό Bluetooth Bluetooth χαμηλής ενέργειας (BLE)
Τύπος επικοινωνίας Διαρκής, αμφίδρομη επικοινωνία Διακοπτόμενες, κυρίως μονόδρομες εκρήξεις δεδομένων
Λειτουργικό εύρος Μπορεί να φτάσει έως και 100 μέτρα Λειτουργεί συνήθως κάτω από 100 μέτρα
Χρήση ενέργειας Καταναλώνει έως και 1 Watt Κυμαίνεται από 10 milliwatts έως 500 milliwatts
Ταχύτητα μεταφοράς Οι ρυθμοί μεταφοράς δεδομένων ποικίλλουν από 1 έως 3 Megabit ανά δευτερόλεπτο Υποστηρίζει 125 Kilobits ανά δευτερόλεπτο έως 2 Megabits ανά δευτερόλεπτο
Χρόνος απόκρισης Latency περίπου 100 χιλιοστά του δευτερολέπτου Γρήγορη απόκριση με καθυστέρηση 6 χιλιοστών του δευτερολέπτου
Φωνητική υποστήριξη Εξοπλισμένο με μετάδοση φωνής Δεν διαθέτει λειτουργία μετάδοσης φωνής

Ρίξτε μια ματιά σε αυτά τα άρθρα Bluetooth ESP32 για να μάθετε περισσότερα.

Πώς να προγραμματίσετε το ESP32 για επικοινωνία μέσω Bluetooth με smartphone Android

Για να προγραμματίσετε το ESP32 ώστε να μπορεί να επικοινωνεί με ένα τηλέφωνο Android χρησιμοποιώντας το πρωτόκολλο Bluetooth, πρέπει να ρυθμίσετε τη σειριακή βιβλιοθήκη Bluetooth ESP32. Για αυτό, πρέπει να έχετε μια εγκατάσταση Arduino IDE με εγκατεστημένη μια πλακέτα ESP32.



Αφού ρυθμίσετε το ESP32 Bluetooth, πρέπει να εγκαταστήσετε τη σειριακή εφαρμογή Bluetooth για Android. Αυτό θα σας επιτρέψει να στείλετε οδηγίες από ένα τηλέφωνο Android στο ESP32 χρησιμοποιώντας σειριακή επικοινωνία Bluetooth.

Ας ρίξουμε μια πιο προσεκτική ματιά σε καθένα από αυτά τα βήματα:

Βήματα για τη σύνδεση ESP32 Bluetooth με τηλέφωνο Android

Για να προγραμματίσετε την πλακέτα ESP32 για επικοινωνία Bluetooth, ακολουθήστε τα παρακάτω βήματα:

Βήμα 1: Εγκατάσταση της πλακέτας ESP32 στο Arduino IDE

Για να εγκαταστήσετε το ESP32 στο Arduino IDE, απλώς ακολουθήστε τον οδηγό που παρέχεται σε αυτό το άρθρο.

Εγκατάσταση της πλακέτας ESP32 στο Arduino IDE

Μετά την εγκατάσταση, η πλακέτα ESP32 μπορεί να συνδεθεί και να προγραμματιστεί χρησιμοποιώντας το Arduino IDE.

Βήμα 2: Ανεβάστε τον κωδικό Bluetooth ESP32

Μόλις εγκατασταθεί η πλακέτα ESP32, θα δείτε διαφορετικές προεγκατεστημένες βιβλιοθήκες και τα παραδείγματά τους στο Arduino IDE. Όλες αυτές οι βιβλιοθήκες σχετίζονται με την πλακέτα ESP32. Για σειριακή επικοινωνία Bluetooth, θα χρησιμοποιήσουμε το ESP32 BluetoothSerial.h παράδειγμα κώδικα βιβλιοθήκης.

Για να ανοίξετε το παράδειγμα κώδικα, ανοίξτε το Arduino IDE και μεταβείτε στο: Αρχείο > Παραδείγματα > BluetoothSerial > SerialtoSerialBT

Για να ανοίξετε αυτό το παράδειγμα κώδικα, βεβαιωθείτε ότι είναι επιλεγμένη η πλακέτα ESP32.

Αφού ανοίξετε το παράδειγμα του κώδικα, θα δείτε τον ακόλουθο κώδικα στο παράθυρο του Arduino IDE:

//Καλώς ήρθατε στο Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Καταργήστε το σχόλιο εάν θέλετε το PIN κατά τη σύζευξη
συνθ απανθρακώνω * καρφίτσα = '1234' ; // Καθορίστε ένα προσαρμοσμένο PIN σύζευξης

Όνομα_συσκευής συμβολοσειράς = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Το Bluetooth δεν είναι ενεργοποιημένο! Εκτελέστε το 'make menuconfig' για να το ενεργοποιήσετε
#τέλος εαν

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Το σειριακό Bluetooth λείπει ή δεν είναι ενεργοποιημένο. Είναι διαθέσιμο μόνο για το τσιπ ESP32.
#τέλος εαν

BluetoothSerial SerialBT ;

κενός εγκατάσταση ( ) {
Κατα συρροη. αρχίζουν ( 115200 ) ;
SerialBT. αρχίζουν ( όνομα της συσκευής ) ; //Όνομα συσκευής Bluetooth
Κατα συρροη. printf ( 'Η συσκευή ' % μικρό ' έχει ξεκινήσει. \n Ξεκινήστε τη σύζευξη της συσκευής σας! \n ' , όνομα της συσκευής. c_str ( ) ) ;
//Serial.printf('Η συσκευή '%s' με διεύθυνση MAC %s έχει ξεκινήσει.\nΞεκινήστε τη σύζευξή της με Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( καρφίτσα ) ;
Κατα συρροη. println ( 'Χρήση PIN' ) ;
#τέλος εαν
}

κενός βρόχος ( ) {
αν ( Κατα συρροη. διαθέσιμος ( ) ) {
SerialBT. γράφω ( Κατα συρροη. ανάγνωση ( ) ) ;
}
αν ( SerialBT. διαθέσιμος ( ) ) {
Κατα συρροη. γράφω ( SerialBT. ανάγνωση ( ) ) ;
}
καθυστέρηση ( είκοσι ) ;
}

Αφού ανεβάσετε τον κώδικα, θα δείτε το ακόλουθο μήνυμα στην οθόνη. Αυτό το μήνυμα περιγράφει ότι η πλακέτα ESP32 είναι έτοιμη για σύζευξη.

Βήμα 3: Επεξήγηση κώδικα

Ο κωδικός ξεκίνησε με τη συμπερίληψη των απαραίτητων βιβλιοθηκών και τον έλεγχο για διαθεσιμότητα Bluetooth. Ρυθμίζει επίσης μεταβλητές για το όνομα της συσκευής Bluetooth και το PIN.

Στο εγκατάσταση () λειτουργία, ορίζεται η σειριακή επικοινωνία baud και αρχικοποιείται η συσκευή Bluetooth με το όνομά της. Μπορεί να οριστεί ένα προσαρμοσμένο PIN για έλεγχο ταυτότητας κατά τη σύζευξη.

ο βρόχος() η λειτουργία ελέγχει συνεχώς για τα δεδομένα στις σειριακές συνδέσεις και τις συνδέσεις Bluetooth. Αυτό του επιτρέπει να δημιουργεί αμφίδρομη επικοινωνία μεταξύ του ESP32 και μιας συζευγμένης συσκευής Bluetooth.

Βήμα 4: Εγκαταστήστε την εφαρμογή Android

Μόλις μεταφορτωθεί ο κώδικας, το επόμενο βήμα είναι να εγκαταστήσετε και να διαμορφώσετε την εφαρμογή Android για σύνδεση Bluetooth.

Ανοίξτε το Play Store και εγκαταστήστε το Σειριακό τερματικό Bluetooth εφαρμογή.

Μετά την εγκατάσταση, ανοίξτε τις ρυθμίσεις Bluetooth του smartphone και συνδέστε το τηλέφωνό σας με ESP32 Bluetooth. Εάν έχετε ορίσει ένα PIN στον κωδικό IDE του Arduino, πρέπει να πληκτρολογήσετε το PIN διαφορετικά θα συνδεθεί απευθείας.

Τώρα ανοίξτε την εφαρμογή Serial Bluetooth και επιλέξτε το συσκευές επιλογή.

Από το μενού που μόλις άνοιξε, επιλέξτε τη συσκευή ESP32. Αυτή η λίστα εμφανίζει όλες τις τρέχουσες ενεργές συσκευές Bluetooth.

Όπως μπορείτε να δείτε, το ESP32 Bluetooth είναι συνδεδεμένο με το Android smartphone σας.

Για να δοκιμάσουμε τη σύνδεση, θα στείλουμε μια συμβολοσειρά. Εδώ έχω στείλει δύο διαφορετικές χορδές.

Θα παρατηρήσετε ότι οι ίδιες δύο συμβολοσειρές θα εμφανίζονται επίσης στο τερματικό Arduino IDE.

Τώρα ας προχωρήσουμε ένα βήμα παραπέρα και ας ελέγξουμε ένα εξωτερικό περιφερειακό όπως ένα LED χρησιμοποιώντας ESP32 Bluetooth μέσω του smartphone Android.

Βήμα 5: Έλεγχος LED χρησιμοποιώντας τηλέφωνο Android μέσω Bluetooth

Για να ελέγξετε ένα LED χρησιμοποιώντας το ESP32 και το Android Bluetooth, πρώτα τροποποιήστε τον παραπάνω κώδικα και ορίστε μια ακίδα GPIO για το LED. Μετά από αυτό, πρέπει να ορίσετε τις τιμές για την ενεργοποίηση και απενεργοποίηση του LED.

Ανεβάστε τον παρακάτω κώδικα για να προχωρήσετε περαιτέρω.

#include // Συμπεριλάβετε τη σειριακή βιβλιοθήκη επικοινωνίας Bluetooth

#define LED_PIN 15 // Καθορίστε την ακίδα LED

BluetoothSerial SerialBT ; // Δημιουργία αντικειμένου BluetoothSerial
byte BT_INP ; // Μεταβλητή για αποθήκευση εισόδου Bluetooth

// Ελέγξτε εάν το Bluetooth και το Bluedroid είναι ενεργοποιημένα στη διαμόρφωση του SDK
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Το Bluetooth δεν είναι ενεργοποιημένο. Εκτελέστε το 'make menuconfig' για να το ενεργοποιήσετε.
#τέλος εαν

κενός εγκατάσταση ( ) {
pinMode ( LED_PIN , ΠΑΡΑΓΩΓΗ ) ; // Ορίστε την ακίδα LED ως έξοδο
Κατα συρροη. αρχίζουν ( 115200 ) ;
SerialBT. αρχίζουν ( 'ESP32' ) ; // Εκκίνηση Bluetooth με το όνομα 'ESP32'
Κατα συρροη. println ( 'Η συσκευή Bluetooth είναι έτοιμη για σύζευξη.' ) ; // Υποδείξτε ότι το Bluetooth είναι έτοιμο
}

κενός βρόχος ( ) {
// Ελέγξτε εάν υπάρχουν διαθέσιμα δεδομένα για ανάγνωση από το Bluetooth
αν ( SerialBT. διαθέσιμος ( ) ) {
BT_INP = SerialBT. ανάγνωση ( ) ; // Διαβάστε το εισερχόμενο byte από το Bluetooth
Κατα συρροη. γράφω ( BT_INP ) ; // Echo το byte ανάγνωσης στη σειριακή οθόνη
}

// Ελέγξτε τα ληφθέντα δεδομένα Bluetooth και ορίστε την κατάσταση LED
αν ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , ΥΨΗΛΟΣ ) ; // Ενεργοποιήστε το LED εάν ληφθεί «1».
} αλλού αν ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , ΧΑΜΗΛΟΣ ) ; // Απενεργοποιήστε τη λυχνία LED εάν ληφθεί '0'.
}
}

Αυτός ο κωδικός προορίζεται για έναν μικροελεγκτή ESP32 για τον έλεγχο ενός LED μέσω Bluetooth. Περιλαμβάνει βιβλιοθήκη για επικοινωνία Bluetooth. Στη συνέχεια, ορίζει την ακίδα LED και ρυθμίζει το Bluetooth με μια συσκευή που ονομάζεται ESP32. Ο κύριος βρόχος διαβάζει δεδομένα Bluetooth και ανάβει ή σβήνει τη λυχνία LED με βάση την εντολή που έλαβε (1 για ON, 0 για OFF).

Διάγραμμα κυκλώματος

Το διάγραμμα κυκλώματος είναι απλό, με ένα LED συνδεδεμένο στον ακροδέκτη D15 του ESP32. Μπορείτε να ορίσετε οποιοδήποτε άλλο GPIO για έλεγχο LED.

Σχετίζεται με: ESP32 Pinout Reference–Ultimate Guide

Σκεύη, εξαρτήματα

Σε υλικό, θα χρειαστείτε ένα breadboard, μια πλακέτα ESP32 και ένα LED. Συνδέστε το ESP32 με το σύστημα και ανεβάστε το πρόγραμμα σε αυτό.

Τώρα στείλτε 1 και 0 από την εφαρμογή επικοινωνίας Bluetooth σειριακό τηλέφωνο Android.

Θα δείτε την ίδια είσοδο στο τερματικό Arduino IDE που λαμβάνεται από το τηλέφωνο Android.

Παραγωγή

Μόλις στείλετε την τιμή Υψηλή ή 1 η λυχνία LED θα ανάψει, ομοίως όταν στέλνετε την τιμή Χαμηλή η λυχνία LED θα σβήσει.

Ορίστε ένα προσαρμοσμένο κουμπί

Μπορείτε επίσης να ορίσετε ένα προσαρμοσμένο κουμπί μέσα στην εφαρμογή Serial Bluetooth. Για παράδειγμα, μπορεί να δημιουργηθεί ένα κουμπί υψηλών και χαμηλών τιμών. Με αυτόν τον τρόπο, δεν χρειάζεται να πληκτρολογήσετε μη αυτόματα τις τιμές. Αντίθετα, πρέπει απλώς να πατήσετε το κουμπί συντόμευσης και θα εκτελέσει την εντολή που έχετε ορίσει.

Σημείωση: Για να ανοίξετε τις ρυθμίσεις του κουμπιού, πατήστε παρατεταμένα το κουμπί.

Για να ορίσετε την τιμή του κουμπιού HIGH, ορίστε τις ακόλουθες ρυθμίσεις.

Ομοιότητα για την τιμή του κουμπιού LOW, πρέπει να ορίσετε τις παρακάτω ρυθμίσεις.

Έχουμε συνδέσει επιτυχώς την πλακέτα ESP32 με ένα τηλέφωνο Android χρησιμοποιώντας Bluetooth. Τώρα μπορείτε να δημιουργήσετε πολλά έργα χρησιμοποιώντας το. Όπως, μπορείτε να ελέγξετε τις οικιακές σας συσκευές χρησιμοποιώντας το ESP32 Bluetooth μέσω ενός κυκλώματος ρελέ.

Σχετίζεται με: Ρελέ με ESP32 με χρήση Arduino IDE

συμπέρασμα

Το ESP32 είναι μια προηγμένη πλακέτα μικροελεγκτή με δυνατότητες Wi-Fi και Bluetooth. Και οι δύο αυτές ενσωματωμένες μονάδες σάς βοηθούν να σχεδιάζετε προηγμένα έργα και να ελέγχετε τα περιφερειακά ασύρματα. Ομοίως, μπορείτε να συνδέσετε το ESP32 με ένα τηλέφωνο Android και να εκτελέσετε διαφορετικές λειτουργίες. Για αυτό, θα χρειαστεί να εγκαταστήσετε την εφαρμογή Bluetooth Serial Android. Μόλις εγκατασταθεί, ανοίξτε το παράδειγμα κώδικα για το ESP32 Bluetooth και μεταφορτώστε τον στην πλακέτα σας. Μόλις μεταφορτωθεί ο κωδικός, μπορείτε να τον αντιστοιχίσετε με την πλακέτα σας μέσω ενός τηλεφώνου Android.