Manchmal kann es sinnvoll sein zwei HM-10 Bluetooth 4.0 Module zu verbinden. Das ist z.B., wenn man den über Bluetooth angeschlossenen UART eines Mikrocontrollers nutzen möchte, um Debuggingmeldungen zu lesen, man jedoch keinen Bluetooth 4.0 Dongle für den Computer zur Verfügung stehen hat oder man zwei Mikrocontroller untereinander vernetzen möchte. Auch denkbar wäre es den UART der GPIOs des Raspberry Pi direkt mit einem solchen Bluetooth Modul zu betreiben, anstatt ein eventuell mit Treiberproblemen behaftetes Bluetooth 4.0 USB Modul zu verwenden. Der Nachteil wäre natürlich, dass man sich selber einen kleinen Treiber schreiben müsste.

Für diesen Testaufbau gehe ich davon aus, dass beide Bluetooth Module mit dem Computer verbunden sind. Das kann wie in diesem Artikel beschrieben über jeweils ein CP2012 Breakout Board oder einen ähnlichen USB oder Seriell UART Konverter erfolgen. Ich weise an dieser Stelle nochmals darauf hin, dass RX und TX gekreuzt sein müssen. Warum das so ist, wird hier erklärt.

Zunächst empfiehlt es sich beide Module auf den Werkszustand zurückzsetzen. Dafür werden nach der Verbindung mit einem Serial Monitor wie Moserial für die jeweiligen Ports bei 9600 Baud und einem Stop Bit zunächst die folgenden Befehle im ASCII Mode und ohne Zeilenenden gesendet:

AT+RENEW
AT+RESET

Um nun zwei Module miteinander zu verbinden, muss eines der beiden als Master konfiguiert werden. Dazu werden an ein Modul die folgenden AT Befehle gesendet:

AT+ROLE1
AT+IMME1

Jetzt kann am selben Modul mit AT+DISC? nach weiteren Bluetooth 4.0 UART Modulen gesucht werden. Das Ergebnis sieht dann wie folgt aus:

DISCSOK+DIS0:6D324FAC5E4COK+DISCE

DIS0 gibt dabei den Index des gefundenen Moduls an. Werden mehrere Module gefunden, so würde die Nummerierung laut Datenblatt bis maximal 5 aufsteigen. Dahinter wird die MAC Adresse des Moduls angegeben, die ich hier (aus eher weniger sinnvollen Gründen) verändert habe. Sie kann am anderen Modul auch mit AT+ADDR? ermittelt werden. Möchte man zusätzlich den Namen des Moduls erfahren, so kann dies über AT+NAME1 aktiviert werden. Nun sieht das Ergebnis von AT+DISC? wie folgt aus:

DISCSOK+DIS0:6D324FAC5E4COK+NAME:SmartNOOBOK+DISCE

Da ich den Namen des anderen Moduls zuvor mittels AT+NAMESmartNOOB verändert habe, wird hier nun SmartNOOB angezeigt. Jetzt wollen wir uns aber auch mit dem Modul verbinden. Dies geschieht in unserem Fall mit AT+CONN0. Die 0 steht dabei für den soeben ermittelten Index. Anschließend ist die Verbindung hergestellt und es können beliebige Daten ausgetauscht werden. Sollte AT+ NOTI1 zuvor gesetzt worden sein, so erhalten wir auch eine Nachricht über eine erfolgreiche oder fehlgeschlagene Verbindung.

Sollte die Verbindung fehlschlagen, so kann dies an einer gesetzten Pin liegen. Bevor die Verbindung hergestellt werden kann, muss die Pin nun auch im als Master konfiguierten Modul mit AT+PASS123456 eingestellt werden. 123456 steht dabei natürlich für die Pin.

 

Subscribe
Notify of
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

[…] UART Bluetooth 4.0 Modul HM-10 habe ich bisher nur mit meinem iPhone und einem weiteren HM-10 verbunden. Da auf lange Sicht jedoch auch eine Verbindung mit einem Computer nötig war, habe ich mir den CSR […]