- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος μονάδας Bluetooth ESP8266 HC-05
- Ενότητα Bluetooth HC-05
- Χρήση του σειριακού τερματικού Bluetooth (εφαρμογή Android)
- Προγραμματισμός NodeMCU ESP8266 για διασύνδεση Bluetooth
Τώρα τις μέρες, το Bluetooth έχει γίνει αναπόσπαστο μέρος των ψηφιακών συσκευών και ενσωματώνεται στις περισσότερες από τις συσκευές όπως Smartphone, Laptop, PC, Camera, Watches, Fitness Bands και πολλές άλλες. Το Bluetooth ήταν πάντα κυρίαρχο πρωτόκολλο στην ασύρματη επικοινωνία από τότε που ανακαλύφθηκε. Αν και η τεχνολογία Bluetooth είναι ουσιαστικά ένα σύστημα αντικατάστασης καλωδίων, αλλά αξιοποιεί επίσης μια γενική γέφυρα σε υπάρχοντα δίκτυα δεδομένων και έναν ad hoc μηχανισμό σύνδεσης για αριθμό συσκευών σε διάφορες διαμορφώσεις. Έχουμε χρησιμοποιήσει τη μονάδα Bluetooth HC05 και HC06 με πολλούς άλλους μικροελεγκτές για να τους κάνουμε να επικοινωνούν ασύρματα:
- Διασύνδεση Bluetooth HC-05 με STM32F103C8 Blue Pill: LED ελέγχου
- Διασύνδεση της μονάδας Bluetooth HC-05 με τον μικροελεγκτή AVR
- Ρομπότ ελεγχόμενου Android με χρήση μικροελεγκτή 8051
- Έλεγχος του Raspberry Pi GPIO χρησιμοποιώντας εφαρμογή Android μέσω Bluetooth
- Bluetooth Car Controlled Toy Car χρησιμοποιώντας το Arduino
Σήμερα θα συνδέσουμε το HC-05 Bluetooth Module με τη δημοφιλή μονάδα Wi-Fi ESP8266 και θα ελέγξουμε ασύρματα ένα LED στέλνοντας εντολές μέσω Bluetooth. Αυτό το LED μπορεί να αντικατασταθεί από ένα ρελέ και μια συσκευή AC για τη δημιουργία μιας εφαρμογής οικιακού αυτοματισμού.
Απαιτούμενα στοιχεία
Σκεύη, εξαρτήματα:
- NodeMCU ESP8266
- Ενότητα Bluetooth HC-05
Λογισμικό:
- Arduino IDE
- Serial Bluetooth Terminal (εφαρμογή Android): Για παρακολούθηση δεδομένων Bluetooth σε έξυπνο τηλέφωνο.
Διάγραμμα κυκλώματος μονάδας Bluetooth ESP8266 HC-05
Το διάγραμμα κυκλώματος για τη σύνδεση της μονάδας Bluetooth HC-05 με το NodeMCU ESP8266 είναι πολύ απλό και φαίνεται παρακάτω:
Απαιτείται μια εξωτερική μονάδα Bluetooth με ESP8266, καθώς δεν διαθέτει ενσωματωμένο Bluetooth όπως το ESP32. Το ESP32 διαθέτει ενσωματωμένο Bluetooth χαμηλής ενέργειας (BLE) και κλασικό Bluetooth, για τα οποία έχουμε προηγουμένως καλύψει λίγα μαθήματα:
- Διακομιστής ESP32 BLE - Υπηρεσία GATT για ένδειξη στάθμης μπαταρίας
- Πελάτης ESP32 BLE - Σύνδεση με Fitness Band για ενεργοποίηση λαμπτήρα
- Πώς να χρησιμοποιήσετε το Serial Bluetooth στο ESP32
Ενότητα Bluetooth HC-05
Το HC-05 είναι μια σειριακή μονάδα Bluetooth. Μπορεί να ρυθμιστεί χρησιμοποιώντας εντολές AT. Μπορεί να λειτουργήσει σε τρεις διαφορετικές διαμορφώσεις (Master, Slave, Loop back). Στο έργο μας θα το χρησιμοποιούμε ως σκλάβος. Τα χαρακτηριστικά της μονάδας HC-05 περιλαμβάνουν,
- Τυπική ευαισθησία -80dBm.
- Προεπιλεγμένος ρυθμός baud: 9600bps, 8 bit δεδομένων, 1 bit διακοπής, χωρίς ισοτιμία.
- Κωδικός αυτόματης αντιστοίχισης: "1234" ή "0000" προεπιλεγμένος κωδικός PIN.
- Έχει 6 καρφίτσες.
- Οι ακίδες Vcc και Gnd χρησιμοποιούνται για την τροφοδοσία του HC-05.
- Οι ακίδες Tx και Rx χρησιμοποιούνται για την επικοινωνία με τον μικροελεγκτή.
- Ενεργοποίηση ακίδας για ενεργοποίηση της μονάδας HC-05. όταν είναι χαμηλή, η μονάδα απενεργοποιείται
- Ο δείκτης κατάστασης ενεργεί το pin. Όταν δεν είναι συνδεδεμένο / συνδεδεμένο με οποιαδήποτε άλλη συσκευή Bluetooth, η λυχνία LED αναβοσβήνει συνεχώς. Όταν είναι συνδεδεμένη / αντιστοιχισμένη με οποιαδήποτε άλλη συσκευή Bluetooth, τότε η λυχνία LED αναβοσβήνει με σταθερή καθυστέρηση 2 δευτερολέπτων.
Για να μάθετε περισσότερα σχετικά με τη λειτουργική μονάδα Bluetooth, ανατρέξτε στα άλλα έργα που σχετίζονται με το Bluetooth.
Χρήση του σειριακού τερματικού Bluetooth (εφαρμογή Android)
Η χρήση αυτής της εφαρμογής είναι πολύ εύκολη και απαιτεί λίγα βήματα. Τα στιγμιότυπα οθόνης δίνονται παρακάτω με βήματα. Απλώς συνδέστε το HC-05 με το Smartphone. Ο προεπιλεγμένος κωδικός είναι «0000» ή «1234», αλλά κυρίως «1234» λειτουργεί.
- Πρώτα κατεβάστε και εγκαταστήστε την εφαρμογή. Στη συνέχεια, μεταβείτε στις συσκευές για να βρείτε το HC-05 Module. Επιλέξτε HC-05 Module που αναζητήθηκε στην εφαρμογή. Εάν δεν βρεθεί, ελέγξτε αν το HC-05 τροφοδοτείται σωστά.
- Αφού κάνετε κλικ στο HC-05 θα συνδεθεί. Τώρα πληκτρολογήστε οποιοδήποτε μήνυμα στο πλαίσιο μηνύματος και στείλτε το. Θα εκτυπωθεί στο Arduino Serial Monitor.
Προγραμματισμός NodeMCU ESP8266 για διασύνδεση Bluetooth
Για τον προγραμματισμό του NodeMCU ESP8266 χρησιμοποιώντας το ArduinoIDE, απλώς συνδέστε το από φορητό υπολογιστή ή υπολογιστή χρησιμοποιώντας καλώδιο Micro USB και ανοίξτε το Arduino IDE. Για αυτό το σεμινάριο, θα χρησιμοποιηθεί το σειριακό υλικό και το σειριακό λογισμικό. Το σειριακό υλικό θα χρησιμοποιηθεί για την ανάγνωση και εγγραφή δεδομένων στο Arduino Serial Monitor και το Sofware Serial θα χρησιμοποιηθεί για επικοινωνία με το HC-05. Όπως πάντα, ο πλήρης κώδικας και το Demo Video δίνονται στο τέλος του σεμιναρίου.
Αρχικά, συμπεριλάβετε τη βιβλιοθήκη Serial λογισμικού, καθώς θα χρησιμοποιηθεί σε αυτό το σεμινάριο.
#περιλαμβάνω
Ορίστε τον πείρο RX και TX για σειριακή επικοινωνία λογισμικού, ορίστε επίσης τον πείρο led που είναι συνδεδεμένος στο NodeMCU. Χρησιμοποιούμε εσωτερικό LED του NodeMCU που βρίσκεται στο Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Ξεκινήστε τη σειρά λογισμικού και υλικού με ρυθμό 9600 baud. Ορίστε το Led Pin ως έξοδο. Εκτυπώστε κάποιο μήνυμα καλωσορίσματος και εντοπισμού σφαλμάτων.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Ξεκίνησε…");
Πρώτον, διαβάστε από τη μονάδα Bluetooth και ορίστε μια περίπτωση που εάν η μονάδα Bluetooth λαμβάνει "B" από το τηλέφωνο, τότε ξεκινήστε να αναβοσβήνει η ένδειξη LED συνδεδεμένη στο D4 του NodeMCU αλλιώς εάν λάβει "S", στη συνέχεια σταματήστε να αναβοσβήνει το led. Δεν χρησιμοποιούμε καθυστέρηση () εδώ. Αλλά το Arduino «millis» θα χρησιμοποιηθεί για να μην παρεμποδίζει την απόδοση του Arduino.
εάν (btSerial.available ()> 0) { char data = btSerial.read (); διακόπτης (δεδομένα) { case 'B': ledB = "blink"; Διακοπή; υπόθεση 'S': ledB = "stop"; Διακοπή; προεπιλογή: break; } }
Το millis ορίζεται και ορίζει την καθυστέρηση στα 500ms, δηλαδή το led θα αναβοσβήνει μετά από κάθε 500ms. Επίσης, μπορείτε να διαμορφώσετε την καθυστέρηση led αλλάζοντας την τιμή του «διαστήματος» Η οδηγημένη κατάσταση θα αλλάξει.
unsigned long currentMillis = millis ();
if (ledB == "blink") { Serial.println ("ξεκίνησε η αναβοσβήνει"); if (currentMillis - previousMillis> = διάστημα) { previousMillis = currentMillis; εάν (ledState == LOW) { ledState = HIGH; } αλλιώς { ledState = LOW; } digitalWrite (led, ledState); } }
Και αυτό θα ολοκληρώσει τον προγραμματισμό NodeMCU to Blink LED ασύρματα χρησιμοποιώντας Bluetooth. Μπορείτε επίσης να αλλάξετε το πρόγραμμα για να κάνετε διαφορετικές εργασίες με LED, όπως το LED που μπορεί να αντικατασταθεί από ένα ρελέ με συσκευή AC για να κάνετε το έργο αυτοματισμού Bluetooth Home. Σε περίπτωση αμφιβολίας ή πρότασης, μεταβείτε στο φόρουμ μας ή σχολιάστε παρακάτω.