Bluetooth eignet sich hervorragend um drahtlos mit einem Arduino zu kommunizieren. Preiswerte Bluetooth-Module gibt es z.B. unter der Bezeichnung JY-MCU-Modul. Sie sind für unter 10 € zu haben.
Es gibt sehr viele Parameter und Möglichkeiten die Module zu konfigurieren. Hier möchte ich, wie in einem Kochbuch, die minimal erforderlichen Einstellungen beschreiben, um die einfachste Kommunikation einzustellen.
Das Modul mit dem Chip HC-06 kann nur als Slave arbeiten. Das heißt es kann nicht aktiv Kontakt mit einem anderen Bluetooth-Gerät aufnehmen. Es wartet bis es kontaktiert wird.
Das Modul mit dem HC-05 kann auch als Master konfiguriert werden kann. Das heißt ein HC-05-Modul kann sich automatisch mit einem bestimmten anderen Bluetooth-Modul (z.B. ein HC-06-Modul) verbinden. So können z.B. zwei Arduinos miteinander Kontakt aufnehmen und kommunizieren.
Beide Module können direkt an 5 V angeschlossen werden, denn sie haben einen Spannungregler der die Anschlußspannung für den Bluetooth-Chip auf 3,3V herunterregelt. Die TXD /RXD Anschlüsse funktionieren ebenfalls problemlos mit dem 5V TTL-Spannungslevel des Arduino.
Man kann also einfach VCC (5V) und GND mit dem Arduino verbinden und die TXD und RXD Anschlüsse gekreuzt, also TXD an RX und RXD an TX, anschliessen. Achtung wenn man die Standard-Anschlüsse benutzt (Pin 0 und 1), dann darf diese Verbindung nur solange bestehen, wie der USB-Port nicht angeschlossen ist bzw. kein USB-Daten-Verkehr (Download/Serial-Port) stattfindet.
Die bessere Lösung ist die Softserial-Libray zu nutzen und z.B. an Port 2/3 eine 2. Serial-Verbindung einzurichten. Mit der Arduino-Entwicklingssoftware wird eine Libary und ein Beispielprogramm mitgeliefert. Dieses Beispielprogramm sendet einfach alle auf der einen Schnittstelle empfangenen Daten an die andere Schnittstelle. Damit läßt sich der Datenverkehr testen und das Bluetoothmodul konfigurieren. Die Baudrate für das Bluetooth-Modul muß auf 9600 Baud gesetzt werden.
Eine Anwendung könnte so entwickelt werden, dass die Kommunikation, die später über Bluetooth abgewickelt werden soll, zuächst über den Serial-Port getestet wird und anschliessend das Bluetooth-Modul angeschlossen wird.
Als Bluetooth-Mastergerät nutzt man am besten einen PC, ein Smartphone oder ein Tablett. Das Bluetooth Modul HC-06 hat, werksseitig eingestellt, den Namen „linvor“; der Pin-Code ist 1234. Also z.B. in Android in Einstellungen -> Bluetooth gehen und dort nach Geräten suchen. Gefundenes Gerät mit dem Namen „linvor“ markieren und „pairen“. Dabei den PinCode 1234 eingeben. Jetzt können Apps auf Smartphone/Tablett mit dem Bluetooth-Module verbunden werden. Einfache Android Apps (nicht nur) zum Testen sind z.B.
- Arduino Bluetooth Terminal
- BlueTerm
- Blue Control
Wer für seine Bluetooth Anwendung selbst eine Android-App erstellen will, nimmt als Vorlage am besten das von Google bereitgestellte Beispiel Bluetooth-Chat. Achtung unbedingt die UUID z.B. auf „00001101-0000-1000-8000-00805F9B34FB“ ändern, sonst klappt das Verbinden mit den hier beschriebenen Bluetooth-Chips nicht.
Wer mehr Sicherheit und Eindeutigkeit möchte, sollte den Namen und den Pin-Code seines Bluetooth-Moduls ändern.
Das geht so : Oben genanntes Beispielprogramm zu Softserial auf Baudrate 9600 ändern und uploaden. Bluetooth-Modul anschliessen und den Serialmonitor starten. Jetzt (ganz wichtig !) die Einstellung „Kein Zeilenende“ wählen.
Folgendes Senden (Das Modul darf z.Zt. keine Bluetooth-Verbindung haben) :
Umschalten auf Kommandomodus:
Senden : AT
Antwort : OK
Name (max. 20 Zeichen) z.B. auf „blauerZahn“ setzen:
Senden AT+NAMEblauerZahn
Antwort : Oksetname
Pin-Code auf 5678 setzen
Senden : AT+PIN5678
Antwort : OKsetPIN
Das vorstehende Beispiel ist nur für den HC-06 Chip gültig ! Die Programmierung eines HC-05-Moduls als Master erfolgt etwas anders.
Um das HC-05 Modul für die automatische Verbindung mit einem anderen Bluetooth-Modul zu programmieren, muß man dessen Geräteadresse kennen. Leider kann man dies Adresse nicht über die o.g. Programmierschnittstelle des HC-06-Moduls abfragen. Die Geräteadresse des HC-06-Moduls muß man z.B. am Tablett bei Geräte suchen, zum Gerätenamen „linvor“ ablesen. Das ist eine 6 Byte lange Hexadezimalzahl z.B. 12:23:34:45:56:67
Zum Konfigurieren des HC05-Moduls wieder das oben genannte Beispielprogramm zum Softserial laden und jetzt die Kommunikation mit dem Softserial-Anschluß des Bluetooth-Modules auf 38400 Baud stellen, und auf den Arduino uploaden. Wie oben beschrieben das Bluetooth-Modul mit dem Arduino verbinden und zusätzlich den Pin KEY mit +3,3 V verbinden.
Jetzt den USB-Stecker abziehen, ggf vorher am PC den Serial-Monitor schliessen. Das Bluetooth-Modul wird stromlos. Nach kurzer Wartezeit wieder anschliessen. Jetzt bootet auch das Bluetooth-Modul, dabei ist der KEY-Pin auf HIGH und das Modul geht jetzt in den Programmier-Modus. Es stellt dabei die Baudrate automatisch auf 38400 Baud.
Folgendes Senden (Das Modul darf z.Zt. keine Bluetooth-Verbindung haben) :
Kommandomodus einleiten :
Senden : AT
Antwort : OK
Partner-Gerät 12:23:34:45:56:67 spezifizieren (NAP: UAP: LAP- Schreibweise)
Senden : AT+BIND=1223,34,455667
Antwort : OK
Einstellung „Mit spezfiziertem Gerät automatisch verbinden“
Senden : AT+CMODE=0
Antwort : OK
Rolle als „Master“ setzen
Senden : AT+ROLE=1
Antwort : OK
Das wars.
Merkwürdiger Weise benötigt des HC05-Modul zum Verbinden den Pin-Code des Partnergerätes nicht.
Es sei noch erwähnt, das bei dem HC-05-Modul der Pin STATE signalisiert, dass die Bluetooth-Verbindung zum Partnergerät besteht. Am besten diesen Pin mit dem Arduino einlesen und an einem anderen Ausgangspin, eine blaue LED ansteuern. So ist der Verbindungszustand sichtbar und das Bluetooth-Modul wird nicht mit dem Strom für die LED belastet.
Hubert Baumgarten
Mit Bluetooth wollte ich mich auch immer noch beschäftigen. Dein Beitrag ersparrt mir einiges an Recherchezeit – Danke.
Eigentlich wollte ich direkt einen Post verfassen ohne Dir, Frank, zu antworten…
Ich verstehe nicht von welchem „Oben genanntes Beispielprogramm zu Softserial“ der Hubert Baumgarten da spricht. Ich sehe oben kein Programm.
Es geht um das in der Arduino-IDE mitgelieferte Beispielprogramm.
Hubert
Hallo Hubert,
eine sehr interessante Zusammenfassung. Mit dem HC-06 hatte ich auch bereits einige Untersuchungen gestartet, vom HC-05 allerdings die Finger gelassen. Bei nächster Gelegenheit werde ich mir dann wohl auch mal den HC-05 bestellen.
„Die TXD /RXD Anschlüsse funktionieren ebenfalls problemlos mit dem 5V TTL-Spannungslevel des Arduino.“ wie lange hab ihr das probiert?
Hallo Regnerischer Tag
wir machen es wie die Schwaben : Wir probieren nicht lange, wir essen gleich.
Bei uns scheint immer die Sonne 🙂
„Die TXD /RXD Anschlüsse funktionieren ebenfalls problemlos mit dem 5V TTL-Spannungslevel d… http://t.co/QSv6tHVquX
Hallo Hubert,
vielen Dank für die gute Zusammenfassung. Du hast mir super geholfen.
Jeziel – Brasilien
Also ich bekomme meines nicht zum laufen (HC-06). Weder pairen noch AT Modus funktioniert, das Ding reagiert auf gar nicht, es blinkt nur vor sich hin.
TX RX vertauscht, Hardware Serialport, Pegelwandler (2 Widerstände), …. hilft alles nix.
Wenn das Modul blinkt, scheint Plus und Minus in richtiger Polarität angeschlossen zu sein. TXD muß auf RX und RXD muß auf TX.
Erkläre mal wie Du am Hardware Serialport ein AT-Command sendest.
Ja RX, TX stimmen, ich kann in eine Richtung ein Zeichen senden (BT-Dongle am PC) es kommt auch eines an, ist aber immer 0x00 oder 0xFF je nachdem ob man inverted singaling nutzt oder nicht, umgekehrt kommt nix an, egal ob SoftwareSerial, HardwareSerial, Pegel auf 3,3V angepasst,
Test mit Hardwareserial, Kabel entspr. an den Pins auch schon vertauscht, macht kein Unterschied. Es wird nur die Funktion
unten in loop() aufgerufen
baudrate ist ein array mit den üblichen Baudraten, die werden
alle durchprobiert.
void detectBaudRateAtSerialPort() {
/*Versucht Baudrate des BT-Moduls heruauszufinden wenn
es am echten Serial Port des Arduino angeschlossen ist.
Es dürfen deshlab keine Meldungen an diesem Port ausgegeben
werden. Alles was über diese Leutungen geht, geht auch über USB
an ttyUSB0 (Arduino nano, habe auch schon Uno Probiert geht auch nicht) */
for (int i=0; i < sizeof(baudrate)/sizeof(unsigned long); i++) {
Serial.begin(baudrate[i]);
Serial.write("AT");
delay(3); //auch schon mit Werten von 0…30 probiert
if (Serial.available()) { //was gefunden!
while(1) { //onboard LED in blinken-Modus und ende
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);
}
}
//erst nach einer Sekunde wieder ein AT-Kommando
// sonst wird es ignoriert laut Doku
Serial.end();
delay(1200);
}
}
Ein AT-Kommando wird erst nach ca. 510 mSec beantwortet. Ein delay(3) nach write(„AT“) ist also viel zu kurz gegriffen.
Jetzt habe ich meine Testmethode zum durchprobieren nochmal umgeschrieben und es erkennt sie erfolgreich:
void detectBaudRateAtSoftwareSerialPort() {
//array baudraten ist ausserhalb definiert: unsigned long baudrate[] = {1200,2400, … 1382400};
int startTime=0;
int time=0;
const int timeMax=1000; //1 sekunde nach senden des AT-Kommandos warten
SoftwareSerial bt(rxPin,txPin );
Serial.println(„Trying to detect Baudrate via SoftwareSerial“);
for (int i=0; i < sizeof(baudrate)/sizeof(unsigned long); i++) {
Serial.print("Baudrate:"); Serial.println(baudrate[i]);
bt.begin(baudrate[i]);
bt.write("AT");
startTime=millis();
while( millis() – startTime < timeMax ) {
time = millis() – startTime;
if (bt.available()) {
while(bt.available()) { //Alle Zeichen einsammeln
//delay(time/2); //kann man weglassen macht keinen Unterschied
antwortStr += (char) bt.read();
}
Serial.print("BT-Modul antwortet: "); Serial.println(antwortStr);
Serial.print("Wartezeit nach Senden:"); Serial.println(time);
Serial.println("Programm beendet.");
while(1); // und hier Programm beenden
}
}
bt.end();
}
Serial.println("…keine Antwort vom Modul, Programm angehalten.");
while(1);
}
Bei mir waren 115200 eingestellt, nicht 9600 wie in der Doku angegeben, als Antwort kommt nicht OK sondern "O¥" (falls es hier in der Codierung verschluckt wird statt 'K' ein Y mit zwei waagrechten Strichen, typisch Chinamodul 🙂 (LC-Technology "Bluetooth Serial Modul Slave")
Als delay wird ein Wert um 510 ms ermittelt wie du sagtest, hätte nie gedacht dass die Antwort so lange dauert. Kannst du mir erklären warum, steht das in irgendeiner Doku?
Hi, das könnte an dein windows Bluetooth stack liegen. Probiere einen anderen zu installieren.
Gruß
Den Wert 510 mSec habe ich mit dem Arduino ähnlich ermittelt wie Du.
Das Verhalten, so lang zu warten, ist zwingend notwendig, weil das Modul ja prüfen muß, ob noch etwas hinterher kommt. Man könnte ja z.B. ein anderes AT-Kommando schicken wie etwa AT+NAMExyz.
Ja jetzt ist es mir klar, das sind die 1s nach jedem AT-kommando, die man warten soll, sonst wird ein neues Kommando ignoriert, real sind es halt 510ms bis es antwortet, wartet man dann noch 500ms hat man die 1s voll und kann ein neues AT-Kommando senden.
Jetzt habe ich mal die Baudrate im Hardwareserial auf 115200 gesetzt und siehe da das Zeichen ¥ wird zu einem K, die war vorher auch auf 9600 gesetzt, deshalb gab es hier wohl auch Timingprobleme. Da war die Hardwareserial zu langsam mit der Ausgabe als schon wieder ein Zeichen reinkam.
Ok jetzt läuft das Ganze endlich, danke.
Hallo Heinz,
Ich freue mich dass bei Dir jetzt alles O¥ ist.
Viel Spaß damit.
Hubert
Hallo,
Dein Beitrag hat mich auf ne kleine Bastelidee gebracht. Aber leider finde ich die Module irgendwie nicht… Wo kann ich die bestellen ?
Gruß
BlueDogi
Hallo BlueDogi,
geh zu ebay und suche nach HC-05 oder HC-06. Es gibt solche Module inzwischen von verschiedenen Herstellern.
Achte darauf nicht ein „rohes“ Modul ohne 3,3V-Spannungregel und ohne LED usw. zu erwischen (ca. 4 €); sondern ein Modul auf Adapter-Platine; zu erkennen an den 4 bzw. 6 Anschlußstiften (ab 6 €).
Hubert.
Hallo,
vielen Dank für die ausführliche Beschreibung, leider funktioniert es bei mir noch nicht und ich habe folgendes Problem: Ich habe ein „rohes“ HC-05 Modul und es ist per löten folgendermaßen an einen Arduino Uno angeschlossen:
Rx-Tx
Tx-Rx
3,3V-3,3V
Gnd-Gnd
Ich habe es sowohl mit Widerständen als auch ohne probiert, leider sendet das Modul kein Signal, das heißt am PC oder am Handy wird kein Bluetooth angezeigt. Ich habe auch das Beispiel mit Softwareserial auf den Arduino geladen. Ich habe bisher aber ohne den PIN key gearbeitet, weil ich auf dem Arduino ja schon den 3,3 V Platz belegt habe. In vielen Internetvideos ist auch keine Konfiguration zu sehen, ist diese wirklich von nöten? Ich möchte im Endeffekt nur Daten per Handy, Pc auf den Arduino schicken. Vielleicht können Sie mir helfen und sagen, was ich noch ausprobieren/machen muss, damit mein Modul funktioniert.
Vielen Dank dafür schonmal im Vorraus.
Hallo Blauzahn,
um das HC-05 konfigurieren zu können, muß zwingend der Pin Key auf high (+3,3V) gelegt werden. Es schaltet sich dann beim booten in einen Programmier-Modus. Die Baudrate zum Serial-Port wird automatisch auf 38400 Baud gesetzt.. Kommandos müssen bei diesem Modul mit CR/LF gesendet werden.
Also: Das Kommando AT mit CR/LF sollte mit OK quittiert werden.
Die im Beitrag genannten Einstellungen können mit ? statt =… abgefragt werden. Also z.B. AT+ROLE? sollte mit 0 oder 1 beantwortet werden.
Viel Erfolg
PS: Die Led auf dem HC-05-Module sollte blinken, sonst stimmt die Verkabelung nicht.
Vielen Dank für die schnelle Antwort!
Ich meine auf meinem „rohen“ Modul, also ohne Pins, nur zum Löten, ist keine LED, kann das sein? Wenn ich den Pin Key mit 3,3 V verbinde, wo soll ich dann die 3,3V vom Modul auf den Arduino stecken. Ich meine das „rohe“ Modul hat keinen Spannungswandler, sodass ich den 5V Ausgnag vom Arduino nicht nehmen kann, bin ich da richtig informiert?
Hallo Blauzahn,
bei einem rohen Modul reicht die Beschaltung, die Du vorgenommen hast, nicht aus.
Bitte schau Dir das Datasheet des Herstellers an :
http://makezineblog.files.wordpress.com/2014/03/hc_hc-05-user-instructions-bluetooth.pdf
Bitte lies Kapitel 5 manual for the first use of HC-05.
Für die Programmierung mußt Du PIN 34 (key) mit Pin 12 (3,3V) fest verbinden.
An Pin 2 (RX) muß ein Pullup-Widerstand, ( z.B. 1,5 KOhm ) ebenfalls mit Pin 12 (3,3 V) verbunden werden.
Ggf. muß, für einen sauberen Reset, der Pin 11 (Reset) nach dem Einschalten, kurzzeitig auf Gnd gezogen werden.
Nochmals viel Erfolg
Hubbie
Vielen, vielen Dank, echt großartig die Unterstützung hier! Ich werde das gleich ausprobieren.
Hallo Hubert,
sehr gute Erklärung. Ich möchte mit Arduino per Bluetooth Drucksensoren abfragen. Die Sensoren liefern ein analoges Signal zwischen 0 und 5 Volt. Kannst du mir sagen wie mann ein Bloetoothmodul mit diesem Sensor verbinden kann. Der Sensor wird hat 3 Pins,+5V, GND und Signal.
Hallo Horst-Dieter
Du brauchst einen Prozessor, der die analogen Signale der Drucksensoren digitalisiert und zu einem seriellen Signal formt. Das sieht dann ähnlich aus wie in unserem Beitrag „Temperatursensor Dallas 18B20“.
Hubert
Hallo Hubert,
Dein Artikel hat mir bei meinen Bluetooth Bemühungen sehr viel weiter geholfen. Ich habe mir bei ebay ein HC-05 und ein HC-06 geholt und der HC-05 erkennt den HC-06 als Slave und verbindet sich wie es aussieht erfolgreich. Die LED am Slave brennt permanent und der Master blinkt wenn er etwas sendet. Leider klappt die Kommunikation nicht so ganz. Am Master schreibe ich mit write und am Slave lese ich per read die Daten vom Bluetooth board. Nur bekomme ich beim Lesen am Slave eine grössere Anzahl von Bytes als ich im Master schreibe. Ich schreibe 2 Bytes und 5 kommen an. Wenn ich die gelesenen Daten per Serial.print ausgebe bekomme ich fast immer den Wert 128 und manchmal den Wert 248 angezeigt. Ich benutze ein Uno und ein Mega Board aber das sollte eigentlich keinen Unterschied machen. Fällt Dir eine Lösung ein? Ich habe schon alle Baudraten die unterstützt werden durchprobiert aber das hat nichts bewirkt.
Vielen Dank für den tollen Blog
Stephan
Hallo Stephan,
ich sende bisher immer ASCII-Zeichen per PRINT zum Bluetooth-Partnergerät. Mit WRITE auf Bluetooth habe ich keine Erfahrung.
Poste doch ggf. kein Coding der Sende- und die Empfangs-Routine; am Besten mit der Deklaration der Felder.
Hubert
Guten Tag,
ich hab mir ebenfalls ein HC-06 angeschafft, stehe jedoch vor folgendem Problem:
Habe es per Bluetooth mit meinem Smartphone verbunden, jedoch bleibt die LED am blinken. Sollte diese nicht normal nach erfolgreichem Verbindungsaufbau dauerthaft leuchten? Bin da aktuell ein wenig verunsichert, ob es überhaupt noch funktioniert. Kommandos über SoftwareSerial funktionieren. Tut mir Leid bin aktuell noch Anfänger in dem Bereich. Vielen Dank schonmal 🙂
Hallo Tobias,
Ich vermute Du hast Dein Modul gepairt. Jetzt brauchst Du eine App die Dein Modul connected; z.B. blue term.
Hubbie
Hallo Hubbie,
vielen Dank für die rasche Antwort 🙂
Aber wenn es gepairt sein sollte, müsste doch die LED durchgehend leuchten oder sehe ich das falsch?
Das Pairen bereitet das Connecten vor. Ein Modul kann mit beliebig vielen Partnergeräten gepairt werden. Es hat keinen Grund nach dem Pairen das Blinken einzustellen. Erst wenn es conneted ist, hört das Blinken, als Zeichen „Ich habe Kontakt“, auf.
Hallo zusammen,
ich versuche mit meinem Handy über Bluetooth mein Arduino mit einer App zu steuern.
Kann mir da jemand helfen?
Das Verbinden klappt, allerdings reagiert dann nichts auf meine Befehle!
Gruß Ralf
Hallo Ralf,
.
wie gibst Du Deine Befehle und wie willst Du darauf reagieren ?
.
Hubbie
hallo hubert,
ich möchte eine verbindung aufbauen bei welcher mehrere arduinos mit meinem computer kommunizieren. ist es möglich von mehreren mastermodulen, daten auf einem slave- oder empfängermodul zu senden.
falls dies nicht geht, währe es möglich mehrere master-slave kombinationen parallel zu haben.
was könnte eine gute möglichkeit sein mehrere arduinos per bluetooth an einen computer anzuschliessen.
schönen gruß, stefan
Hallo Stefan,
.
die hier beschriebenen Bluetooth-Module HC05 und HC06 nutzen das Bluetoothprofil SPP (Serial Port Protocol). Daher können immer nur genau 2 Module mit einander kommunizieren.
.
Das ist vermutlich für Dein Projekt eher ungeeignet.
.
Hubbie
Hallo,
was muß man tun um sich mit dem HC-05 als Master vom Rechner aus einem Smartphone verbinden zu können?
Wenn das HC-05 Slave ist kann ich mich vom Smartphone aus verbinden. Nur umgekehrt, wie geht’s ?
Hallo „Doc“,
offenbar kannst Du weder Deinen Namen noch eines der Worte „bitte“ oder „danke“ schreiben. Daher meine Frage : Kannst Du Deinen Namen tanzen ?
Hubert
Hallo Hubert,
Ich habe eine ganz normale Frage gestellt. In allen anderen Fragen hat niemand Bitte und Danke geschrieben. Danke sage ich wenn mir jemand geholfen hat mein Problem zu lösen.
Warum ausgerechnet ich erst Bitte sagen mußt, kannst nur Du beantworten.
Also. Könntest Du mir bitte sagen was man tun muß um sich vom HC-05 als Master zu einem Smartphone verbinden zu können.
Tschau
Max
Hallo Maximilian,
.
guten Tag, bitte und danke, sowie ein Abschiedsgruß gebieten die Höflichkeit, besonders wenn man sich nicht kennt. Das ist eine Selbstverständlichkeit. Es ist erbärmlich, wenn Du das hier nur schreibst um Deine Frage beantwortet zu bekommen. Ich danke Dir für Deine Ehrlichkeit.
.
Cu
Hubert
Hallo Maximilian,
.
ich vermute daß das Problem besteht, weil die Bluetootheinstellung auf Deinem Rechner nicht auf „Sichtbar für andere Geräte“ steht. Ich habe das jedoch nie so gemacht und nie getestet. Diesen Hinweis habe ich vor langer Zeit irgendwo in einem Internetforum gelesen. Die nächste Frage ist dann : Welches Programm / welche App soll die Komunikation durchführen. Soweit ich mich erinnere fragt ein Android bei der Kontaktaufnahme nach der App die gestartet werden soll.
Wie funktioniert das bei Dir ?
.
Nichts für ungut
Hubert
Hallo Hubert,
ich möchte vom Rechner aus, an dem das HC-05 als Master angeschlossen ist, eine Verbindung zum Smartphone aufbauen. Das gelingt nicht. Umgekehrt funktioniert das. Smartphone sucht und findet alle BT Geräte in der Nähe. Das Smartphone ist auf sichtbar geschalten. Ich weis nicht welchen Befehl ich im Terminal eingeben soll damit das HC-05 suchen kann. Oder benötigt man auf dem Rechner ein richtiges Programm, kein Terminal, was das HC-05 zur Suche veranlaßt? Weist Du zufällig mehr darüber?
Tschau
Max
Hallo Maximilian,
.
hast Du dem HC-05 die Geräteadresse Deines Smartphones eingetragen und die Rolle auf Master und Modus auf automatisch verbinden gesetzt?
.
MfG
Hubert
Hallo Hubert,
das habe ich noch nicht gemacht. Dachte immer bisher es muß einen Befehl geben das es die Geräte in der Nähe suchen kann. Werde ich probieren. Das bedeutet dann, es kann sich nur mit denen verbinden deren Adresse hinterlegt ist? Ich dachte es kann sich immer mit allen die da sind verbinden und ansonsten nur mit den hinterlegten. Aber ich werde das probieren. Danke schon einmal für den Tipp.
Tschau
Max
Hallo Hubert,
ich habe nun alles mögliche und unmögliche versucht. bind, fsad, link, adcn, cmode 0 oder 1, alles egal, bringt nichts.
Mein Smartpone war so eingestellt das es für alle sichtbar ist.
Mit at+bind=1234,56,7890 (Adresse geändert, aber Format stimmt)
erhalte ich ein ok.
mit allen anderen eine fail oder error
Pair list Abfrage mit at+adcn bleibt leer
Mein Smartphone reagiert nicht auf eine Pairinganfrage. Wenn die pair list leer bleibt, ist die Adresse nicht hinterlegt. Nur wie bekomme ich die da rein? Ich weis nicht weiter. Ideen?
Hallo Maximilian,
es tut mir leid. Ich kann Dir da leider nicht weiter helfen.
Gruß
Hubert
Hallo Hubert,
macht nichts, hätte ja sein können das Du oder jemand anders es weis es. Da muß ich mal sehen ob ich das noch hinbekomme. Danke für den Beistand bis hierher. 🙂
Tschau
Max
Moin Moin,
ich wollte fargen ob es eine Möglichkeit gibt den Arduino so zu programierne, dass checkt ob ein Bluetooth-Mastergerät mit dem HC-06 gekoppelt ist. Damit ist z.B.: ein „if-Abfrage“ gestallten kann.
Hallo,
.
ausser dass das Partnergerät sich zu erkennen gibt, in dem es was schickt, sehe ich nur die Möglichkeit, die Led auf dem BT-Modul anzuzapfen und auf einen Pin des Arduino zu führen und auszuwerten.
.
Das Modul hört ja auf zu blinken, wenn es connected ist.
.
Hubert
„Die bessere Lösung ist die Softserial-Libray zu nutzen und z.B. an Port 2/3 eine 2. Serial-Verbindung einzurichten. Mit der Arduino-Entwicklingssoftware wird eine Libary und ein Beispielprogramm mitgeliefert.“
Wie heisst das Beispielprogramm? Wie muss ich das Bluetoothmodul HC-06 an das Arduino Nano anschliessen damit ich Daten, die ich an das Bluetooth sende (mit Android oder so) mit dem Serial Monitor am Pc sehen kann?
„Man kann also einfach VCC (5V) und GND mit dem Arduino verbinden und die TXD und RXD Anschlüsse gekreuzt, also TXD an RX und RXD an TX, anschliessen. Achtung wenn man die Standard-Anschlüsse benutzt (Pin 0 und 1), dann darf diese Verbindung nur solange bestehen, wie der USB-Port nicht angeschlossen ist bzw. kein USB-Daten-Verkehr (Download/Serial-Port) stattfindet.“
Geht das Modul kaputt und der PC kaputt?
Wie mache ich das dann, wenn ich die gesendete Daten an Bluetooth von einem Android Handy an das Arduino am Serial Monitor am PC sichtbar machen möchte? Ich habe ein Arduino Nano.
Danke für eure Hilfe!
Warum darf denn das BT Modul nicht an der D0 D1 eines Nano verbleiben? Weil die TX Leitungen gegeneinander arbeiten oder ein HC05 dabei Mist baut? Ich möchte ein Nano fest verbauen mit USB nach außen und ein BT Modul mit einsetzen. Würde es helfen das BT Modul per Leitung vom Nano in Reset zu halten und erst in der Anwendung freizugeben. Eine Softserielle möchte ich nicht verwenden
Hab jetzt selbst ein wenig ausprobiert. Das BT-Modul hab ich mit seinem TX Ausgang über eine Diode (Richtung zum BT-Modul) an RX0 vom Nano angeschlossen. Zusätzlich kann ich mit einem P-Mosfet die 5V vom BT-Modul mit einem Portpin wegschalten, was beim Reset des Nano auch passiert. Bluetooth und Flashen über USB geht damit ohne Stecker abzuziehen.
Hi. Danke für dieses Tutorial. Allerdings habe ich ein Problem, und zwar bekomme ich keine Antwort, wenn ich AT sende. Ich versuche das ganze mit einem Arduino Nano und habe im SoftwareSerial-Sketch entsprechend die Pins auf SoftwareSerial mySerial(0, 1); // RX, TX geändert. Wenn ich den Sketch hochlade und den Serialmonitor danach starte, erhalte ich nur folgende Ausgabe:
Goodnight moon!
F
Wenn ich AT sende, erscheint hinter dem F dieses Zeichen: þ
Was ist da los?
Hallo Scritch,
.
pin 0 und pin 1 sind die pins des hardware serials (USB). Du musst andere pins benutzen.
.
Hubert
Danke für die fixe Antwort. Okay, dann einfach irgendwelche digitale Pins?
Hallo Scritch,.
.
im Prinzip gehen alle Pins. Pin 2 oder 3 als RX-Pin ist empfehlenswert, weil die mit externem Interupt arbeiten können und daher am sichersten und mit den höchsten Baudraten funktionieren.
.
Hubert
Hatte mir zwischenzeitlich meine Frage bereits selbst beantwortet. Bei manchen Boards gibts ja irgendwelche Limitierungen, sodass man nicht alle Pins benutzen darf. Steht ja sogar im Beispielsketch.
Trotzdem bekomme ich keine Funktion hin, wie du sie beschreibst. Ich sende per SerialMonitor AT und erwarte OK zurück. Es passiert aber gar nichts. Jetzt bin ich soweit dass ich folgende Ausgabe erhalte, ohne irgendwas eingegeben zu haben:
Goodnight moon!
ERROR:(0)
Danke für deine Hilfe.
Hast Du im PC im Serial Monitor die Einstellung „Kein Zeilenende“ gewählt ?
Ja, das habe ich
Hallo Zusammen,
ich habe mir 5 Stk. HC-06 BT-Adapter gekauft und allen mit AT-Befehlen eine Baudrate von 9600 eingestellt und unterschiedliche Namen und PIN gegeben. Alle lassen sich mit dem Handy koppeln aber nur 3 von 5 verbinden dann in der App mit der Gegenstelle. bei den anderen bekomme ich die Fehlermeldung „Timeout reading 0 from 6 Byte“.
Verbinde ich Handy+Terminal App mit PC kann ich daten senden und empfangen.
Grüße, Sven
Hallo Sven,
.
mit welcher Handy-App möchtst Du kommunizieren? Es muss einr App sein, die über das SPP (serial port profile) kommuniziert. Im Beitrag habe ich geeignete Apps genannt..
.
Hubert
Hallo Hubert,
vielen Dank erst mal für die Antwort. Und ich wie ich gerade sehe wurde meine erste Frage ja doch angenommen. Sorry.
Die App die ich benutze ist speziell für das Steuergerät meines Motorrades um darüber Fehlerdiagnose zu betreiben, bzw. Änderungen im Steuergerät vorzunehmen.
https://play.google.com/store/apps/details?id=org.ecmdroid&hl=de
Es wird hier auch ganz gut der Bau des BT-Adapters beschrieben. Allerdings wird hier ein Modul von Sparkfun benutzt, welches aber nicht ganz billig ist.
http://www.ecmspy.com/btwireless2.shtml
Wie ich in meiner zweiten Anfrage auch schon beschrieben habe, funktionieren ja drei von fünf Adapter.
Gruß,
Sven
Ich habe jetzt nochmal bischen probiert und recherchiert und bin darauf gestoßen, den Key-Pin des HC-05 an einen auf HIGH gesetzten digitalen Pin anzuschliessen. Das hat zum Teil auch Erfolg gebracht. Wenn ich nun ein AT sende erhalte ich auch OK zurück. Wenn ich allerdings jeglichen anderen Befehl sende, erhalte ich keine Antwort. Beim HC-06 ist es nicht anders. Hast du da auch noch einen Tipp?
Hallo Hubert,
ich bin ziemlich neu auf dem Gebiet und hab hier ein Problem, wo ich einfach nicht weiter weiß.
Ich habe auf meinem Droiden eine App mit der ich Daten vom Steuergerät meines Motorrades aus- und einlesen kann. Für die Verbindung benutze ich einen HC-06 BT-Adapter von denen ich gleich 5 Stück gekauft habe, da die kumpels ja auch gleich versorgt werden wollen.
Diese 5 Stück habe ich alle mit AT-Befehlen konfigurieren können, sodass sie die selbe Baudrate (9600) haben, aber unterschiedliche Namen und PINs. Drei von ihnen funktionieren und bei zwein bekomme ich den Fehler „Timeout reading 0 from 6 Byte“, wenn ich sie in der App verbinde. Koppeln mit dem Droiden ist kein Problem.
Defekt scheinen sie aber auch nicht, da ich mir zum Einen daraufhin noch zwei gekauft habe und diese auch den Fehler bringen, zum Anderen ich mit einer Terminal-App auf dem Droiden Daten zwischen Handy und PC senden kann. Heißt, die LED vom BT-Adapter blinkt schnell und leuchtet dauerhaft nach dem Verbinden.
Gruß, Sven
Hallo Svensonite,
Dein Bluetooth – Projekt ist sehr interessant. Wäre toll wenn Du uns auf den Laufenden hälst.
.
Ich fasse noch mal zusammen. 3 von 5 Bluetoothmodulen arbeiten einwandfrei. Bei den anderen kommt eine Fehlermeldung bei der Kommunikation mit dem Handy. Da kann ich mir nur vorstellen, dass die Parameter nicht stimmig sind.
Setze doch nochmal mit dem PC Baudrate und Paritybit:
.
AT+PN no Parity
AT+BAUD4 Baudrate 9600
.
Viel Erfolg
Hubert
Hallo Hubert,
es wäre schön, wenn du mir bei meinem Problem helfen könntest. Ich habe einen Pro Micro von Sparkfun und daran habe ich ein HC-05 (wie es oben abgebildet ist) angeschlossen. Es geht darum, dass hauptsächlich Daten vom Smartphone an den Micro übertragen werden sollen, der Micro soll dann eine Rückmeldung ans Smartphone senden. Ich habe das HC-05 wie beschrieben angeschlossen die baudrate liegt bei 9600 (default). Ich habe einen Sketch geschrieben in dem der Micro Daten über das HC-05 versendet und sobald er eine 1 oder ein A empfängt, soll er Rückmeldung über den Erhalt der Daten geben. Auf dem Smartphone nutze ich die App Bluetooth Terminal. Ich empfange, sobald die Verbindung steht, alle Daten die das HC-05 sendet auf dem Smartphone, sende ich allerdings eine 1 oder ein A vom Smartphone an das HC-05 geschieht nichts. Ich habe schon alle möglichen Schaltungen mit Widerständen (Spannungsteiler) usw. probiert. Es funktioniert aber immer nur in die eine Richtung. Hast du vielleicht noch eine Idee? Vielen Dank schon mal 🙂
ups habe die Grüße vergessen 😛 also denkt euch bitte noch ein “Gruß Micha“ unter dem letzten Kommentar 🙂
Hallo Micha,
.
vielen Dank für Dein Interesse. Damit ich Dir helfen kann sag mir bitte an welche Pins Du das Bluetoothmodul angeschlossen hast. Die sind vielleicht nicht für das Serial-Interface geeignet.
.Hubert
Hallo Hubert,
danke erstmal für die schnelle Antwort. Ich habe an Pin 0 und 1 angeschlossen (also Standard RX,TX) ich kommuniziere ja nicht zeitgleich über USB, sollte deshalb also funktionieren. Habe es allerdings trotzdem mit SoftwareSerial gemacht. Hab noch vergessen zu sagen, dass es ein 5V/16MHz Micro Pro ist.
Das ist mein simples Testprogramm, das auf den Micro geladen ist:
#include
SoftwareSerial mySerial(0, 1); // RX, TX
int ledpin=13;
int i=0;
void setup() {
mySerial.begin(9600);
mySerial.println(„Hallo vom Bluetooth Modul“);
pinMode(ledpin,OUTPUT);
}
void loop() {
digitalWrite(ledpin, 1);
if (i= ‚0‘ && ch = ‚a‘ && ch <= 'A'){
mySerial.println("hab empfangen");
}
else if (ch =='\n'){ // Wenn letztes Zeichen Protokoll empfangen und zwei Werte da.{
mySerial.println("neue Zeile");
}
}
Die Antworten vom BT-Modul kann ich auf dem Handy sehen ("(Nummer) von Bluetooth"), allerdings antwortet der Micro nicht darauf, wenn ich vom Handy aus eine Zahl zwischen 0 und 9 oder ein a bzw. A sende. Ich habe es eben mit Handy und Laptop gecheckt, da kommen alle Daten in beide Richtungen an.
Gruß
Micha
Hallo Micha,
.
in der Arduino IDE gibt es den Menu-Punkt als HTML kopieren. Damit kommt der Sketech schön aufbereitet in die Zwischenablage. Dann kannst Du mit Strg V den Sketch in die Kommentar TextBox kopieren.
Wenn Du Pin 0 und 1 verwendest solltest Du nicht mit Softserial arbeiten, sondern mit Serial.
.
Hubert
Hallo Hubert,
mit Serial und Serial1 hab ich es auch schon probiert, das bringt aber auch nichts, hab dann im Internet irgendwo gefunden, dass man es auch trotzdem mit SoftwareSerial machen kann. Hat aber bisher auch nichts gebracht hab auch schon pin 2/3 und 5/6 probiert.
also hier jetzt der Code:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX
int i=0;
void setup() {
mySerial.begin(9600);
mySerial.println(„Hallo vom Bluetooth Modul“);
}
void loop() {
if (i<1000){
mySerial.print(i);
mySerial.println(“ von Bluetooth“);
delay(10);
i++;}
char ch = mySerial.read();
// Falls die ASCII Zeichen Ziffern sind.
if(ch >= ‚0‘ && ch <= ‚9‘){
mySerial.println(„hab empfangen“);
}
if(ch >= ‚a‘ && ch <= ‚A‘){
mySerial.println(„hab empfangen“);
}
else if (ch ==’\n‘){ // Wenn letztes Zeichen Protokoll empfangen und zwei Werte da.{
mySerial.println(„neue Zeile“);
}
}
Gruß
Micha
Hallo Micha,
.
ich bin ja noch skeptisch mit Softserial auf Port 0/1.
.
Deine Abfrage auf a / A kann niemals greifen, weil der ASCII Code eines a = 97 und A = 65 ist. Das empfangene Zeichen kann nicht größer 97 und gleichzeitig kleiner 65 sein.
.
Hubert
Hallo Hubert,
danke. Jetzt erkenne ich meine Dummheit mit den a’s hab das übersehen soll natürlich == sein nicht > oder < =. Ok wenn du da skeptisch bist werde ich es morgen nochmal mit anderen pins und auf 0/1 ohne SoftwareSerial probieren. Danke schon mal für die Hilfe.
Gruß
Micha
Hallo Hubert,
habe es jetzt nochmal in allen Varianten getestet. Es funktioniert immer noch nicht, es wird immer nur einseitig kommuniziert. Alles was ich vom Smartphone oder Laptop an den Arduino sende, scheint nich anzukommen. Hab es jetzt an PIN 0/1 angeschlossen und nutze Serial1 (Serial funktioniert nicht). Hast du vielleicht noch eine Idee?
Gruß
Micha
Hallo Micha,
–
… schwieriger Fall …
.
Zur Sicherheit bitte überprüfe nochmals folgende Punkte :
.
* Die vom Arduino gesendeten Texte werden in Blueterm angezeigt.
* Zeichen, die Du in Blueterm tippst werden in Blueterm angezeigt. (Es gab schon mal das Problem, dass die im Smartphone eingestellte Tastatur von Blueterm nicht erkannt wurde).
* Deine a/A Abfrage ist jetzt mit „oder“ verknüpft (statt „und“ wie bisher)
* Arbeite ggf. mit Serial1.availible() um erstmal zu prüfen ob ein Zeichen empfangen wurde.
.
Viel Erfolg
.
Hubert
Hallo Hubert,
habe nicht Blueterm verwendet sonder Bluetooth Terminal, da wurde alles angezeigt was ich abgeschickt habe nur die Rückmeldung kommt nicht. Bei Blueterm (gerade runtergeladen) wird nicht angezeigt was ich eintippe. Ich habe schon gestern noch die Serial1.available() abfrage eingefügt in einer If-Anweisung und die A’s hab ich auch gestern noch korrigiert. Leider bisher alles ohne Erfolg. Bist du auch der Meinung, dass das Modul eher nicht kaputt sein kann, wenn es sich problemlos koppeln lässt und auch Daten ans Smartphone senden kann? Ich verstehe einfach nicht warum es in die eine Richtung funktioniert in die andere aber nicht… Vielen Dank dir für deine Tipps die du mir bisher schon gegeben hast =)
Gruß
Micha
Hallo Hubert,
ich habe jetzt versucht mal im AT Command Mode den Namen zu ändern, das hat funktioniert. Ich habe allerdings auch hier überhaupt keine Rückmeldung erhalten, habe nur danach auf meinem Smartphone gesehen, dass das Modul jetzt umbenannt ist. Meinst du es kann an Lötverbindungen liegen? Kann ja aber eigentlich auch nicht sein, da ich ja mehrere Pins getestet habe und immer nur die eine Richtung nicht funktioniert. Hast du vielleicht irgendwo schonmal von einem ähnlichen Problem gehört oder gelesen? Habe dazu nicht wirklich was gefunden, dass mir weitergeholfen hätte. Du hast mich jetzt schon ein Stück weiter gebracht, danke dafür! Vielleicht bekomm ich es ja noch so weit, dass es funktioniert 😛
Gruß
Micha
Hallo Micha,
.
das mit dem Umbenennen macht mich stutzig. Ist das BT-Modul im Programmier-Modus ? Der Pin Key darf nicht an 3.3 V liegen !
.
Hubert
Hallo Hubert,
ja hatte das Modul dafür kurz so angeschlossen, um zu testen ob das funktioniert. Es hat funktioniert daraufhin hab ich es wieder “normal“ angeschlossen. Am Problem hat sich ja aber nichts geändert.
Gruß
Micha
Hallo Micha,
.
ich habe jetzt einen fabrikneuen HC05 an meinen Arduino angeschlossen und mit dem Softserial Beispiel der Arduino IDE getestet (die Baudrate habe ich auf 9600 gestellt),
.
Test mit Samsung Tab S :
Ergebnis : Koppeln: kein Problem. Blueterm: verbinden kein Problem Blueterm senden und empfangen: kein Problem.
.
Die Kommunikation von / zum PC via Arduino und Serial Port funktioniert auf Anhieb.
.
Dann habe ich im Sketch die Baudrate zum HC05 auf 38400 gestellt, den KEY-Pin auf + 3,3 V gelegt und USB-Stecker raus rein (HC05 bootet neu)..
Jetzt war ich im Programmier-Modus (wichtige Einstellung im Serial Monitor : Zeilenende mit CR und NL).
.
Nun habe ich alle relevanten / interessanten Parameter abgefragt :
.
Gesendet :
AT
Antwort :
OK
.
Gesendet :
AT+CMODE
Antwort :
+CMOD:1
OK
.
Gesendet :
AT+ROLE
Antwort :
+ROLE:0
OK
.
Gesendet :
AT+UART
Antwort:
+UART:9600,0,0
OK
.
Gesendet :
AT+BIND
Antwort :
+BIND:0:0:0
OK
.
Gesendet :
AT+NAME
Antwort :
+NAME:HC-05
OK
.
Bitte vergleiche das mit Deinem HC05-Modul. Möglicherweise ist da etwas verstellt.
.
Vielleicht hilft auch ein
AT+ORGL
um den HC05 auf die Werkseinstellungen zurück zusetzen.
.
Viel Erfolg
.
Hubert
.
PS: Ich weis das Du das die erforderlichen Schritte schon einmal erfolgreich durchgeführt hast. Dennoch beschreibe das hier etwas ausführlicher, damit andere Leser das genau nachvollziehen können.
Hallo Hubert,
Danke, leider scheint der Erfolg auszubleiben. Mittlerweile hab ich mir einen Arduino Uno besorgt, um es mit diesem auch zu testen. Wie du vorgeschlagen hast, habe ich das Modul in den AT-Command Mode gesetzt und das Modul auf Werkseinstellung gesetzt. Dies hat auch funktioniert, da der Name des Moduls danach wieder anders war als ich ihn zuvor eingestellt hatte. Was dabei aber auffiel, ist das immer noch keine Rückmeldung vom Modul kommt. Ich gebe die AT-Commands im Serial Monitor ein, es kommt aber keine Antwort, also wenn ich zum Beispiel „AT“ eingebe kommt kein „Ok“ zurück, das einzige was im Serial Monitor aufgeführt ist, ist das hier ->Serial.println(„Enter AT commands:“);
Danach hab ich dann Name und Baudrate wieder geändert, auch das scheint funktioniert zu haben, da der Name des Moduls geändert wurde. Ich habe anschließend wieder den alten Sketch drauf geladen, um das Modul zu testen, leider ist es immer noch das gleiche Problem. Ich habe einen Sketch geschrieben, bei dem der Arduino über das BT-Modul Daten sendet, diese Daten werden von meinem Smartphone auch empfangen, wenn ich es mit dem Modul gekoppelt und eine Terminal App geöffnet habe. Wenn ich allerdings vom Smartphone Daten über BT an das Modul sende kommt keinerlei Reaktion des Modul, eigentlich sollte laut Sketch der Arduino eine Rückmeldung ans Smartphone senden, dass die Daten erfolgreich empfangen wurden. Diese bleibt aber aus!
Ich bin der Meinung, dass das Problem in der Übertragung vom Modul zum Arduino liegen muss. Denn auch im AT-Command Mode kommt ja keine Rückmeldung des Moduls am PC an, und da läuft die Kommunikation ja nicht über BT, also kann es nicht daran liegen, dass das Modul die BT Daten nicht empfängt. Ich habe die Anschlusskabel des Moduls auch mal getauscht, jedoch immer noch das gleiche Ergebnis.
Gruß
Micha
Hallo Micha,
.
ich fürchte es gibt nur noch eine Erklärung : Der TX-Ausgang Deines HC05 ist defekt.
.
Hubert
Hallo Hubert,
komischerweise ging es gestern plötzlich, mit dem Sketch hat es jetzt funktioniert. Ich hab aber keine Ahnung warum es jetzt plötzlich ging. Vielen Dank für deine Hilfe!!! =)
Hier der Sketch:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); // RX, TX
int i=0;
int pinled = 6;
void setup() {
mySerial.begin(9600);
mySerial.println(„Hallo vom Bluetooth Modul“);
pinMode(pinled,OUTPUT);
digitalWrite(pinled,HIGH);
}
void loop() {
if (i<1000){
mySerial.print(i);
mySerial.println(“ von Bluetooth“);
delay(10);
i++;}
if (mySerial.available()>0){
char ch = mySerial.read();
// Falls die ASCII Zeichen Ziffern sind.
if (i>900){
if(ch >= ‚0‘ && ch <= ‚9‘){
mySerial.println(„hab empfangen“);
delay(100);
}
if(ch == ‚a‘ || ch == ‚A‘){
mySerial.println(„hab empfangen“);
delay(100);
}
else if (ch ==’\n‘){ // Wenn letztes Zeichen Protokoll empfangen und zwei Werte da.{
mySerial.println(„neue Zeile“);
}
}
}
}
Gruß Micha
Pingback: Sprachinterface a la Startrek | Arduino-Hannover
Hallo Hubert,
ich suche eine Lösung mit sehr niedrigem Stgromverbrauch, um eine LED per Bluetooth zu schalten. Ist es möglich eines der gängigen Bluetooth-Module standalone hierfür zu nutzen, d. h. ohne dass ein Arduino-Board eingesetzt werden muss?
Freue mich über alle Infos hierzu!
Vielen Dank schon einmal und beste Grüße
Jörg
Also ein BLE-Modul sollte es sein, bspw. HM-10, aber funktioniert es durch Nutzung der PIO-Schnittstellen ohne Einbindung eines Arduino-Moduls?
Pingback: bluetooth sunrise alarm clock + iRise smartphone app | thisisyetanotherblog
Hallo, ich möchte mit einem Bluetooth Modul das Signal von einem MPU-6050 zu einem Arduino Nano schicken. Mit dem 6050 möchte ich dann bei einem bestimmten Winkel ein Servo in eine bestimmte Position bringen. An dem Nano habe ich das bereits hinbekommen aber jetzt möchte ich das auch von einer Position machen die 6 Meter entfernt liegt und nicht mit einem Kabel erreicht werden soll. Meine Idee ist jetzt einen Arduino Micro auch mit dem MPU 6050 Sensor zu bestücken und dann über das Bluetooth Modul bei dem bestimmten Winkel das Setvo am Arduino Nano zu schalten. Meine Frage dazu ist jetzt ob das was werden kann oder nicht. Vielleicht hat jemand einen Tipp für mich wie ein Sketch dafür aussehen muss.
Vielen herzlichen Dank,
Florian
Servus,
ich hätte eine Frage :
ich habe meinen HC 06 so angeschlossen wie in der Anleitung beschrieben und
auch mein Galaxy s5 ist bereits damit verbunden.
Jedoch tut sich nichts wenn ich mit meiner „Ardudroid“ App zB. DigitalWrite 03 antippe…
Muss ich eigentlich ein Programm hochladen wenn ich nur ein paar LEDs über die
Digitalen Ausgänge ansteuern möchte, oder reicht es das Modul zu verbinden wie in der Anleitung?
Ja
Gute Zusammenfassung, aber ich habe noch eine Frage. Wie sieht es damit aus, dass ich dem maester einen Befehl gebe und dieser soll den weiteren Modulen den Befehl weiterleiten doch über eine Distanz das der maester das letzte Modul nicht erreicht. Können diese Module HC-05 eine Information empfangen und wenn sie nicht für sie ist weitersenden? Oder schlägst du andere Module vor?
Danke im voraus!
Hallo Jonas,
laut Bluetooth – Konzept arbeitet jedes Gerät auch als Repeater.
Somit müsste es genügen, ein HC-MODUL an geeigneter Stelle,ohne besondere Funktion , zu betreiben.
Hubert
Hallo,
ich habe ein hc05 Modul als Master mit einem 06 verbunden. Das funktioniert einwandfrei. Vor kurzem habe ich mir einen RFduino zugelegt, da dieser kleiner ist als ein 06 Modul. Die Verbindung von hc05 und dem RFduino klappt leider nicht. Ich habe die Vermutung, dass das daran liegt dass der RFduino mit BluetoothLE arbeitet.
Kann das hc 05 BluetoothLE bzw. sich mit einem Slave der mit LE arbeitet verbinden?
Danke schonmal im Voraus.
Grüße
Marco
Hallo Hubert,
der Hinweis mit der UUID war echt gut. Vielen Dank!! Ich habe schon verzweifelt. Nun habe ich das Problem, das wenn ich mehrere Bytes Daten hintereinander vom µC über Bluetooth zum Handy schicken möchte, kommen nicht alle Bytes an. Nur wenn ich nach jedem Zeichen eine kleine Pause lasse, kommen alle Bytes an. Ich vermute das meine App zu langsam die Daten verarbeitet. Hast Du da Erfahrungen oder Tipps?
Hallo Dominique,
mit Bytes habe bisher nicht gearbeitet.. Ich sende auch Zahlenwerte immer als Textstring. Das funktioniert problemlos.
Hubert
Ich habe es schon am Laufen. Doch freue ich mich immer wieder, wenn ich so gute Beschreibungen finde wie diese hier.
Danke
Hallo, ich bin am verzweifeln. Ich habe ein hm-10 modul das einfach keine AT befehle annimmt. Eine Kommunikation zwischen iphone app und seriellen Monitor vom arduino geht in beide Richtungen. Habe schon etliche Anleitungen ausprobiert. Habe auch schon ein anders hm-10 modul mit einem andern breakboard ausprobiert!
Würde mich mega freuen wenn mir jemand helfen könnte!
Grüse heidepower
Guten Abend,
Ich habe einen HC 06 und brauche die Programmierschnittstelle. Mit meinem Handy kann ich diese aber nicht aufrufen. Ich mache es wie angegeben. Alles andere funktioniert (pin ändern und co). Gibt es noch eine andere Möglichkeit dieses herauszufinden ?