Inhaltsverzeichnis:
- Schritt 1: Auswertung/Änderung
- Schritt 2: Programmierung des HC05
- Schritt 3: HC06 erneut besucht
- Schritt 4: Einrichten von HC05 bis HC06
Video: OldMan und Bluetooth2 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
So hat dieser Lazy Old Geek (L. O. G.) endlich ein Bluetooth HC05 Modul von AliExpress.com bekommen. Ich bestellte eine, nachdem ich dieses Instructable geschrieben hatte:
www.instructables.com/id/OldMan-and-Blueto…
Nun, ich habe mehrere Stunden damit verbracht, erfolglos zu versuchen, dies im Befehlsmodus zum Laufen zu bringen. Ich habe sogar ein HC05-Modul zerstört (wahrscheinlich mit falschen Spannungen) und musste ein anderes kaufen.
TIPP: Der Befehlsmodus spricht mit dem HC05- oder HC06-Modul selbst. Der Kommunikationsmodus spricht mit einem anderen Bluetooth-Gerät.
Was ich gefunden habe, sind viele Unterschiede zwischen HC05 und HC06. Der HC05 kann Master oder Slave sein, der HC06 ist nur Slave. Grundsätzlich kann ein Master mit einem Slave sprechen, zwei Slaves können nicht miteinander sprechen. Die HC05 und HC06 haben unterschiedliche Befehle. Der HC05 muss hardwaremäßig konfiguriert werden, um in den Befehlsmodus zu gehen, er kann unterschiedliche Baudraten für die Kommunikation und den Befehlsmodus haben.
Der HC06 befindet sich immer im Kommunikations- und Kommandomodus. Das Einstellen der Baudrate für das eine ändert das andere.
TIPP: Behalten Sie dies im Auge, da ich es nicht getan habe und einige Probleme hatte.
TIPP: Verschiedene HC05s und HC06s können sich von denen unterscheiden, die ich bekommen habe.
Der HCO6 führt Befehle aus, zeigt jedoch nicht immer geänderte Ergebnisse an, z. B. Namensänderung.
Schritt 1: Auswertung/Änderung
Anbei ist ein HC05-Schema ähnlich wie bei mir. Zwei Unterschiede, die ich kenne, sind, dass es einen 2,2K-Widerstand zwischen PIO11 (34) und dem EN-Pin gibt und der 3,3-V-Regler ein 3-Pin-Gehäuse ist und keinen CE-Pin hat. Das angehängte Bild ist ein markierter Schaltplan von dem, was ich denke.
Wichtig für die Programmierung ist, dass Pin 34 Key über einen 2,2K-Widerstand mit dem EN-Pin verbunden ist. (Es ist auch mit dem Taster verbunden, die andere Seite ist mit 3,3V verbunden)
Der serienmäßige HC05 benötigt 5 V Strom, obwohl er mit 3,3 V-Signalen funktioniert, daher habe ich meinen HCO5 so modifiziert, dass er stattdessen 3,3 V verwendet. Ich habe den 3,3-V-Regler entfernt und einen Jumper vom VCC-Pin direkt auf 3,3 V gelegt. Dies ist auf dem modifizierten Schaltplan und meinem modifizierten HC05-Bild zu sehen.
Übrigens enthält das angehängte HC05 Command Set.pdf einige wertvolle Informationen zur Verwendung des HC05. Leider ist es nicht sehr benutzerfreundlich.
Schritt 2: Programmierung des HC05
Ich entschied, dass der einfachste Weg, den HC05 zu verwenden, darin bestand, ihn an einen meiner seriellen CP2102 3.3V-Adapter anzuschließen, wie ich es in Old Man und Bluetooth Instructable mit einem HC06 getan habe. Siehe Bild und Schaltplan.
WICHTIGER TIPP: Um den HC05 im Befehlsmodus einzuschalten, muss der PIO11-Pin (34) hoch sein, bevor 3,3 V angelegt werden. Der EN-Pin meines HC05 ist über einen 2,2K-Widerstand mit PIO11 verbunden, muss also nur an 3,3V angeschlossen werden. Der Schaltplan zeigt dies als Programm-Pins, aber setzen Sie einfach einen Jumper von 3,3 V auf den EN-Pin. Stellen Sie sicher, dass Sie dies tun, bevor Sie Strom anlegen. Bei mir können Sie erkennen, ob Sie sich im Befehlsmodus befinden, da die HC05-LED langsam blinkt. Wenn es schnell blinkt, befinden Sie sich im Pairing-Modus und müssen es erneut versuchen.
TIPP: Der HC05 spricht im Kommandomodus immer mit 38400 Baudrate. Alle Befehle werden groß geschrieben und müssen von einem CR und LF gefolgt werden. (Dies ist anders als beim HC06)
TIPP: Das Befehlsformat ist sehr streng. Verwenden Sie immer Kappen. Sie beginnen alle mit „AT“. Folgen Sie ihnen genau, Sie können keine Leerzeichen hinzufügen, wo sie nicht angezeigt werden.
Starten Sie Arduino. Gehen Sie zu „Extras“„Port“und wählen Sie den Com-Port aus, mit dem der CP2102 verbunden ist.
Öffnen Sie den seriellen Monitor. Am unteren Rand dieses Fensters wählen Sie „Both NL and CR“und „38400 Baud“. (NL steht für New Line, was gleichbedeutend mit LF ist, was Line Feed ist).
Oben befindet sich neben der Schaltfläche Senden ein Kästchen, klicken Sie darauf.
Aktivieren Sie auf Ihrem PC die Feststelltaste
Typ AT
Das große Fenster sollte „OK“anzeigen.
Sie kommunizieren im Befehlsmodus
Einige Befehle, die bei mir funktionieren
BEI
AT+RESET
AT+VERSION?
AT+NAME?
AT+ADDR? ADDR:98D3:31:F5CB41
AT+NAME=BT1 Dies ändert den Namen in BT1
AT+ROLLE? 0 = Slave 1 = Master
Schritt 3: HC06 erneut besucht
Einer der Hauptunterschiede zwischen dem HC05 und dem HC06 besteht darin, dass der HC05 Master oder Slave sein kann, während der HC06 nur Slave ist. Das heißt, Sie können zwischen einem HC05 und einem HC06 sprechen. Es gibt jedoch viele andere Unterschiede.
Während ich einen Arduino zum Einrichten meines HC06 hätte verwenden können, entschied ich mich für einen 3,3 V CP2102. Siehe Bild
Anschlüsse
CP2102 HC06
Gnd Gnd
Vcc Vcc
TXD RXD
RXD TXD
Dies ist im Grunde das gleiche wie beim HC05, außer dass mein HC06 nur vier Pins hat.
Mein CP2102 ist modifiziert, um 3,3 V zu liefern
Mein HC06 ist so modifiziert, dass er 3.3V. akzeptiert
Der CP2102 USB ist mit meinem PC verbunden. Auf meinem PC verwende ich die Arduino IDE.
Wählen Sie den richtigen „Port“und öffnen Sie den Serial Monitor.
Bei meinem HC06 blinkt die rote LED schnell, was anzeigt, dass er zum Pairing bereit ist, aber auch Befehle empfangen kann.
Einige dieser Informationen stammen von Martyn Currey:
www.martyncurrey.com/arduino-and-hc-06-zs-0…
Jeder HC06-Typ kann also anders sein, meiner gibt die VERSION linvorV1.5 zurück
Für meinen HC06 (und wahrscheinlich alle) gibt es kein spezielles Verfahren, um ihn in den Befehlsmodus zu versetzen. Anscheinend können Sie, wenn es nicht gekoppelt ist, jederzeit Befehle über den seriellen Port senden.
TIPP: Sie können über Bluetooth keine Befehle an ein Bluetooth-Modul (das mir bekannt ist) senden.
Öffnen Sie den seriellen Monitor
Klicken Sie auf das erste Feld unten im Serial Monitor und stellen Sie "kein Zeilenende" ein.
Anfangs war meine Baudrate 9600 Baud
Stellen Sie auf Ihrem PC die Feststelltaste ein
In Top-Box Typ AT
Geben Sie Enter ein oder tippen Sie auf die Schaltfläche "Senden".
Der Bildschirm sollte OK anzeigen
TIPP: Wenn Sie kein OK erhalten, kann dies daran liegen, dass die Baudrate geändert wurde oder eine andere ist. Sie können verschiedene ausprobieren, bis Sie hoffentlich die richtige gefunden haben.
HINWEIS: Beim Senden mehrerer Befehle werden die Antwortdaten nicht in die nächste Zeile verschoben. Ganz unten können Sie auf Ausgabe löschen klicken.
Befehle die bei mir funktionieren:
Befehlsantwort
AT+VERSION OKlinvorV1.5
AT+NAMEFred gibt OKsetname zurück
(Der Name wird nicht angezeigt, aber wenn eine Verbindung über Bluetooth besteht, wird er angezeigt.)
HINWEIS: Wenn Sie den Namen ändern, wird der alte Name auf Ihrem Smartphone angezeigt, bis Sie die Kopplung aufheben und erneut koppeln.
AT+PINxxx Noch nicht ausprobiert. Die Standardeinstellung ist 1234
AT+BAUD8 Ändert die Baudrate auf 115200
Antwort ist Baudrate, z. B. 115200
(Nach dem Ändern der Baudrate müssen Sie die Baudrate von Serial Monitor auf 115200 ändern, um weitere Befehle zu senden.
Baudratenoptionen
1 1200
2 2400
3 4800
4 9600 (Standard)
5 19200
6 38400
7 57600
8 115200
9 230400
A 460800
B 921600
C 1382400
HINWEIS: Ich habe es nicht mit mehr als 8 115200 versucht. Ich habe von Leuten gehört, die höhere Raten mit schlechten Ergebnissen versucht haben.
Die anderen Befehle, die funktionieren sollen, aber nicht getestet wurden:
AT+PN keine Paritätsprüfung (Standard)
AT+PO ungerade Paritätsprüfung
AT+PE gerade Paritätsprüfung
WICHTIG: An dieser Stelle würde ich vorschlagen, dass Sie sich für einen eindeutigen Namen entscheiden und diesen eingeben. Ich würde auch vorschlagen, dass Sie sich für die Baudrate entscheiden, mit der Sie kommunizieren möchten, diesen eingeben und Ihren HC06 damit markieren.
Schritt 4: Einrichten von HC05 bis HC06
Ok, dieses Instructable war für mich am hilfreichsten:
www.instructables.com/id/How-to-Configure-…
Mein Setup:
SLAVE-Suchadresse
HC06 mit CP2102 (automatisch im Kommandomodus)
Schließen Sie das USB-Kabel CP2102 an, um den HC06 mit Strom zu versorgen.
Die HC06-LED sollte schnell blinken (Pairing-Modus).
Öffnen Sie auf Ihrem Smartphone die Einstellungen
Gehe zu Bluetooth
Nach neuem Gerät suchen
Wenn Sie etwas wie HC06 oder den von Ihnen vergebenen Namen sehen, wählen Sie dies aus.
Sie werden höchstwahrscheinlich eine Zahlenfolge wie 00:12:09:27:19:13 sehen, das ist es wahrscheinlich.
Schreiben Sie diese Adresse auf. (Die Nummer ist seine eindeutige Adresse)
Wählen Sie es aus
Wenn Sie nach einem Pin gefragt werden, geben Sie 1234 ein.
Der Name sollte angezeigt werden.
Wenn Sie die Adresse immer noch nicht haben, wählen Sie unter „Zuvor verbundene Geräte“den Namen aus.
Klicken Sie auf Info. Die Adresse sollte angezeigt werden. Schreib es auf.
Wenn es nicht angezeigt wird, verlassen Sie das Setup und öffnen Sie die Bluetooth Terminal HC-05-App.
Suchen Sie unter Gekoppelte Geräte den Namen, die Adresse sollte darunter stehen, notieren Sie ihn.
Slave-Setup
Wenn die HC06-LED nicht blinkt, schalten Sie das Gerät aus- und wieder ein, um es wieder in den Pairing-Modus zu versetzen.
Arduino starten
Wählen Sie unter „Extras“„Port“den richtigen Com-Port
Öffnen Sie den seriellen Monitor
Unten in diesem Fenster
Wählen Sie „Kein Zeilenende“und „9600 Baud“
MEISTER
HC05 mit CP2102 im Befehlsmodus (EN hoch gebrückt)
Stecken Sie das USB-Kabel vom CP2102 in den PC
Ich habe herausgefunden, dass ich zwei Arduinos öffnen kann
Wählen Sie auf dem zweiten Arduino den richtigen Com-Port für HC05
Öffnen Sie den seriellen Monitor
Unten im Fenster
Wählen Sie „Beide NL&CR“und „38400 Baud“
Das Folgende ist aus dem obigen Instructable
Master-Konfiguration
Die erforderlichen AT-Befehle zum Einstellen der Konfiguration:
BEFEHLSANTWORT Was es tut
AT+ROLE=1 OK HC05 als Master einstellen
AT+CMODE=1 OK Mit einer bestimmten Adresse verbinden
HINWEIS: Die HC06-Adresse ist wahrscheinlich wie folgt formatiert: 00:12:09:27:19:13
Der BIND-Befehl erwartet dies 0012, 09, 27193 (Sie nehmen die Doppelpunkte heraus, nehmen die ersten vier Zahlen, dann das Komma, die nächsten beiden Zahlen, dann das Komma, dann die letzten sechs Zahlen)
AT+BIND=0012, 09, 271913 OK Verbindet/Bindet mit HC06
(Übrigens AT+BIND? antwortet mit +BIND:12:9:271913)
(Sie möchten, dass die Kommunikationsgeschwindigkeit des HC05 mit der des HC06 übereinstimmt) zum Beispiel:
AT+UART=115200, 0, 0 OK Baudrate 115200 (1Stopbit, keine Parität)
So testen Sie die Kommunikation:
Entfernen Sie den Jumper HC05 EN, schalten Sie ihn aus und wieder ein.
Wenn die beiden verbunden sind, blinkt die HC05-LED alle paar Sekunden zweimal, die HC06-LED leuchtet kontinuierlich.
Stellen Sie beide COM-Ports auf dieselbe Baudrate ein (was auch immer Sie einrichten)
Setzen Sie beide auf „Beide NL&CR“
Geben Sie etwas auf Serial Monitor1 ein, Serial Monitor2 sollte es anzeigen.
Geben Sie etwas auf Serial Monitor2 ein, Serial Monitor1 sollte es anzeigen.
Herzlichen Glückwunsch, Sie kommunizieren über Bluetooth
Jetzt hat das obige Instructable einige Skizzen zur Verwendung der Module mit Arduino. Für dieses Instructable werde ich mich nicht damit befassen.