- Απαιτούμενα υλικά
- Ενότητα Bluetooth (HC-05)
- Θύρες START32 USART
- Διάγραμμα κυκλώματος και συνδέσεις
- Προγραμματισμός STM32F103C8
- Βήματα για τη σύνδεση της μονάδας Bluetooth με τηλέφωνο Android
Στον σημερινό κόσμο το Bluetooth έχει γίνει πολύ δημοφιλές και σχεδόν κάθε συσκευή, όπως κινητό τηλέφωνο, φορητός υπολογιστής, και το σύστημα ψυχαγωγίας αυτοκινήτων χρησιμοποιεί Bluetooth για ασύρματη επικοινωνία. Το Bluetooth δεν χρησιμοποιείται μόνο για τη μεταφορά δεδομένων, αλλά και για τον ασύρματο έλεγχο άλλων συσκευών Bluetooth, όπως με τη χρήση ακουστικών Bluetooth, μπορείτε να ακούτε το τραγούδι ασύρματα από το κινητό σας τηλέφωνο ή να χρησιμοποιήσετε το σύστημα ήχου αυτοκινήτου για την αναπαραγωγή των τραγουδιών από το κινητό σας.
Το Bluetooth είναι μια ασύρματη τεχνολογία που λειτουργεί με συχνότητα 2,4 GHz. Το κανονικό σήμα Bluetooth κυμαίνεται σε ακτίνα 10 μέτρων. Το Bluetooth χρησιμοποιείται συχνότερα ασύρματη τεχνολογία σε ενσωματωμένα έργα, υπό την προϋπόθεση ότι το εύρος της επικοινωνίας είναι περιορισμένο. Το Bluetooth έχει προσθέσει πλεονέκτημα της χαμηλής κατανάλωσης ενέργειας και της λειτουργίας χαμηλού κόστους. Χρησιμοποιείται γενικά για τη διασύνδεση μικροελεγκτών με έξυπνα τηλέφωνα χρησιμοποιώντας εφαρμογές Bluetooth.
Έχουμε δει τη διασύνδεση της μονάδας Bluetooth με άλλους μικροελεγκτές όπως τα Arduino, 8051, PIC κ.λπ. Τώρα σε αυτό το σεμινάριο θα συνδέσουμε μια μονάδα Bluetooth HC-05 με STM32F103C8 και ΕΝΕΡΓΟΠΟΙΗΣΗ / Σβήσιμο ενός LED χρησιμοποιώντας Android κινητό.
Απαιτούμενα υλικά
- STM32F103C8
- Ενότητα Bluetooth (HC-05)
- LED
- Android για κινητά
- Ψωμί
- Σύνδεση καλωδίων
Λογισμικό:
- Τερματικό Bluetooth (Εφαρμογή Android)
Ενότητα Bluetooth (HC-05)
Χρησιμοποιείται ως επί το πλείστον μονάδα Bluetooth σε ενσωματωμένα έργα. Πρόκειται για μια σειριακή μονάδα Bluetooth που χρησιμοποιεί σειριακή επικοινωνία που έχει εμβέλεια μικρότερη από 100 μέτρα και λειτουργεί στα 5V (ελάχιστο 3,3V). Μπορεί να χρησιμοποιηθεί για ασύρματη σύνδεση δύο μικροελεγκτών και επίσης με κινητό τηλέφωνο και φορητούς υπολογιστές. Καθώς υπάρχουν πολλές διαθέσιμες εφαρμογές Android, είναι πολύ χρήσιμο για την κατασκευή ασύρματων ελεγχόμενων έργων Bluetooth.
Χρησιμοποιεί επικοινωνία USART και μπορεί να διασυνδεθεί με μικροελεγκτές με πρωτόκολλο επικοινωνίας USART.
Διαθέτει ενσωματωμένη κεραία. Έχει διαμορφώσεις Master / Slave που μπορούν να αλλάξουν σε λειτουργία εντολών AT που είναι χρήσιμη όταν μόνο μία συσκευή θα πρέπει να στείλει τα δεδομένα (master to slave) όπως για παράδειγμα από PC (MASTER) σε slave (οποιοδήποτε MCU). Ένας κύριος μπορεί να συνδεθεί σε άλλες συσκευές και ο σκλάβος δεν συνδέεται με άλλη σύνδεση εκτός από τον κύριο.
Τρόποι λειτουργίας
Έχει δύο λειτουργίες AT Command Mode & Data Mode.
Όταν το Bluetooth είναι ενεργοποιημένο, μπαίνει στην προεπιλεγμένη λειτουργία δεδομένων. Αυτή η λειτουργία μπορεί να χρησιμοποιηθεί για μεταφορά δεδομένων. Για να μπείτε στη λειτουργία εντολών AT κατά την ενεργοποίηση πρέπει να πατήσουμε το κουμπί που υπάρχει στη μονάδα για να αλλάξουμε τις προεπιλεγμένες ρυθμίσεις της μονάδας, όπως οι διαμορφώσεις master / slave.
Καρφίτσες της μονάδας Bluetooth
- EN pin (ENABLE) -Αυτή η καρφίτσα χρησιμοποιείται για τη ρύθμιση της λειτουργίας δεδομένων ή της λειτουργίας εντολών AT. Από προεπιλογή είναι σε ΛΕΙΤΟΥΡΓΙΑ ΔΕΔΟΜΕΝΩΝ. Όταν πατηθεί το κουμπί κατά την ενεργοποίηση, μεταβαίνει στη λειτουργία εντολών AT.
- + 5V pin - Χρησιμοποιείται για τροφοδοσία ρεύματος στη μονάδα
- Καρφίτσα GND - Χρησιμοποιείται για γείωση για μονάδα
- Καρφίτσα TX - Αυτός ο ακροδέκτης για σύνδεση σε ακροδέκτη RX του MCU
- Πείρος RX - Αυτός ο πείρος συνδέεται με τον ακροδέκτη TX του MCU
- STATE - Αυτή η καρφίτσα δείχνει την κατάσταση της ενότητας, δείτε παρακάτω σχετικά με τις ενδείξεις
Ένδειξη LED
- Διαθέτει ένδειξη LED (ΚΟΚΚΙΝΟ) που παρέχει την κατάσταση της μονάδας Bluetooth.
- Όταν η μονάδα Bluetooth ΔΕΝ ΣΥΝΔΕΔΕΤΑΙ με οποιαδήποτε συσκευή, το σήμα πηγαίνει χαμηλά και η κόκκινη λυχνία αναβοσβήνει συνεχώς, πράγμα που υποδηλώνει ότι η μονάδα ΔΕΝ ΣΥΜΒΑΙΝΕΙ.
- Όταν η μονάδα Bluetooth είναι ΣΥΝΔΕΔΕΜΕΝΗ με οποιαδήποτε συσκευή, το σήμα πηγαίνει ΥΨΗΛΟ και η κόκκινη λυχνία αναβοσβήνει με κάποια καθυστέρηση που υποδηλώνει ότι η μονάδα είναι PAIRED.
Ελέγξτε τα άλλα έργα μας για να μάθετε περισσότερα σχετικά με τη μονάδα Bluetooth HC-05 με άλλους μικροελεγκτές:
- Bluetooth Car Controlled Toy Car χρησιμοποιώντας το Arduino
- Σύστημα οικιακού αυτοματισμού ελεγχόμενου Bluetooth με χρήση 8051
- Φωνητικά ελεγχόμενα φώτα χρησιμοποιώντας Raspberry Pi
- Ραδιόφωνο FM ελεγχόμενο από έξυπνο τηλέφωνο χρησιμοποιώντας Arduino και Processing
- Ρομπότ αυτοκινήτου ελεγχόμενο από κινητό τηλέφωνο χρησιμοποιώντας G-Sensor και Arduino
- Διασύνδεση της μονάδας Bluetooth HC-06 με τον μικροελεγκτή PIC
Θύρες START32 USART
Οι θύρες σειριακής επικοινωνίας USART STM32F103C8 (BLUE PILL) εμφανίζονται στην παρακάτω εικόνα pin out. Αυτά έχουν μπλε χρώμα που έχουν (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Διαθέτει τρία τέτοια κανάλια επικοινωνίας.
Διάγραμμα κυκλώματος και συνδέσεις
Οι συνδέσεις κυκλώματος για διασύνδεση της μονάδας Bluetooth με STM32 γίνονται όπως παρακάτω
Σύνδεση μεταξύ μονάδας STM32F103C8 & Bluetooth (HC-05)
- Ο ακροδέκτης TX (PA9) του STM32F103C8 συνδέεται με τον ακροδέκτη RX της μονάδας Bluetooth.
- Ο ακροδέκτης RX (PA10) του STM32F103C8 είναι συνδεδεμένος στον ακροδέκτη TX της μονάδας Bluetooth.
- Ο ακροδέκτης VCC (+ 5V) της μονάδας Bluetooth συνδέεται με τον ακροδέκτη 5V του STM32F103C8.
- Ο ακροδέκτης GND της μονάδας Bluetooth συνδέεται με τον ακροδέκτη GND του STM32F103C8.
Άλλες συνδέσεις
- Ο πείρος (PA0) του STM32 (Blue Pill) συνδέεται με θετικό πείρο LED μέσω μιας αντίστασης σειράς. Το LED που χρησιμοποιείται εδώ είναι μικτό χρώμα.
- Ο οδηγός ένας άλλος πείρος συνδέεται με το GND του STM32.
Προγραμματισμός STM32F103C8
Η διασύνδεση Bluetooth με STM32 είναι ίδια με το arduino και ο προγραμματισμός στο STM32 είναι ίδιο με το Arduino IDE. Δείτε αυτό το σεμινάριο για τον προγραμματισμό STM32 με USB χρησιμοποιώντας το Arduino IDE.
Όπως έχει ήδη ειπωθεί, σε αυτό το έργο, θα συνδέσουμε μια μονάδα Bluetooth (HC-05) με το STM32F103C8 και θα χρησιμοποιήσουμε ένα Android Smart Phone με εφαρμογή Android Terminal Terminal για να ενεργοποιήσετε και να σβήσετε το LED.
Σημείωση: Ο πείρος RX & TX πρέπει να αφαιρεθεί κατά τη μεταφόρτωση του κωδικού στο STM32F103C8.
Ο πλήρης κώδικας για αυτό το έργο δίνεται στο τέλος αυτού του σεμιναρίου με ένα βίντεο επίδειξης.
Η κωδικοποίηση για αυτό το έργο είναι τόσο απλή. Μπορούν να χρησιμοποιηθούν οι ίδιοι κωδικοί Arduino, αλλά μόνο το pin πρέπει να αλλάξει. Επειδή έχουμε τρία σετ καρφίτσας USART στο STM32F103C8, οπότε πρέπει να καθορίσουμε τη σωστή ακίδα που χρησιμοποιήσαμε για τη σύνδεση της μονάδας Bluetooth.
1. Πρώτα πρέπει να ονομάσουμε τους ακροδέκτες με τον αντίστοιχο αριθμό pin με τον τύπο δεδομένων int ως εξής
const int pinout = PA0;
2. Στη συνέχεια χρειαζόμαστε μια μεταβλητή για την αποθήκευση σειριακών δεδομένων από το κινητό Android. Τα δεδομένα μπορούν να είναι char ή ακέραιος ως εξής
char inputdata = 0;
3. Στη συνέχεια, στη ρύθμιση void (), πρέπει να ξεκινήσουμε τη σειριακή επικοινωνία μεταξύ του STM32 Blue Pill και της μονάδας Bluetooth δίνοντας ρυθμό baud 9600
Serial1.begin (9600);
Χρησιμοποιήσαμε το Serial1 εδώ επειδή συνδέσαμε το HC-05 με το TX1 και το RX1 του STM32.
Μπορούμε επίσης να χρησιμοποιήσουμε το Serial2 ή το Serial3, αλλά κατά συνέπεια ο πείρος πρέπει να είναι συνδεδεμένος.
4. Ένα εισαγωγικό μήνυμα αποστέλλεται ως σειριακά δεδομένα στο serial1, δηλαδή στη μονάδα Bluetooth HC05. Αυτή η ενότητα στέλνει περαιτέρω δεδομένα στην εφαρμογή Bluetooth Terminal του Android mobile. Χρησιμοποιούμε λοιπόν τις παρακάτω δηλώσεις
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH WITH STM32 \ n");
5. Στη συνέχεια, πρέπει να ορίσουμε το pinmode (PA0) ως έξοδο, καθώς συνδεθήκαμε οδήγησε σε αυτό το pin. Έτσι χρησιμοποιούμε
pinMode (pinout, OUTPUT);
6. Στη συνέχεια στον βρόχο κενού (), τρέχουμε τα ακόλουθα δεδομένα για να διαβάσουμε τα σειριακά δεδομένα και να ανάψουμε / απενεργοποιήσουμε ανάλογα το LED
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, ΥΨΗΛΟΣ); Serial1.print ("LED ON \ n"); } αλλιώς εάν (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Εδώ χρησιμοποιούμε τη δήλωση if επειδή αυτός ο κώδικας εκτελείται μόνο όταν η θύρα Serial1 έχει δεδομένα που έχουν ληφθεί από τη μονάδα Bluetooth, για τον οποίο χρησιμοποιείται αυτή η δήλωση Serial1.available ()> 0 . Διαφορετικά, εάν δεν μπει, περιμένει μέχρι να ξεκινήσει η σειριακή επικοινωνία. Τώρα αποθηκεύει τα ληφθέντα δεδομένα σε μια μεταβλητή inputdata = Serial1.read (). Στη συνέχεια, ελέγχει την τιμή που αποστέλλεται από την εφαρμογή τερματικού Bluetooth. Επομένως, εάν η τιμή είναι 1, εκτυπώνει το LED ON και κάνει τον πείρο (PA0) να πηγαίνει ΥΨΗΛΟΣ με τη δήλωση digitalWrite (pinout, HIGH) και εάν η τιμή είναι 0, εκτυπώνει το LED OFF και κάνει τον πείρο (PA0) να πηγαίνει LOW.
Βήματα για τη σύνδεση της μονάδας Bluetooth με τηλέφωνο Android
Βήμα 1: - Ανοίξτε το Bluetooth από το κινητό μετά τη μεταφόρτωση κώδικα στο STM32 από το Arduino IDE και δίνοντας ισχύ στο κύκλωμα. ΘΥΜΗΘΕΙΤΕ για να αφαιρέσετε την καρφίτσα RX και TX ενώ ΚΑΤΑΡΓΗΣΤΕ τον κωδικό
Βήμα 2: - Στις διαθέσιμες συσκευές επιλέξτε HC-05 και εισαγάγετε τον κωδικό πρόσβασης ως 1234
Βήμα 3: - Μετά τη σύζευξη, ανοίξτε την εφαρμογή Bluetooth Terminal και επιλέξτε σύνδεση συσκευής και επιλέξτε HC-05 όπως φαίνεται παρακάτω
Βήμα 4: - Μετά τη σύνδεση με τη μονάδα Bluetooth HC-05, δώστε τιμές στον ακροδέκτη 1 ή 0 για να ανάψετε και να σβήσετε το LED. Θα λάβετε επίσης ένα μήνυμα ότι το LED είναι ενεργοποιημένο ή απενεργοποιημένο.