Πίνακας περιεχομένων:

OldMan και Bluetooth2: 4 βήματα
OldMan και Bluetooth2: 4 βήματα

Βίντεο: OldMan και Bluetooth2: 4 βήματα

Βίντεο: OldMan και Bluetooth2: 4 βήματα
Βίντεο: Η γκουγκου δεν σεβεται τον πατερα της 2024, Ιούλιος
Anonim
OldMan και Bluetooth2
OldMan και Bluetooth2

Αυτό το Lazy Old Geek (L. O. G.) πήρε τελικά μια μονάδα Bluetooth HC05 από το AliExpress.com. Παρήγγειλα ένα αφού έγραψα αυτό το Instructable:

www.instructables.com/id/OldMan-and-Blueto…

Λοιπόν, πέρασα αρκετές ώρες προσπαθώντας να λειτουργήσει αυτό σε λειτουργία εντολών χωρίς επιτυχία. Ακόμη κατέστρεψα μια μονάδα HC05 (πιθανώς εφαρμόζοντας λάθος τάσεις), οπότε έπρεπε να αγοράσω μια άλλη.

ΣΥΜΒΟΥΛΗ: Η λειτουργία εντολής μιλά με την ίδια τη μονάδα HC05 ή HC06. Η λειτουργία επικοινωνίας μιλά σε άλλη συσκευή Bluetooth.

Αυτό που βρήκα είναι πολλές διαφορές μεταξύ HC05 και HC06. Το HC05 μπορεί να είναι κύριος ή σκλάβος, το HC06 είναι μόνο σκλάβος. Βασικά, ένας κύριος μπορεί να μιλήσει σε έναν σκλάβο, δύο σκλάβοι δεν μπορούν να μιλήσουν μεταξύ τους. Τα HC05 και HC06 έχουν διαφορετικές εντολές. Το HC05 πρέπει να έχει διαμορφωθεί ως υλικό για να μεταβεί στη λειτουργία εντολών, μπορεί να έχει διαφορετικούς ρυθμούς baud για επικοινωνία και λειτουργία εντολών.

Το HC06 βρίσκεται πάντα σε λειτουργία επικοινωνίας και εντολών. Η ρύθμιση του ρυθμού baud για το ένα θα αλλάξει το άλλο.

ΣΥΜΒΟΥΛΗ: Παρακολουθήστε αυτό καθώς δεν το είχα και είχα κάποια προβλήματα.

ΣΥΜΒΟΥΛΗ: Τα διαφορετικά HC05 και HC06 μπορεί να είναι διαφορετικά από αυτά που πήρα.

Το HCO6 θα εκτελεί εντολές, αλλά δεν εμφανίζει πάντα αλλαγμένα αποτελέσματα, π.χ. αλλαγή ονόματος.

Βήμα 1: Αξιολόγηση/τροποποίηση

Αξιολόγηση/τροποποίηση
Αξιολόγηση/τροποποίηση
Αξιολόγηση/τροποποίηση
Αξιολόγηση/τροποποίηση
Αξιολόγηση/τροποποίηση
Αξιολόγηση/τροποποίηση

Επισυνάπτεται ένα σχήμα HC05 παρόμοιο με το δικό μου. Δύο διαφορές που γνωρίζω είναι ότι υπάρχει αντίσταση 2.2K μεταξύ του PIO11 (34) και του πείρου EN και ο ρυθμιστής 3.3v είναι ένα πακέτο 3 ακίδων και δεν έχει καρφίτσα CE. Η συνημμένη εικόνα είναι μια σχηματική εικόνα που νομίζω ότι έχω.

Για σκοπούς προγραμματισμού, αυτό που είναι σημαντικό είναι ότι ο πείρος 34 Key είναι συνδεδεμένος με τον πείρο EN μέσω μιας αντίστασης 2,2K. (Συνδέεται επίσης με το κουμπί, η άλλη πλευρά είναι συνδεδεμένη στα 3.3V)

Το απόθεμα HC05 απαιτεί ισχύ 5V αν και λειτουργεί με σήματα 3.3V, οπότε τροποποίησα το HCO5 μου για να χρησιμοποιήσω 3.3V αντ 'αυτού. Αφαίρεσα τον ρυθμιστή 3.3V και έτρεξα έναν βραχυκυκλωτήρα από τον πείρο VCC απευθείας στα 3.3V. Αυτό φαίνεται στην τροποποιημένη σχηματική και την τροποποιημένη εικόνα μου HC05.

Παρεμπιπτόντως, το συνημμένο HC05 Command Set.pdf έχει μερικές πολύτιμες πληροφορίες σχετικά με τη χρήση του HC05, δυστυχώς, δεν είναι πολύ φιλικό προς το χρήστη.

Βήμα 2: Προγραμματισμός του HC05

Προγραμματισμός του HC05
Προγραμματισμός του HC05
Προγραμματισμός του HC05
Προγραμματισμός του HC05

Αποφάσισα ότι ο ευκολότερος τρόπος χρήσης του HC05 ήταν να το συνδέσω σε έναν από τους σειριακούς προσαρμογείς CP2102 3.3V, όπως έκανα στο Old Man And Bluetooth Instructable με ένα HC06. Δείτε την εικόνα και το σχηματικό.

ΣΗΜΑΝΤΙΚΗ ΣΥΜΒΟΥΛΗ: Για να ενεργοποιήσετε το HC05 στη λειτουργία εντολών, ο ακροδέκτης PIO11 (34) πρέπει να είναι υψηλός πριν από την εφαρμογή των 3,3V. Ο πείρος EN στο HC05 μου συνδέεται με το PIO11 μέσω μιας αντίστασης 2,2K, οπότε πρέπει απλώς να συνδεθεί με 3,3V. Το σχηματικό δείχνει αυτό καθώς οι καρφίτσες του προγράμματος αλλά απλώς τοποθετήστε έναν βραχυκυκλωτήρα από 3.3V έως τον πείρο EN. Βεβαιωθείτε ότι το κάνετε αυτό πριν εφαρμόσετε ισχύ. Στο δικό μου, μπορείτε να διαπιστώσετε εάν βρίσκεστε σε λειτουργία εντολής, επειδή το LED HC05 θα αναβοσβήνει αργά. Εάν αναβοσβήνει γρήγορα, τότε βρίσκεστε σε κατάσταση σύζευξης και πρέπει να προσπαθήσετε ξανά.

ΣΥΜΒΟΥΛΗ: Το HC05 στη λειτουργία εντολών μιλάει πάντα με ρυθμό 38400 baud. Όλες οι εντολές είναι κεφαλαίες και πρέπει να ακολουθούνται από CR και LF. (Αυτό είναι διαφορετικό από το HC06)

ΣΥΜΒΟΥΛΗ: Η μορφή εντολών είναι πολύ αυστηρή. Χρησιμοποιείτε πάντα καπάκια. Όλα ξεκινούν με "AT" Ακολουθήστε τα ακριβώς, δεν μπορείτε να προσθέσετε κενά όπου δεν εμφανίζονται.

Ξεκινήστε το Arduino. Μεταβείτε στο "Εργαλεία" "Θύρα" και επιλέξτε τη θύρα Com στην οποία είναι συνδεδεμένο το CP2102.

Ανοίξτε το Serial Monitor. Στο κάτω μέρος αυτού του παραθύρου, επιλέξτε "Και NL και CR" και "38400 baud". (NL σημαίνει New Line που είναι το ίδιο με το LF που είναι Line Feed).

Προς το επάνω μέρος, υπάρχει ένα πλαίσιο δίπλα στο κουμπί Αποστολή, κάντε κλικ σε αυτό.

Στον υπολογιστή σας ενεργοποιήστε το Caps Lock

Πληκτρολογήστε AT

Το μεγάλο παράθυρο πρέπει να εμφανίζει "OK".

Επικοινωνείτε σε λειτουργία εντολών

Μερικές εντολές που λειτουργούν στο δικό μου

ΣΤΟ

AT+RESET

ΣΤΗ+ΕΚΔΟΣΗ;

ΣΤΟ+ΟΝΟΜΑ;

AT+ADDR; ΠΡΟΣΘΗΚΗ: 98D3: 31: F5CB41

AT+NAME = BT1 Αυτό αλλάζει το όνομα σε BT1

ΣΤΟ+ΡΟΛΟ; 0 = Σκλάβος 1 = Κύριος

Βήμα 3: Επανεξετάστηκε το HC06

HC06 Επανεξετάστηκε
HC06 Επανεξετάστηκε

Μία από τις κύριες διαφορές μεταξύ του HC05 και του HC06 είναι ότι το HC05 μπορεί να είναι master ή slave ενώ το HC06 είναι μόνο slave. Αυτό σημαίνει ότι μπορείτε να μιλήσετε μεταξύ ενός HC05 και ενός HC06. Ωστόσο, υπάρχουν πολλές άλλες διαφορές.

Ενώ μπορούσα να χρησιμοποιήσω ένα Arduino για τη ρύθμιση του HC06 μου, επέλεξα να χρησιμοποιήσω ένα 3.3v CP2102. Δείτε εικόνα

Συνδέσεις

CP2102 HC06

Gnd Gnd

Vcc Vcc

TXD RXD

RXD TXD

Αυτό είναι βασικά το ίδιο με το HC05 εκτός από το HC06 που έχω μόνο τέσσερις ακίδες.

Το CP2102 μου έχει τροποποιηθεί για παροχή 3.3V

Το HC06 μου έχει τροποποιηθεί ώστε να δέχεται 3.3V

Το USB CP2102 είναι συνδεδεμένο στον υπολογιστή μου. Στον υπολογιστή μου χρησιμοποιώ το Arduino IDE.

Επιλέξτε τη σωστή "Θύρα" και ανοίξτε τη Σειριακή οθόνη.

Στο HC06 μου, η κόκκινη λυχνία LED αναβοσβήνει γρήγορα, πράγμα που υποδηλώνει ότι είναι έτοιμο για ζεύξη, αλλά μπορεί επίσης να λάβει εντολές.

Μερικές από αυτές τις πληροφορίες προήλθαν από τον Martyn Currey:

www.martyncurrey.com/arduino-and-hc-06-zs-0…

Έτσι, κάθε τύπος HC06 μπορεί να είναι διαφορετικός, ο δικός μου επιστρέφει το VERSION linvorV1.5

Για το HC06 μου (και πιθανώς όλα), δεν υπάρχει ειδική διαδικασία για να το βάλω σε λειτουργία εντολών. Προφανώς, αν δεν έχει αντιστοιχιστεί, μπορείτε πάντα να στέλνετε εντολές μέσω της σειριακής θύρας.

ΣΥΜΒΟΥΛΗ: δεν μπορείτε να στείλετε εντολές σε καμία μονάδα Bluetooth (που γνωρίζω) μέσω Bluetooth.

Ανοίξτε το Serial Monitor

Κάντε κλικ στο πρώτο πλαίσιο στο κάτω μέρος της Σειριακής οθόνης και ορίστε το "χωρίς γραμμή που τελειώνει"

Αρχικά, το ποσοστό baud μου ήταν 9600 baud

Στον υπολογιστή σας ενεργοποιήστε το Caps Lock

Στο επάνω κουτί πληκτρολογήστε AT

Πληκτρολογήστε Enter ή πατήστε το κουμπί "Αποστολή"

Η οθόνη πρέπει να εμφανίζεται ΟΚ

ΣΥΜΒΟΥΛΗ: Εάν δεν λάβετε OK, μπορεί να οφείλεται στο ότι ο ρυθμός baud άλλαξε ή είναι διαφορετικός. Μπορείτε να δοκιμάσετε διάφορα, έως ότου, ελπίζουμε, να βρείτε το σωστό.

ΣΗΜΕΙΩΣΗ: Με την αποστολή πολλαπλών εντολών, τα δεδομένα απόκρισης δεν μετατοπίζονται στην επόμενη γραμμή. Προς το κάτω μέρος, μπορείτε να κάνετε κλικ στην επιλογή Εκκαθάριση εξόδου.

Εντολές που λειτουργούν για μένα:

Απόκριση εντολών

ΣΤΟ+ΕΚΔΟΣΗ OKlinvorV1.5

AT+NAMEFred returnOKsetname

(Δεν σας λέει το όνομα, αλλά αν συνδεθεί με Bluetooth, θα εμφανιστεί.)

ΣΗΜΕΙΩΣΗ: αν αλλάξετε το όνομα, το παλιό όνομα θα εμφανιστεί στο smartphone σας έως ότου αποσυνδέσετε και επανασυνδέσετε.

AT+PINxxx Δεν το έχω δοκιμάσει. Το defaut είναι 1234

AT+BAUD8 Αλλάζει το ποσοστό Baud σε 115200

Η απόκριση είναι baud rate, π.χ. 115200

(Μετά την αλλαγή του ρυθμού baud, πρέπει να αλλάξετε τον ρυθμό baud Serial Monitor σε 115200 για να στείλετε περαιτέρω εντολές.

Επιλογές ρυθμού Baud

1 1200

2 2400

3 4800

4 9600 (προεπιλογή)

5 19200

6 38400

7 57600

8 115200

9 230400

Α 460800

Β 921600

C 1382400

ΣΗΜΕΙΩΣΗ: Δεν έχω δοκιμάσει υψηλότερα από 8 115200. Έχω ακούσει άτομα που δοκιμάζουν υψηλότερα ποσοστά με κακά αποτελέσματα.

Οι άλλες εντολές που υποτίθεται ότι λειτουργούν αλλά δεν δοκιμάζονται:

AT+PN χωρίς έλεγχο ισοτιμίας (προεπιλογή)

AT+PO περίεργος έλεγχος ισοτιμίας

AT+PE ακόμη και έλεγχος ισοτιμίας

ΣΗΜΑΝΤΙΚΟ: Σε αυτό το σημείο, θα σας πρότεινα να αποφασίσετε για ένα μοναδικό όνομα και να το βάλετε. Θα σας πρότεινα επίσης να αποφασίσετε για το ποσοστό baud στο οποίο θέλετε να επικοινωνήσετε, τοποθετήστε το και σημειώστε το HC06 σας με αυτό.

Βήμα 4: Ρύθμιση HC05 σε HC06

Εντάξει, αυτό το Instructable ήταν πιο χρήσιμο για μένα:

www.instructables.com/id/How-to-Configure-…

Η ρύθμιση μου:

SLAVE εύρεση διεύθυνσης

HC06 με CP2102 (αυτόματα σε λειτουργία εντολών)

Συνδέστε το καλώδιο USB CP2102 για να τροφοδοτήσετε το HC06.

Η λυχνία LED HC06 πρέπει να αναβοσβήνει γρήγορα (λειτουργία σύζευξης).

Στο smartphone σας, ανοίξτε τις ρυθμίσεις

Μεταβείτε στο Bluetooth

Αναζήτηση νέας συσκευής

Αν δείτε κάτι σαν το HC06 ή το όνομα που του δώσατε, επιλέξτε αυτό.

Πιθανότατα θα δείτε μια σειρά από αριθμούς όπως 00: 12: 09: 27: 19: 13, μάλλον αυτό είναι.

Γράψτε αυτήν τη διεύθυνση. (Ο αριθμός είναι η μοναδική του διεύθυνση)

Επιλέξτε το

Όταν σας ζητηθεί καρφίτσα, πληκτρολογήστε 1234.

Το όνομα πρέπει να εμφανίζεται.

Εάν εξακολουθείτε να μην έχετε τη διεύθυνση, στην ενότητα "Συσκευές που συνδέθηκαν προηγουμένως" Επιλέξτε το όνομα.

Κάντε κλικ στην επιλογή Πληροφορίες, θα πρέπει να εμφανιστεί η διεύθυνση. Σημειώστε το.

Εάν δεν εμφανίζεται, βγείτε από τη ρύθμιση και ανοίξτε την εφαρμογή Bluetooth Terminal HC-05.

Στην ενότητα Ζευγαρωμένες συσκευές, βρείτε το όνομα, η διεύθυνση πρέπει να βρίσκεται κάτω από αυτό, γράψτε το.

Slave Setup

Εάν η λυχνία LED HC06 δεν αναβοσβήνει, κάντε κύκλο ισχύος για να την επαναφέρετε στη λειτουργία αντιστοίχισης.

Ξεκινήστε το Arduino

Στην ενότητα "Εργαλεία" "Θύρα" Επιλέξτε τη σωστή θύρα Com

Άνοιγμα σειριακής οθόνης

Στο κάτω μέρος αυτού του παραθύρου

Επιλέξτε "Δεν τελειώνει γραμμή" και "9600 baud"

ΚΥΡΙΟΣ

HC05 με CP2102 ρυθμισμένο στη λειτουργία εντολών (EN jumpered high)

Συνδέστε το καλώδιο USB από το CP2102 στον υπολογιστή

Ανακάλυψα ότι μπορώ να ανοίξω δύο Arduinos

Στο δεύτερο Arduino, επιλέξτε τη σωστή θύρα Com για το HC05

Άνοιγμα σειριακής οθόνης

Στο κάτω μέρος του παραθύρου

Επιλέξτε "Και το NL&CR" και το "38400 baud"

Τα παρακάτω είναι από το παραπάνω Instructable

Κύρια διαμόρφωση

Οι απαιτούμενες εντολές AT για να ορίσετε τη διαμόρφωση:

ΕΝΤΟΛΗ ΑΠΑΝΤΗΣΗ Τι κάνει

AT+ROLE = 1 OK Ορίστε το HC05 ως κύριο

AT+CMODE = 1 OK Σύνδεση σε συγκεκριμένη διεύθυνση

ΣΗΜΕΙΩΣΗ: Η διεύθυνση HC06 είναι πιθανότατα διαμορφωμένη με αυτόν τον τρόπο 00: 12: 09: 27: 19: 13

Η εντολή BIND αναμένει αυτό το 0012, 09, 27193 (βγάζετε τα άνω και κάτω τελεία, παίρνετε τους τέσσερις πρώτους αριθμούς, μετά κόμμα, τους δύο επόμενους αριθμούς, μετά κόμμα, μετά τους έξι τελευταίους αριθμούς)

AT+BIND = 0012, 09, 271913 OK Συνδέεται/συνδέεται με το HC06

(Παρεμπιπτόντως, το AT +BIND; απαντά με +BIND: 12: 9: 271913)

(Θέλετε η ταχύτητα επικοινωνίας HC05 να είναι η ίδια με την HC06) για παράδειγμα:

AT+UART = 115200, 0, 0 OK Baud ποσοστό 115200 (1ος μπιτ, χωρίς ισοτιμία)

Για να δοκιμάσετε τις επικοινωνίες:

Αφαιρέστε τον βραχυκυκλωτήρα HC05 EN, κύκλος ισχύος.

Όταν συνδέονται και τα δύο, η λυχνία LED HC05 θα αναβοσβήνει δύο φορές κάθε λίγα δευτερόλεπτα, η λυχνία LED HC06 θα παραμένει συνεχώς αναμμένη.

Ορίστε και τις δύο θύρες com στον ίδιο ρυθμό baud (ό, τι κι αν ρυθμίσετε)

Ορίστε και τα δύο σε "Και τα δύο NL & CR"

Πληκτρολογήστε κάτι στο Serial Monitor1, το Serial Monitor2 θα πρέπει να το εμφανίζει.

Πληκτρολογήστε κάτι στο Serial Monitor2, το Serial Monitor1 θα πρέπει να το εμφανίζει.

Συγχαρητήρια, επικοινωνείτε μέσω Bluetooth

Τώρα το παραπάνω Instructable έχει μερικά σκίτσα για τον τρόπο χρήσης των ενοτήτων με το Arduino. Για αυτό το Instructable, δεν θα εμβαθύνω σε αυτό.

Συνιστάται: