Inhaltsverzeichnis:

OldMan und Bluetooth2 - Gunook
OldMan und Bluetooth2 - Gunook

Video: OldMan und Bluetooth2 - Gunook

Video: OldMan und Bluetooth2 - Gunook
Video: Плавучий дом Gibson, 44 Classic, 1996 г., исключительно чистый и множество обновлений! Никаких разочарований! 2024, November
Anonim
OldMan und Bluetooth2
OldMan und Bluetooth2

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

Auswertung/Änderung
Auswertung/Änderung
Auswertung/Änderung
Auswertung/Änderung
Auswertung/Änderung
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

Programmierung des HC05
Programmierung des HC05
Programmierung des HC05
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

HC06 erneut besucht
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.