Forum: Mikrocontroller und Digitale Elektronik HC-06 / HC-05 Bluetooth Modul


von Hans Peter S. (hps24)


Lesenswert?

Ich möchte gern mein Tachymeter Elta3 (Vermessungstechnik) per RS232 und 
Bluetooth Modul HC-06 bzw. HC-05 mit meiner App verbinden.
Ich habe mir zuerst ein HC-05 Modul gekauft, bei dem ich Per AT-Befehle 
die Baudrate einstellen kann. Die Baudrate 4800 konnte ich ohne Probleme 
einstellen, und per Oszi nachmessen. Da mein Elta3 fest mit 1200 
arbeitet, bin ich gezwungen, diese Baudrate einzustellen. Das HC-05 
Modul kann jedoch auf kleinere Baudraten wie 2400 oder 1200 nicht 
eingestellt werden (ERROR).
Daraufhin habe ich ein HC-06 Modul gekauft. Dieses Modul kann ich ohne 
Probleme bis 2400 per AT-Befehl einstellen. Bei 1200 kommt die 
Fehlermeldung "NOT SUPPORT". Gibt es noch HC-06 Module, die ich bis 1200 
(Befehl: AT+BAUD1) einstellen kann, und woher kann ich diese beziehen?

von Nick (b620ys)


Lesenswert?

Hans Peter S. schrieb:
> Ich möchte gern mein Tachymeter Elta3 (Vermessungstechnik) per RS232 und
> Bluetooth Modul HC-06 bzw. HC-05 mit meiner App verbinden.

Irgendwie komm ich da nicht mit.
Das Elta3 hat RS232, oder?
Du willst aber kein Kabel zur App hin, verständlich.
Also brauchst du einen "RS232 zu BT"-Wandler.

Ein BT-Modul ist das aber nicht. Das BT-Modul kann man per RS232 
ansprechen, stimmt. Aber damit kannst du nur das BT-Protokoll bedienen.
Du versuchts, bildlich gesprochen, das Modul verkehrt herum 
einzustecken.

Über BT kannst du die Serielle nicht dazu bringen beliebige Daten 
auszugeben.

von Hans Peter S. (hps24)



Lesenswert?

Vielen Dank für deine Antwort!
> Das Elta3 hat RS232, oder?
Richtig das Elta3 hat RS232 (siehe Fotos)
Das Absenden vom Elta3 über RS232 funktioniert, ich habe dies mit dem 
Oszi nachgemessen. Es wartet dann auf eine Antwort!
> Du willst aber kein Kabel zur App hin, verständlich.
> Also brauchst du einen "RS232 zu BT"-Wandler.
Richtig!
> Ein BT-Modul ist das aber nicht. Das BT-Modul kann man per RS232
> ansprechen, stimmt. Aber damit kannst du nur das BT-Protokoll bedienen.
> Du versuchts, bildlich gesprochen, das Modul verkehrt herum
> einzustecken.
> Über BT kannst du die Serielle nicht dazu bringen beliebige Daten
> auszugeben.
Die eigentlich Verbindung mit dem Bluetooth-Modul mache ich erst, wenn 
das Einstellen per AT-Befehle (insbesondere Baudrate, Stoppbit, Parity) 
abgeschlossen ist. Ich habe dazu das Modul mit meinem PC per USB/RS232 
Adapter verbunden um dies einzustellen. Ich verwende dazu Putty, was 
auch ohne Probleme funktioniert.
Bevor ich die App programmiere, verwende ich vorläufig die App "Serial 
Bluetooth Terminal", mit der ich ohne Probleme Verbindung per Bluetooth 
herstellen kann und auch Zeichen per Hexcode senden kann. Dazu sende ich 
0xAA dessen Empfang und Umwandlung ich mit dem Oszi ohne Probleme 
nachmessen kann.

von Rahul D. (rahul)


Lesenswert?

Nick schrieb:
> Also brauchst du einen "RS232 zu BT"-Wandler.
Was ja bis auch den RS232-Pegel für das HC-05 gilt.

> Ein BT-Modul ist das aber nicht. Das BT-Modul kann man per RS232
> ansprechen, stimmt. Aber damit kannst du nur das BT-Protokoll bedienen.
> Du versuchts, bildlich gesprochen, das Modul verkehrt herum
> einzustecken.

Hä? Im AT-Modus ist das Modul "transparent" und überträgt alle Daten zu 
einem anderen Modul.

Ist auch alles gar keine Antwort auf die Frage:
Hans Peter S. schrieb:
> Gibt es noch HC-06 Module, die ich bis 1200
> (Befehl: AT+BAUD1) einstellen kann, und woher kann ich diese beziehen?

Weiß ich nicht, aber um solche oldschool-Baudraten zu unterstützen, wäre 
ein Mikrocontroller (mit integrierten Bluetooth) die bessere Wahl.
Man könnte auch einen Mikrocontroller mit zwei UART zusammen mit einem 
Bluetooth-Modul betreiben.
Dann stellt sich höchstens die Frage: Kommt deine App auch mit anderen 
Baudraten zurecht? Sonst bräuchte man da auch noch einen Konverter.

von Norbert (der_norbert)


Lesenswert?

Hans Peter S. schrieb:
> Gibt es noch HC-06 Module, die ich bis 1200
> (Befehl: AT+BAUD1) einstellen kann, und woher kann ich diese beziehen?

Ja, hatte ich im Einsatz. Aber der Befehl …
1
zur Abfrage lautete: AT+UART?
2
Zum Setzen:          AT+UART=<Param>,<Param2>,<Param3> 
3
      wobei: Stop    0:1Bit   1:2 Bit
4
           Parity    0:None   1:Odd   2:Even 
5
Also:                AT+UART=1200,0,0
Das sollten eigentlich alle HC06 können. Die HC05 beginnen tatsächlich 
erst bei 4800baud.

Add: Ändere mal den Befehl: AT+BAUD1 in AT+BAUD1200
Möglicherweise arbeitet das Modul nicht mit Indizes und weiß nicht ob du 
1200,19200,115200 oder 1382400 willst.

: Bearbeitet durch User
von Nick (b620ys)


Lesenswert?

Rahul D. schrieb:
> Was ja bis auch den RS232-Pegel für das HC-05 gilt.

Nee, Moment. Die HC-Schnittstelle ist RS232-TTL. Normalerweise. Es mag 
Module geben, bei denen das anders ist. Aber die Schnittstelle dient 
dazu, "AT-Befehle" an das Modul zu senden.

Rahul D. schrieb:
> Hä? Im AT-Modus ist das Modul "transparent" und überträgt alle Daten zu
> einem anderen Modul.

Die AT-Befehle dienen zur Steuerung des Moduls. In die AT-Befehle kann 
man natürlich irgendwelche Daten die dann über BT verschickt werden 
einpacken.
OK, soweit so klar.

Damit das BT-Modul als Empfänger funktioniert, muss es wieder per 
AT-Befehle konfiguriert werden. Empfangsbereite Daten müssen per 
AT-Befehl erst mal dedektiert werden und dann die Daten per AT-Befehl 
abgerufen werden.
Dazu müsste das Elat3 aber AT-Befehler verschicken und das BT-Modul 
pollen. Und genau das ist der Punkt wo mein Vorstellungsvermögen endet.
Aus dem BT-Modul kommen nicht einfach ungefragt Daten raus. Da kommt 
auch sowas wie RSSI und CoD raus, wenn man das mit dazu haben will. 
Darum muss spezifisch angefragt werden.

Wenn das Elta3 irgendwelche Binärdaten ans BT-Modul schickt, woher weiß 
das Modul was das sein soll? AT-Kommandos? Nutzdaten? Müll? Da gibts ein 
Protokoll dazu und das müsste das Elta3 kennen und einhalten. Kann es 
das?

WENN der TO ein BT-Modul ans Elta3 hängt und einen µC mit dranbastelt 
der vom Elta3 die Daten empfängt und dann damit, garniert mit den 
AT-Befehlen, befüttert, ist gleichzeitig das 1200 Bd Problem gelöst und 
mein Satz auch endlich fertig.

von Rahul D. (rahul)


Lesenswert?

Nick schrieb:
> Die HC-Schnittstelle ist RS232-TTL.

Was soll das denn sein? Es ist ein UART mit TTL-Pegel (5V). Nix RS232 
(das beschreibt nämlich auch den Signalpegel).

Nick schrieb:
> Wenn das Elta3 irgendwelche Binärdaten ans BT-Modul schickt, woher weiß
> das Modul was das sein soll? AT-Kommandos? Nutzdaten? Müll? Da gibts ein
> Protokoll dazu und das müsste das Elta3 kennen und einhalten. Kann es
> das?

So, wie du das vermutest, vermute ich, dass der TO schon weiß, was er 
macht.
Es werden hier sehr selten Anfragen eingestellt, bei den Fragen gestellt 
werden, und der (von die als unwissend bezeichnete) TO schon mit einem 
Oszi was gemessen hat.

Die von dir immer noch nicht beantwortet Frage ist immer noch, ob es ein 
serielles Bluetooth-Modul gibt, das 1200baud kann.
Das hat Norbert ja inzwischen gemacht.
Ob das die Lösung ist, kann ich nicht beurteilen (ich habe hier 
höchstens ein paar Bluetooth-Module rumliegen, aber ein Tachymeter).

von Hans Peter S. (hps24)


Lesenswert?

> Das sollten eigentlich alle HC06 können. Die HC05 beginnen tatsächlich
> erst bei 4800baud.
Mein HC06 antwortet auf "AT+UART?" oder z.B. "AT+UART=9600,1,0" nicht.
Nur das HC05 antwortet auf diese Befehle.

> Add: Ändere mal den Befehl: AT+BAUD1 in AT+BAUD1200
> Möglicherweise arbeitet das Modul nicht mit Indizes und weiß nicht ob du
> 1200,19200,115200 oder 1382400 willst.
Auf "AT+BAUD1200" erhalte ich ebenfalls die Antwort "NOT SUPPORT"!

von Hans W. (hanswieland)


Lesenswert?

Nick schrieb:
> Die HC-Schnittstelle ist RS232-TTL.

Nicht mal das, sondern 3.3V

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Hans Peter S. schrieb:
> Gibt es noch HC-06 Module, die ich bis 1200
> (Befehl: AT+BAUD1) einstellen kann,

HC-12 kann kein BT, aber 1200Baud.

Ein  ESP32 kann 1200Baud und BT

von Hans W. (hanswieland)


Lesenswert?

Nick schrieb:
> Dazu müsste das Elat3 aber AT-Befehler verschicken und das BT-Modul
> pollen. Und genau das ist der Punkt wo mein Vorstellungsvermögen endet.

Er will das Modul am PC über den seriellen Port konfigurieren und dann 
erst an das Elat3 umstecken.

von Hans Peter S. (hps24)


Lesenswert?

Rahul D. schrieb:
> Ob das die Lösung ist, kann ich nicht beurteilen (ich habe hier
> höchstens ein paar Bluetooth-Module rumliegen, aber ein Tachymeter).
Kann einer der rumliegenden Bluetooth-Module mit 1200?
Ich würde gern ein solches Modul von Ihnen abkaufen!

Norbert schrieb:
> Ja, hatte ich im Einsatz. Aber der Befehl …
Woher kann ich dieses Modul mit 1200, welches Sie schon im Einsatz 
hatten, beziehen? Wenn Sie noch eines haben, könnte ich dieses Modul von 
Ihnen abkaufen?

von Rahul D. (rahul)


Lesenswert?

Hans Peter S. schrieb:
> Kann einer der rumliegenden Bluetooth-Module mit 1200?

Weiß ich nicht. Erst müsste ich sie finden, dann müsste ich sie testen.

von Norbert (der_norbert)


Lesenswert?

Hans Peter S. schrieb:
> Rahul D. schrieb:
>> Ob das die Lösung ist, kann ich nicht beurteilen (ich habe hier
>> höchstens ein paar Bluetooth-Module rumliegen, aber ein Tachymeter).
> Kann einer der rumliegenden Bluetooth-Module mit 1200?
> Ich würde gern ein solches Modul von Ihnen abkaufen!
>
> Norbert schrieb:
>> Ja, hatte ich im Einsatz. Aber der Befehl …
> Woher kann ich dieses Modul mit 1200, welches Sie schon im Einsatz
> hatten, beziehen? Wenn Sie noch eines haben, könnte ich dieses Modul von
> Ihnen abkaufen?

Das ist gefühlt schon mehrere Ewigkeiten her. Meine (ebenfalls) uralte 
Doku. meint, es wären EGBT-045MS bzw. EGBT-046S gewesen.
Ersteres Master/Slave ab 4800baud, zweites Slave ab 1200baud.

von Hans Peter S. (hps24)


Lesenswert?

Rahul D. schrieb:
> So, wie du das vermutest, vermute ich, dass der TO schon weiß, was er
> macht.
Ich weiß schon was ich da mache, das ist richtig! Ich habe alles mit dem 
Oszi nachgemessen, es funktioniert! Das Problem ist nur, daß ich ein 
Bluetooth-Modul brauche dessen RS232 mit 1200 arbeitet!

Hans W. schrieb:
> Er will das Modul am PC über den seriellen Port konfigurieren und dann
> erst an das Elat3 umstecken.
Genau so ist es!!! Mit Pegelumwandler Max3232 zwischen Elta3 und Modul 
HC-06 funktioniert alles!!!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nick schrieb:
> Aus dem BT-Modul kommen nicht einfach ungefragt Daten raus.

Doch, natürlich. Ich habe damit die serielle Schnittstelle meines Autos 
nachgerüstet (ja, die alte Kiste hat 'ne serielle) und vorher das HC-05 
einmal auf die nötige Baudrate mit AT Befehlen konfiguriert.
Drücke ich jetzt das 'Send' Knöpfchen des Autos, sendet HC-05 die 
Autodaten aufs Handy oder auf andere serielle Terminals.
Die gleiche Nummer funktioniert auch mit meinem alten ELM327 OBD-II 
Adapter, welches ich mit HC-05 auf kabellos umgerüstet habe.

von Rainer W. (rawi)


Lesenswert?

Rahul D. schrieb:
> Man könnte auch einen Mikrocontroller mit zwei UART zusammen mit einem
> Bluetooth-Modul betreiben.

Für 1200 Bd braucht man keinen zweiten HW-UART auf dem µC. Das würde auf 
wohl jedem aktuellen µC per Soft-UART funktionieren.

von Rahul D. (rahul)


Lesenswert?

Rainer W. schrieb:
> Für 1200 Bd braucht man keinen zweiten HW-UART auf dem µC. Das würde auf
> wohl jedem aktuellen µC per Soft-UART funktionieren.

Ich bin mehr der Hardware-Freund bei solchen Sachen.

Arduino F. schrieb:
> Ein  ESP32 kann 1200Baud und BT

Oder man hat die BT-Schnittstelle gleich im Chip...

von Hans Peter S. (hps24)


Lesenswert?

Arduino F. schrieb:
> Ein  ESP32 kann 1200Baud und BT

Danke für den Hinweis, jedoch das ist mir zu aufwendig!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.