Arduino Mikrocontroller Tutorials - Module

Seriellen Datenübertragung mit Bluetoothmodulen

HC-05

Über Bluetoothmodule lassen sich Daten drahtlos von einer serielle Schnittstelle (UART) des µC zu einem Smartphone, Rechner oder einem zweite µC versenden und empfangen. Angeboten werden verschiedene Modelle die sich zum einen im verwendeten Bluetooth-Standard und zum anderen darin unterschieden ob sie sich nur als Slave oder als Master/Slave einsetzten lassen.

BT 2.0 Module lassen sich nicht mit BL 4.0 Modulen verbinden. Die Technik ist zu unterschiedlich.

HC-05 Bluetoothstandard 2.0 (Master o. Slave)
HC-06 Bluetoothstandard 2.0 (nur Slave)
HM-10 Bluetoothstandard 4.0 Low Energy (Master/Slave)

Teilweise lassen sich die Module nur schwer mit einem Partner verbinden. Die BT 2.0 Module lassen sich mit einem MAC oder Windows PC über das betriebssystemeigene Programm verbinden Bei den HM-10 Modulen mit BLE Technologie benötigt man dafür ein extra Programm (Suchbegriff: BLE Scanner, BLE Monitor).

Pinbelegung, LED und Button

VCC Positive Versorgungsspannung 3,3V-6V
GND Negative Versorgungsspannung
RXD UART RX (empfängt Daten von µC)
TXD UART TX (sendet Daten an den µC)
State Gibt den aktuellen Status aus und ist bei den Modulen nicht einheitlich. Nicht anschließen!
EN Damit kann man den AT Modus "Enablen". Ist aber auch nicht bei allen Modulen glich. Nicht anschließen!

AT-Befehle zum Einstellen der Module

Um Parameter wie den Anzeigenamen, das Passwort o.ä an den Modulen zu ändern müssen diese zunächst in den sogenannten "Command- Modus" (bzw. AT-Modus) gebracht werden. Dazu is es wichtig, dass die Module mit keinem weiteren Gerät verbunden sind. Die Befehle sind zwischen den Modulen recht unterschiedlich. In der Tabelle sind die Befehle für vier unterschiedliche Module angegeben. Gut möglich, dass es noch weitere gibt.

HM-10 (V1) HM-10 (V2) HC-06 HC-05
Default Name BT05 HMSoft HC-06 H-C-2010-06-01
Default Pin 123456 000000 1234 1234
Default Baudrate der Bluetooth-Übertragung und Kabelübertragung 9600(4) 9600(0) 9600(4) 9600
Immer 38400 für AT-Befehle
AT Modus aufrufen Direkt nach Anschluss der Spannungsversorgung Direkt nach Anschluss der Spannungsversorgung Direkt nach Anschluss der Spannungsversorgung Drücken des Tasters während gleichzeitig das Modul an die Spannungsversorgung angeschlossen wird.
Led Anzeige im AT Modus Blinken jede Sekunde Led ist aus Schnelles Blinken Blinken alle 2 Sekunden
AT-Befehl
Zeichen beim drücken von Return
NL+CR egal kein Zeichen NL+CR
Name anzeigen
Name ändern
AT+NAME
AT+NAMEmeinName
AT+NAME?
AT+NAMEmeinName
nicht möglich
AT+NAMEmeinName
AT+NAME?
AT+NAME=meinName
Pin anzeigen
Pin ändern
AT+PIN
AT+PINneuerPin
AT+PASS?
AT+PASSneuerPin
nicht möglich
AT+PINneuerPin
AT+PSWD?
AT+PSWD=neuerPin
Baudrate anzeigen
Baudrate ändern
AT+BAUD
AT+BAUDn
AT+BAUD?
AT+BAUDn
nicht möglich
AT+BAUDn
AT+UART?
AT+UART=Baudrate,0,0
BT Adresse anzeigen AT+LADDR AT+ADDR? AT+ADDR?
Auf Werkseinstellung rücksetzten AT+DEFAULT AT+RENEW AT+ORGL
Sonstiges Baudrate n:
1=1200 | 5=19200
2=2400 | 6=38400
3=4800 | 8=115200
4=9600 | 7=57600
Baudrate n:
0=9600 | 1=19200
2=38400 | 3=57600
4=115200 | 5=4800
6=2400 | 7=1200
Baudrate n:
1=1200 | 5=19200
2=2400 | 6=38400
3=4800 | 8=115200
4=9600 | 7=57600
Um das Modul zu verbinden muss der AT-Modus verlassen werden (Ziel: schnelles Blinken)
Led Anzeige bei bestehender BT Verbindung Leuchtet dauerhaft Leuchtet dauerhaft Leuchtet dauerhaft Doppelblinken alle 4 Sekunden

Programm zum Übertragen der AT Befehle

#include "SoftwareSerial.h" SoftwareSerial BT(8,7); void setup() { Serial.begin(9600); BT.begin(38400); // 38400 für HC-05, 9600 für HC-06 und HM-10 BT.println("AT"); // AT-Befehl. Bei erfolgreicher Verbindung Rückgabe 'OK' } void loop() { if (BT.available()) { Serial.print(BT.readString()); } if (Serial.available()) { BT.println(Serial.readString()); } }