AT-Befehlsmodus des Bluetooth-Moduls HC-05 und HC-06

AKTUALISIERT am 18. Juli: Sie können jetzt mit einer Arduino-Karte in den AT-Modus von HC-05 wechseln (Arduino uno wird in diesem Tutorial verwendet).

AKTUALISIERT 7. Juli: Ich hatte die Gelegenheit, ein HC06-Modul zu testen. Diese Anleitung behandelt jetzt auch das HC-06-Modul. :) :)

Es kann verwirrend sein, mehrere Bluetooth-Module mit demselben Namen zu haben. Manchmal müssen möglicherweise die Standardeinstellungen wie die Baudrate oder die Master / Slave-Rolle des Moduls geändert werden. Diese Anleitung zeigt, wie Sie mithilfe des USB-TTL-Konverters in den AT-Befehlsmodus des Bluetooth-Moduls HC05 / HC-06 wechseln. Alternativ können Sie für HC-05 ein Arduino-Board verwenden.

Bedarf:

1.HC-05 / HC-06 Bluetooth-Modul mit Breakout-Board.

2.USB zu TTL Konverter: Ich habe PL2303HX USB zu TTL Konverter verwendet. Jeder andere USB-zu-TTL-Konverter funktioniert auch. / Arduino-Karte, Arduino-Uno, das in diesem Tutorial verwendet wird, andere Karten sollten funktionieren.

3. Arduino IDE / Tera Term: Es kann von hier heruntergeladen werden. Wenn Sie Arduino nicht herunterladen möchten, laden Sie Tera Term von hier herunter.

Schritt 1: Identifizieren Ihres Moduls

Als erstes müssen Sie Ihr Modul identifizieren. Es kann entweder HC05 oder HC06 sein. Beide Module haben bis auf die Pinbelegung die gleiche Funktionalität. Auch HC05 kann sowohl als Master als auch als Slave fungieren, während HC06 nur als Slave fungiert. Es ist schwer, zwischen den beiden nur durch Sehen zu unterscheiden. Ein wahrscheinlicher Weg wäre, die Rückseite des Breakout-Boards zu überprüfen. Wenn auf der Rückseite "JY-MCU" steht, handelt es sich wahrscheinlich um einen HC06. Meins hat "ZS-040" geschrieben und es ist ein HC05. Und das von mir getestete HC06-Modul hatte ein Bluetooth-Zeichen mit drei Leiterplattenabdrücken (siehe Abbildung 2). Um die Geräteidentität zu bestätigen, können Sie das Modul einschalten, auf Ihrem PC oder Mobiltelefon nach einem neuen Gerät suchen und in der Liste der gefundenen Geräte nach HC05 oder HC06 suchen.

Schritt 2: Pinbelegung und Aufrufen des AT-Modus

PINS: Die Pins auf dem Breakout Board sind:

SCHLÜSSEL: Dieser Stift muss hochgezogen werden, um in den AT-Modus zu gelangen.
VCC: Der angezeigte Bereich beträgt 3, 6 bis 6 Volt. Um auf der sicheren Seite zu sein, sollten Sie es an 3, 3 Volt anschließen.
GND: Boden.
RXD: Serieller Eingangspin.
TXD Serieller Ausgangspin.
STATE: Kann an einen Pin angeschlossen sein oder nicht. Gibt angeblich den Bluetooth-Verbindungsstatus aus. Dieser Pin wird nicht benötigt.

Einige der Breakout-Boards haben einen EN-Pin oder sogar einen WAKE UP-Pin anstelle des KEY-Pins. Keiner von ihnen scheint mit einem Modulstift verbunden zu sein. Aber das spielt keine Rolle, weil wir sie sowieso nicht brauchen würden.

Sobald Sie das Modul identifiziert haben, ist es jetzt Zeit, in den AT-Modus zu wechseln.
Für HC05: Verbinden Sie den Rx-Pin des Bluetooth-Moduls mit dem Tx-Pin des USB-TTL-Konverters und den Tx-Pin des Bluetooth-Rx-Pins des Konverters. Schließen Sie auch ihre Masse an, aber schließen Sie den Vcc noch nicht an. Zuerst müssen Sie den Schlüsselstift mit dem Vcc kurzschließen. Verbinden Sie den Schlüsselstift und Vcc auf dem Steckbrett oder auf andere Weise miteinander. Nachdem alle anderen Pins angeschlossen sind, verbinden Sie Vcc des BT-Moduls mit dem Vcc des USB-TTL-Wandlers. Jetzt blinkt die LED am Modul im Abstand von 2 Sekunden. Das heißt, es ist in den AT-Modus eingetreten. Wenn die LED schneller blinkt, wurde der AT-Modus nicht aktiviert. Trennen Sie Vcc, überprüfen Sie Ihren Stromkreis und versuchen Sie es erneut. Wenn es nicht funktioniert, besteht die Möglichkeit, dass Ihr KEY-Pin des Moduls nicht wirklich mit dem KEY des Hauptchips, dh dem 34. Pin, verlötet ist. Sie können dies mit Hilfe eines Multimeters überprüfen.

Wenn Sie ein Arduino Uno verwenden, verbinden Sie den Rx-Pin des Bluetooth-Moduls mit Pin 11 von Arduino Uno (angeblich dasselbe für Arduino Mega) und den Tx-Pin von Bluetooth mit Pin 10 von Arduino. Verbinden Sie auch den Schlüsselstift des Moduls mit Pin 9 des Arduino und Masse mit Masse, aber schließen Sie den Vcc noch nicht an. Sie müssen zuerst das Arduino einschalten und dann Vcc anschließen, wie Sie es bei einem USB-zu-TTL-Konverter getan haben.

Für HC06: Verbinden Sie einfach den Rx des Moduls mit dem Tx des USB-TTL-Wandlers und dem Tx des Moduls. Masse und Vcc verbinden. Das Modul befindet sich im AT-Modus. Hab das nicht kommen sehen, oder? : P Es stellt sich heraus, dass das HC06-Modul permanent als Slave konfiguriert ist und sich immer im AT-Modus befindet, wenn es nicht mit einem anderen Gerät gekoppelt ist. Es gibt also keine Bestätigungs-LED, die blinkt, dass sie sich im AT-Modus befindet, wie dies bei HC05 der Fall ist. Schalten Sie einfach das Modul ein und übergeben Sie die AT-Befehle, um die Standardeinstellungen zu ändern.

Verbindungsübersicht:

HC05 USB zu TTL Arduino
Vcc Vcc Vcc
Rx Tx Pin 11
Tx Rx Pin 10
Gnd Gnd Gnd
Schlüssel Vcc Pin 9

HC06 USB zu TTL

Vcc Vcc
Rx Tx
Tx Rx
Gnd Gnd

Schritt 3: Wenn der Schlüsselstift nicht vorhanden oder nicht verbunden ist

Nur für HC05 : Wie bereits erwähnt, verfügen einige Modelle der Breakout-Platine nicht über den Schlüsselstift, sondern über einen EN- (Freigabe-) Stift oder einen WAKE UP-Stift, der wie der STATE-Stift mit einem beliebigen Stift verbunden sein kann oder nicht. In diesem Fall müssen Sie einen Draht an den 34. Pin des BT-Moduls anlöten. Ich habe einen Stecker an meinen gelötet, aber wenn Sie nicht löten können oder wollen, können Sie einfach einen Draht halten (das spitze Ende eines Stecker-Stecker-Überbrückungsdrahtes wäre praktisch), während Sie den Vcc an 5 Volt anschließen. Sobald sich das BT-Modul im AT-Modus befindet, können Sie den Draht freigeben.

HC06 benötigt keinen Schlüsselstift.

Schritt 4: Einrichten der Verbindung

Für HC05:

Sobald sich das Modul im AT-Modus befindet, öffnen Sie Arduino. Gehen Sie zu Extras> Serieller Anschluss> Wählen Sie den COM-Anschluss aus, an den Ihr USB-TTL-Konverter angeschlossen ist (um dies herauszufinden, gehen Sie zum Geräte-Manager Ihres PCs> Anschlüsse (COM & LPT)). Öffnen Sie nun den seriellen Monitor. Das BT-Modul kommuniziert jetzt mit einer Baudrate von 38400. Ändern Sie daher die Baudrate in der unteren rechten Ecke des seriellen Monitors auf 38400. Ändern Sie auch "kein Zeilenende" in "sowohl NL als auch CR", das sich direkt neben der Baudrate befindet.

Wenn Sie keine Arduino IDE haben, laden Sie den Tera-Begriff herunter (der ein ausgezeichneter Terminal-Emaluator ist). Öffnen Sie Tera Begriff. Ein Popup-Fenster wird geöffnet. Wählen Sie Seriell und wählen Sie den COM-Port, an den der USB-zu-TTL-Konverter angeschlossen ist. Drücken Sie OK und eine Verbindung wird hergestellt. Gehen Sie nun zu Setup> Serielle Schnittstelle> Stellen Sie die Baudrate auf 38400 ein. Gehen Sie nach dem Einrichten der Baudrate zu Setup> Terminal> Ändern Sie die neue Leitung im Dropdown-Menü in CR + LF. Aktivieren Sie auch das lokale Echo-Kästchen unter Newline. Jetzt ist die Einrichtung abgeschlossen.

Wenn Sie eine Arduino-Karte (UNO / MEGA) verwenden, kopieren Sie den folgenden Code und fügen Sie ihn ein. Dies ist nur eine Modifikation des in Arduino-Beispielen enthaltenen Beispiels für eine serielle Software.

//////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //////////////////

#umfassen

SoftwareSerial mySerial (10, 11); // RX, TX

void setup () {

Serial.begin (9600);

PinMode (9, OUTPUT); digitalWrite (9, HIGH);

Serial.println ("AT-Befehle eingeben:");

mySerial.begin (38400);

}}

void loop ()

{

if (mySerial.available ())

Serial.write (mySerial.read ());

if (Serial.available ())

mySerial.write (Serial.read ());

}}

//////////////////////////////////////////////////////// //////////////////////////////////////////////////////// ////////////////////////

Laden Sie den Code auf die Arduino-Karte hoch. Öffnen Sie nach dem Hochladen des Codes den seriellen Monitor, ändern Sie "kein Zeilenende" in "NL & CR" unten, schließen Sie ihn und trennen Sie die Arduino-Karte vom USB. Verbinden Sie nun Arduino wieder mit USB, verbinden Sie VCC des Bluetooth-Moduls mit Arduino 5 Volt und öffnen Sie den seriellen Monitor. Die LED am Modul sollte im Abstand von 2 Sekunden blinken. Das heißt, es ist in den AT-Modus eingetreten. Jetzt können Sie AT-Befehle eingeben.

Für HC06:

Jetzt gibt es einen kleinen Nachteil für HC06, es wartet nicht auf ein Abschlusszeichen für jeden AT-Befehlseingang. Stattdessen wirkt es auf das Zeichen, das Sie nach einer Sekunde eingegeben haben. Wenn Sie einen Befehlseingang nicht innerhalb einer Sekunde abschließen können, wird er ignoriert. Aufgrund dieses Verhaltens kann es äußerst schwierig sein, die manuelle Eingabe mit der Windows Hyper-Terminal-Software zu konfigurieren. Es muss eine Terminalsoftware verwendet werden, die das Batch-Senden mehrerer Zeichen ermöglicht. Ich fand, dass Arduino gut funktioniert. Wenn Sie dagegen den Tera-Begriff verwenden, müssen Sie die AT-Befehle in einen Notizblock schreiben und dann in den Tera-Begriff kopieren und einfügen. Wenn Sie mit der rechten Maustaste auf Tera term console klicken, wird die kopierte Zeile automatisch eingefügt und sofort ausgeführt.

Sobald das Modul an den USB-TTL-Konverter angeschlossen und eingeschaltet ist, öffnen Sie Arduino, wählen Sie den USB-TTL-COM-Port aus und stellen Sie die Baudrate auf 38400 ein. Im Gegensatz zu HC05 müssen keine anderen Einstellungen vorgenommen werden. Wählen Sie für Tera therm den entsprechenden COM-Port aus, gehen Sie zu Setup> Serielle Schnittstelle> stellen Sie die Baudrate auf 38400 ein, gehen Sie zu Setup> Terminal> Aktivieren Sie das Kontrollkästchen für das lokale Echo und alles ist eingestellt.

Schritt 5: AT-Befehle

Für HC05: Geben Sie "AT" (ohne Anführungszeichen) auf dem seriellen Monitor ein und drücken Sie die Eingabetaste. Wenn "OK" angezeigt wird, ist alles in Ordnung und das Modul ist bereit, den Befehl zu übernehmen. Jetzt können Sie den Namen des Moduls ändern, Adresse oder Version abrufen oder sogar auf die Werkseinstellungen zurücksetzen. Geben Sie AT + NAME ein, um den Standardnamen anzuzeigen. Der Name wird abgefragt, standardmäßig ist es HC-05 oder JY_MCU oder so ähnlich. Um den Namen zu ändern, geben Sie einfach AT + NAME = Ihren gewünschten Namen ein.

Hier ist ein wichtiger Hinweis: Wenn der Schlüsselstift nicht hoch ist, dh während des Empfangs von AT-Befehlen nicht mit Vcc verbunden ist (wenn Sie den Draht nicht gelötet und freigegeben haben, nachdem das Modul in den AT-Modus gewechselt ist), wird nicht einmal der Standardname angezeigt nach dem richtigen Befehl. Sie können den Namen jedoch weiterhin mit dem oben genannten Befehl ändern. Um zu überprüfen, ob sich der Name wirklich geändert hat, durchsuchen Sie das Gerät von Ihrem PC / Mobiltelefon aus. Der geänderte Name wird angezeigt. Um die Baudrate zu ändern, geben Sie AT + UART = gewünschte Baudrate ein. Beenden Sie den Vorgang, indem Sie den Befehl AT + RESET senden.

Die nützlichsten AT-Befehle sind

AT: Überprüfen Sie die Verbindung.
AT + NAME: Siehe Standardname
AT + ADDR: siehe Standardadresse
AT + VERSION: Siehe Version
AT + UART: Siehe Baudrate
AT + ROLE: Siehe Rolle des BT-Moduls (1 = Master / 0 = Slave)
AT + RESET: Zurücksetzen und Verlassen des AT-Modus
AT + ORGL: Werkseinstellungen wiederherstellen
AT + PSWD: Siehe Standardkennwort

Detailliertere AT-Befehle finden Sie im 1. PDF.

Für HC06: Geben Sie auf dem seriellen Arduino-Monitor "AT" (ohne Anführungszeichen) ein und drücken Sie die Eingabetaste. "OK" bestätigt den AT-Modus. Im Gegensatz zu HC05 können Sie den Standardnamen oder die Baudrate nicht sehen. Sie können sie nur ändern. Beachten Sie zum Ändern des Namenstyps AT + NAMEDESIRED NAME, dass zwischen Befehl und Name kein Leerzeichen stehen darf. Das Modul antwortet OKIhr Set-Name. Beispielsweise setzt AT + NAMEPROTOTYPE den Namen auf PROTOTYPE. Um die Baudrate zu ändern, geben Sie AT + BAUDX ein, wobei X = 1 bis 9 ist.

1 auf 1200bps eingestellt
2 auf 2400 bps eingestellt
3 auf 4800 bps eingestellt
4 auf 9600bps eingestellt (Standard)
5 auf 19200bps eingestellt
6 auf 38400 bps eingestellt
7 auf 57600 bps eingestellt
8 auf 115200 bps eingestellt
Wenn Sie also AT + BAUD4 senden, wird die Baudrate auf 9600 eingestellt.

Notieren Sie für Tera Term die Befehle an einer anderen Stelle und fügen Sie sie mit der rechten Maustaste in die Konsole ein. Drücken Sie nicht die Eingabetaste. Der Befehl wird sofort ausgeführt und bestätigt.

HC 06 AT-Befehle sind begrenzt, alles, was ich finden konnte, ist hier angegeben.

AT: Überprüfen Sie die Verbindung
AT + NAME: Namen ändern. Kein Leerzeichen zwischen Name und Befehl.
AT + BAUD: Baudrate ändern, x ist Baudratencode, kein Leerzeichen zwischen Befehl und Code.
AT + PIN: Pin wechseln, xxxx ist der Pin, wieder kein Leerzeichen.
AT + VERSION

Weitere Details im 2. pdf.

Anhänge

  • HC-0305 Serail Modul AT Commamd Set 201104 revidiert_2.pdf Download
  • EGBT-045MS-046S Handbuch für Bluetooth-Module rev 1r0.pdf Download

Ähnlicher Artikel