Preiswerte Bluetooth Anbindung – Teil 2

Es ist schon eine Weile her (7 Jahre) seit ich eine preiswerte Bluetooth Anbindung für Mikrocontroller wie den Arduino vorgestellt habe. Höchste Zeit für ein Update.

aktuelle Bluetooth Module

Prinzipiell hat sich seit 2008 wenig geändert, allerdings hat sich die Anzahl der verfügbaren Module deutlich erhöht. Nach wie vor benötigen die meisten Module 3,3V Stromversorgung und benötigen eine Anpass-Schaltung zum Anschluss an 5V Mikrocontroller.

Zu den beliebtesten, weil sehr preiswert, zählen die Bluetooth Module des chinesischen Hersteller Wave Sense. Dazu gehören die Module HC-05, HC-06.

HC-05 Modul mit Trägerboard

Es gibt das HC-05 Modul als SMD Version oder mit Trägerboard, wie z.B. von Aukru bei Amazon.

IMG_5684.JPG

Das oben abgebildete Modul verfügt über:

  • einen 6-poligen Pfostenstecker im 0.1″ Raster
  • benötigt 3.6-6V Stromversorgung, läuft nicht mit 3,3V
  • 3.3V Logikpegel für die Signal Leitungen (Pegelwandler notwendig)
  • Taster zum Wechsel in den AT-Mode

HC-05 Modul (5V tolerant)

Ich habe mir auch das SMD Modul besorgt und ein eigenes Trägerboard mit Fritzing erstellt.

IMG_0456.JPG

Schaltplan und Layout Files sind auf Github zu finden. Die Leiterplatte kann per Jumper auch für HC-06 und HM-10 Module verwendet werden.

Das oben abgebildete Modul verfügt über:

  • einen 5-poligen Buchsenleiste im 0.1″ Raster
  • benötigt 3.3V Stromversorgung, läuft nicht mit 5V
  • hat 5V tolerante Logikpegel für die Signal Leitungen

Hier wird 3,3V als Stromversorgung benötigt, das Modul verfügt über keinen eingebauten Spannungswandler. Dafür ist ein Spannungsteiler für die Arduino TXD Leitung vorhanden.

HC-05 Modul (nur für3.3V)

Eine weitere Variante des HC-05 Moduls ist für reinen 3,3V Betrieb ausgelegt. Besitzt keinen Spannungswandler und keine Pegelwandler. Das SMD-Modul sitzt hier auf einer Lochrasterplatte. Das Modul verfügt über eine 6-polige Buchsenleiste mit FTDI kompatiblen Pinbelegung.

IMG_3675.JPG

IMG_3676.JPG

So sieht der Schaltplan zu dem 3,3V Träger-Modul aus:
hc-05-FTDI_Schaltplan.jpg

HC06 Modul mit Trägerboard

Rein äußerlich unterscheiden sich das HC-06 kaum vom HC-05 Modul. Lediglich der Taster fehlt, und es gibt nur einen 4-poligen Steckverbinder. Die Anschlüsse sind auf 0.1″ Steckerleiste herausgeführt. Das Modul ist ebenfalls von Aukru bei Amazon erhältlich.

Beim HC-06 gibt es im Gegensatz zum HC-05 keine Umschaltung zwischen Master und Slave. Stattdessen gibt es verschiedene Module mit unterschiedlicher Firmware. Das Problem dabei ist, dass ein Master Modul nicht zum Anschluss an ein Mikrocontroller taugt. Man muss hier schon den Angaben des Händlers trauen um nicht das falsche Modul geliefert zu bekommen.

IMG_5629.JPG IMG_5630.JPG

Das oben abgebildete Modul verfügt über:

  • einen 4-poligen Pfostenstecker im 0.1″ Raster
  • benötigt 3.6-6V Stromversorgung, läuft nicht mit 3,3V
  • 3.3V Logikpegel für die Signal Leitungen (Pegelwandler notwendig)

Im Datenblatt zum HC-05/06 findet man die komplette Befehlsübersicht

HM-10 Modul (BLE 4.0)

Bluetooth 4.0 oder BLE (Bluetooth Low Energy) ist die neueste Bluetooth Version und verspricht Geräte mit niedrigen Stromverbrauch. Insbesondere bei Smartphones erwies sich eingeschaltes Bluetooth als wahrer Stromfresser. Das soll nun mit BLE ein Ende finden.

Mit dem HM-a0 gibt es ein preisgünstiges Bluetooth Modul. Als SMD Modul oder mit Trägerboard erhältlich, z.B. bei Amazon.

IMG_5627.JPG IMG_5628.JPG

Das oben abgebildete Modul verfügt über:

  • einen 6-poligen Pfostenstecker im 0.1″ Raster
  • benötigt 3.6-6V Stromversorgung, läuft nicht mit 3,3V
  • hat 5V tolerante Logikpegel für die Signal Leitungen

Im Datenblatt zum HM-10 findet man die Befehlsübersicht

Vorsicht Falle:

Ein Falle lauert bei Verwendung von Bluetooth Modulen nach BLE 4.0 Standard. Denn hier muss auch die Gegenstelle (PC, Smartphone Tablett) BLE 4.0 unterstützen. Zwar sind die gängigen Bluetooth 4.0 USB Dongles abwärts kompatibel zu BT 3.0, 2.0 und 1.1, das gilt aber nicht für die Bluetooth Module wie das HM-10. Diese sind nur zu BT 4.0 kompatibel.

Das nächste Problem ergibt sich bei der Anbindung an einen PC. Im BT 4.0 Standard gibt es kein Serial Port Profile (SPP) mehr. Somit wird das Bluetooth Module nicht erkannt, bzw es wird kein Virtual Com Port dafür eingerichtet. Mir ist es nicht gelungen eine Verbindung von Windows PC zum HM-10 Modul herzustellen.

In diesem Fall kann ich für das HM-10 keine Empfehlung aussprechen, wenn man eine Bluetooth Verbindung zwischen PC und Arduino benötigt.

Fazit:

BLE 4.0 Module taugen derzeit nur für Android/IOs Anwendungen, nicht für Desktop Anwendungen. Es sei denn, man schreibt seine eigenen Programme. Auf der Adafruit Seite gibt es dazu einige Quellen.

Adafruit Bluefruit EZ-Link

Das Beste kommt zum Schluss. Mein absolutes Lieblings Modul ist das Adafruit Bluefruit Modul. Hier gibt es nichts zu meckern. Das Modul ist einfach perfekt und funktioniert tadellos.

  • FTDI kompatibles Pinout (direkter Anschluss an Arduino Pro oder Pro Mini)
  • 3.5-16V Eingangsspannungsbereich
  • 3.3 und 5V tolerante Logigsignale
  • Arduino Sketch Upload über Bluetooth möglich (mit AutoReset
  • Auto Baudrate Erkennung
IMG_0460.JPG

Übersicht

Eine Übersicht der wichtigsten Parameter der hier vorgestellten Bluetooth Module:

 HC-05HC-06HM-10EZ-LinkBTM-222
HerstellerWave SenseWave SenseJN HuaMaoAdafruitRayson
BT-KennungHC-05linvorHMsoftAdafruit EZ-LinkSerial Adapter
Kopplungscode1234123400000012341234
Baudraten4800-1.3M
default: 9600
1200-1.3M
default: 9600
9600-230400
default:9600
2400-230400
default:auto
4800-460800
default:19200
Stromversorgung3.3-3.6V SMD
3.6-6V Trägermodul
3.1-4.2V SMD
3.6-6V Trägermodul
2-3.7V SMD
3.6-6V Trägermodul
3.5-16V2.7-3.6V
Stromaufnahme30-40mA pairing
8mA connection
50mA pairing
15mA TX
8.5mA RX
114mA average

Verbindung

Zur Verbindungsaufnahme zu einem Bluetooth Modul sind zunächst einige Schritte notwendig.

Pairing

Das Pairing ist der erste notwendige Schritt bei der Verbindungsaufnahme zu einem Bluetooth Modul. Dazu muss das Modul im Discovery Mode sein. Es reicht die Stromversorgung am Modul anzuklemmen. Dann kann über die Bluetooth Systemsteuerung nach neuen Geräten gesucht werden. Wird das Modul erkannt, taucht dieses in der Liste der verfügbaren Geräte aus. Jedes Modul hat einen bestimmte BT-Kennung (siehe Übersichtstabelle). Klickt man auf das erkannte Modul wird man zur Eingabe des Kopplungscode aufgefordert. Der Kopplungscode ist normalerweise ‚1234‘. Danach ist die Verbindung hergestellt und es sollten die zur Verfügung stehenden Dienste bereitstehen.

bluetooth-geraete.jpg

Das Pairing ist nur einmalig beim ersten Erkennung eines Bluetooth Moduls notwendig.

virtueller COM Port

Bei einem Bluetooth Modul mit SPP-Unterstützung sollten nach erfolgreichem Pairing verschiedene virtuelle COM-Ports im Geräte Manager auftauchen. Doch welches davon ist der richtige Port? Es tauchen nämlich gleich 8 virtuelle COM-Ports auf.
bluetooth-com-ports.jpg

Hier hilft ein Blick auf die Dienste des Bluetooth Moduls in der Bluetooth Geräte Übersicht.

bluetooth-dienste.jpg

In diesem Fall wäre COM114 die richtige Wahl. Zu einem ersten Test verbinden wir RX und TX auf dem Bluetooth Modul. Dadurch haben wir ein Loopback vom Ausgang zum Eingang und können die Verbindung mit einem Terminalprogramm testen. Alle eingegebenen Zeichen sollten ausgegeben werden. Jetzt ist das Modul bereit zum Verbinden mit dem Arduino Board.

Arduino Verbindungstest

zum Test mit dem Arduino kann ein beliebiges Programm verwendet werden das die serielle Schnittstelle verwendet. Dazu wird das Modul wie folgt angeschlossen.

HC-06-Arduino_Steckplatine.jpg

HC-06-Arduino_Schaltplan.jpg

Als Beispiel Sketch wird das ‚SoftwareSerialExample‘ aus dem Beispiele Ordner verwendet.

Als Baudrate muss die Default Rate des Bluetooth Moduls gewählt werden. In den meisten Fällen 9600 Baud. Das muss im Sketch angepasst werden.

Bluetooth Modul Einstellungen ändern

Will man die Einstellungen des Bluetooth Moduls ändern, z.B. die Baudrate, dann muss man das Bluetooth Modul seriell mit dem PC verbinden. Einstellungsänderungen über Bluetooth sind bei diesen preiswerten Modulen leider nicht möglich. Zur Anbindung des Bluetooth Modul an den PC ist ein USB seriell Wandler, wie. z.B. ein FTDI Modul und ein Spannungsteiler notwendig.

Bluetooth-Kabel_Steckplatine.jpg

Nun kann über das Terminalprogramm eine Verbindung über den USB Seriell Wandler zum Bluetooth Modul hergestellt werden. Eine bestehende Bluetooth Verbindung muss zuvor geschlossen werden. Beim HC-05 Modul muss zudem der Taster am Modul gedrückt werden, um in den AT-Mode zu gelangen.

Die Einstellung der Parameter erfolgt von der seriellen Seite mittels AT-Befehle. Zunächst testen wir die Verbindung mit dem Befehl:

AT

Als Antwort sollte:

OK

vom Modul gesendet werden.

Baudraten Änderung beim HC-05

Das HC-05 Modul kann sowohl als Master als auch Slave betrieben werden. Die Umschaltung erfolgt über AT-Befehle. Im Datenblatt zum HC-05/06 findet man die komplette Befehlsübersicht. Die Einstellung im Terminalprogramm sind 9600 Baud, no parity, 8 Data, 1 Stopp Bit. CR und LF als Zeilenende senden.
Beim HC-05 erfolgt eine Änderung der Baudrate auf 38400, no parity, 1 Stopp Bit mit dem Befehl:

AT+UART=38400,0,0

Danach wird die Baudratenumschaltung aktiv und muss auch im Terminalprogramm geändert werden. Diese Einstellung bleiben im Modul auch nach dem Abschalten der Stromversorgung gespeichert,

Baudraten Änderung beim HC-06

Die Einstellung im Terminalprogramm sind 9600 Baud, no parity, 8 Data, 1 Stopp Bit. Kein Zeilenende senden.
Denn beim HC-06 Modul gibt es eine Besonderheit. Während beim HC-05 jeder Befehl mit Zeilenende abgeschlossen wird, darf beim HC-06 kein Zeilenende gesendet werden. Der Befehl wird sofort nach kurzem Timeout Zeit ausgeführt.

Zum Ändern der Baudrate auf 38400 Baud wird der Befehl:

AT+Baud6

gesendet. Als Antwort sendet das Modul dann:

OK38400

Danach wird die Baudratenumschaltung aktiv und muss auch im Terminalprogramm geändert werden. Diese Einstellung bleiben im Modul auch nach dem Abschalten der Stromversorgung gespeichert.

5 Replies to “Preiswerte Bluetooth Anbindung – Teil 2”

  1. Hey, sehr umfangreicher Beitrag, habe extre viel davon mitgenommen. Du scheinst echt Ahnung vom Thema zu haben, mach bitte weiter so viele informative Beiträge über Elektronik.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Ich akzeptiere

fünf × 2 =