Es gibt Szenarien, in denen eine Bluetooth-Steuerung zum Schalten von Geräten über den Arduino einer Steuerung über WLAN oder LAN bevorzugt wird. Das ist z.B. dann der Fall, wenn der Arduino samt Peripherie in unterschiedlichen Umgebungen betrieben werden soll oder in Umgebungen, in denen es kein Netzwerk gibt. Dann bietet es sich an, die Steuerung über Bluetooth zu realisieren, da hier zur Steuerung nur ein Bluetooth-fähiges Gerät benötigt wird.
Bluetooth-Module – wie das HC-05 – sind bereits für wenig Geld in China oder bei deutschen Händlern erhältlich und lassen sich einfach am Arduino nutzen. Ich beschreibe nachfolgend kurz die Nutzung des Bluetooth-Moduls HC-05 am Arduino Uno, über das man per SPP (z.B. über Mac OS X oder Android App) Befehle an den Arduino senden kann und vom Arduino eine Antwort zurückbekommt.
1. Anschluss an Arduino Uno
Der Anschluss des Moduls an den Arduino Uno ist sehr simpel. Man benötigt hierzu lediglich 4 Jumper-Kabel (male-female). Die Verkabelung ist nachfolgender Skizze zu entnehmen:
2. Der Arduino-Sketch
Exemplarisch habe ich einen Arduino-Sketch umgesetzt, der die LED an Pin 13 über die Bluetooth-Befehle „on“ bzw. „off“ ein- bzw. ausschalten kann.
Der Sketch sollte selbsterklärend sein, da lediglich Standard-Arduino-Funktionen benutzt wurden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <SoftwareSerial.h> #define ledPin 13 #define rxPin 10 #define txPin 11 SoftwareSerial btSerial(rxPin, txPin); String btData; void setup() { btSerial.begin(9600); btSerial.println("bluetooth available"); pinMode(ledPin,OUTPUT); } void loop() { if (btSerial.available()){ btData = btSerial.readString(); if(btData=="on"){ digitalWrite(ledPin,1); btSerial.println("LED on Pin 13 is on"); } if (btData=="off"){ digitalWrite(ledPin,0); btSerial.println("LED on Pin 13 is off"); } } delay(100); } |
3. Schalten über Bluetooth
Habt ihr den Sketch auf den Arduino übertragen und das HC-05-Modul an diesen angeschlossen, solltet ihr euch nun von einem Bluetooth-fähigen Endgerät auf das Bluetooth-Modul verbinden können und den implementierten Schaltbefehl ausführen können.
Exemplarisch beschreibe ich nachfolgen eine mögliche Vorgehensweise dazu unter Mac OS X sowie Android.
3.1 Vorgehensweise unter Mac OS X
Aktiviert Bluetooth an eurem Mac und öffnet „Systemeinstellungen“ → „Bluetooth“. Dort solltet ihr das HC-05-Modul angezeigt bekommen.
Das Koppeln sollte erst einmal scheitern, da noch eine Pin eingegeben werden muss. Klickt dazu auf „Optionen…“ und tragt die Pin „1234“ ein.
Ihr seid nun mit dem Modul verbunden und könnt Befehle an dieses senden und von diesem empfangen. Am Einfachsten geht das über die Arduino-IDE, in der ihr einfach unter Port das HC-05-Modul auswählt.
Ihr könnt nun den seriellen Monitor öffnen und die Befehle „on“ und „off“ testen.
Die LED sollte wie ausgegeben schalten.
3.2 Vorgehensweise unter Android
Besitzt ihr ein Android-Handy könnt ihr auch darüber auf die Bluetooth-Schnittstelle des Arduino zugreifen. Dazu benötigt ihr zusätzliche Software auf dem Smartphone, welche unter Suchbegriffen wie „Bluetooth Terminal“, „Bluetooth SPP“ oder einfach „Bluetooth Arduino“ im PlayStore in Massen zu finden sein sollte. Ich habe mich für das minimalistische „Bluetooth Terminal“ entschieden, das ich nachfolgend auch für die Beschreibung verwende.
Aktiviert Bluetooth und öffnet die App. Es sollte euch direkt das Arduino-Modul angezeigt werden.Koppelt es mit dem Pin „1234“. Nun seid ihr damit verbunden.
Über die Befehle „on“ bzw. „off“ könnt ihr damit wieder die LED schalten.
Wie ihr sehen könnt, ist es äußerst simpel, ein günstiges Bluetooth-Modul für Automatisierungs-/Schaltzwecke zu nutzen. In Verbindung mit rc-switch lassen sich damit Funksteckdosen über Bluetooth schalten oder mit IRremote Infrarot-Geräte.
Bei Fragen, Problemen, Anregungen usw. könnt ihr natürlich wie immer das Kommentarfeld unten verwenden.
hallo…gibt es für android eine einfachere alternative zum schalten als über das terminal? ich denke da an eine fb-app wie netio, nur halt für bluetooth. kennst du / kennt ihr da zufällig was passendes, das mit diesem setup (hc05+arduino) sauber funktioniert?
Hallo Jörg,
ich selbst habe noch keine ideale Lösung gefunden, im PlayStore gibt es allerdings einige FB Apps für Bluetooth, die auch funktionieren sollten, wenn sie mit SPP arbeiten.
Wie wäre es damit:
https://funduino.de/tutorial-hc-05-und-hc-06-bluetooth
Guten Tag, kann man das auch mit einem Bluetooth 4.0 LE Modul umsetzen? Damit könnte man das Projekt auch mit Batterie betreiben. Danke!
Hallo Ich ;)
Direkt umsetzen dürfte es sich mit BT LE nicht, da es dort kein SPP nach meinem Wissen gibt.
Großartiges Tutorial! Ich werde das mit meinem Nano nachbauen und für eine Relaisschaltung verwenden. Bluetooth ist mir da aus Sicherheitsgründen lieber als Wlan.
Hallo! Als iPhone Besitzer würde mich interessieren, ob es auch passende Apps für iOS gibt. Ich habe schon im AppStore gesucht, konnte aber leider noch nichts passendes finden. Danke!
Hi Markus,
iOS unterstützt leider nur wenige Bluetooth-Profile. SPP gehört nicht dazu.
hallo!
sehr aufschlussreich dein beitrag! ich habe zwei bluetooth module bestellt und warte drauf dass ich deine infos mal ausprobieren kann.
hast du einem tipp, wie man zwei arduinos über bluetooth verbinden kann? das ist nämlich das, was ich vorhabe.
der eine soll messwerte ermitteln und über bluetooth die werte an einen zweiten übertragen und dort aktionen auslösen…
Hallo,
Kannst du ein Tutorial zur Funksteckdosensteuerung über Bluetooth machen? Bekomme leider das selbst nicht hin…
?
Hi Dan,
das sollte eigentlich kein großes Problem sein – wo hakt es denn?
hi, klappt das auch mit dem hc-06?
Hi Nico,
für diesen Anwendungsfall reicht das HC-06 auch aus, es kann nur als Slave arbeiten. Mit dem HC-05 hat man zusätzlich noch die Möglichkeit, es als Master einzusetzen.
Hi,
ich habe das Ganze auf dem Leonardo versucht.
Leider funktioniert es dort nicht. Jemand ne Ahnung warum es nicht geht?
BT verbinden mit dem Mac funktioniert. Aber ich kann die LED nicht schalten.
Hallo Georg,
klappt nur die LED nicht oder kommt auch keine serielle Ausgabe?
Hallo,
kann man dem Arduino sagen das er die LED nicht nur Anschalten soll sondern die LED faden lassen soll. Sprich ich sende ihm „Rote LED Fading“ und die LED wir dann heller und dunkler? Ist das Möglich?
Hallo Jochen,
klar geht das – du kannst über Bluetooth alles am Arduino steuern. Das Schalten der LED ist nur das einfachste Hardware-Beispiel, daher habe ich es hier verwendet. Zum Faden der LED kann man z.B. den obigen Skech entsprechend erweitern:
Hi,
auf den HC Modulen steht die Spannung an den Rx und Tx Leitungen sollte 3 Volt betragen.
Ist es kein Problem, diese direkt mit den 5V Arduino zu verbinden?
Hallo Alois,
die reinen HC-Module (grüne Platine) arbeiten, wie du schon richtig geschrieben hast, mit 3,3V. Wie auf dem Foto und dem Schaubild zu sehen ist, verwende ich die verlötete Version (mit blauer Platine). Dort ist ein entsprechender Spannungsteiler drauf. Bessere Bilder davon z.B. auf dieser Seite.
Vielen Dank für das tolle Tutorial! Klappt einwandfrei!
Hallo, gibt es eine Möglichkeit, ein Bild, welches sich auf einer SD-Karte auf dem Arduino befindet, mit dem HC-05 an ein Smartphone zu senden?
Hallo , gibt es die Möglichkeit einen Bluetooth Sender wie hier am arduino anzuschließen, auch wenn man ein motorshield drauf hat?
Hallo Alex,
kommt darauf an, welche Pins durch das Shield schon belegt sind.
Ich weis nicht ob das schon wer gesehen hat aber der rx und tx pin im Code ist zum Schaltbild vertauscht
Hallo Mathias,
die Pin-Namen im Code beziehen sich auf die entsprechenden Arduino-Pins. Diese sind genau andersrum, als beim Bluetooth-Modul.
Kann man das mit iOS auch machen?
Hallo,
unter iOS ist man leider ziemlich beschränkt, was die Nutzung von Bluetooth angeht. Über Bluetooth 2 lässt sich das nicht realisieren, über BT 4 sollte eine ähnliche Umsetzung möglich sein.
Danke für die Anleitung . Ich bin noch sehr unerfahren auf dem Gebiet, wie sieht es aus wenn ich mehrere LED´s ansteuern möchte??
Hi Peter,
das mit der LED war nur als schnelle Beispiel gedacht. Um mehrere zu steuern, könntest du eine kleine Funktion schreiben mit dem jeweiligen Pin und dem Schaltzustand als Parameter. Diese kannst du dann je nach übermitteltem Befehl aufrufen.
Am Besten ist es, wenn du dich mit den Arduino Grundlagen etwas vertraut machst (dazu gibt es auch auf der Arduino-Seite viele Beispiele), dann lässt sich das wirklich einfach und mit hohem Lernwert umsetzen.
Hallo
ich habe alles wie beschrieben gemacht habe auch bluetooth Verbindung aber weder der der text „bluetoothe available“ und „on“ sowie „off“ werden angezeigt oder verarbeitet. habe wohl den HC-06 Adapter
Hallo, ich habe mit Erfolg die Verbindung vom Tablet Samsug Tab A, SM-T280, via HC-05 zum Arduino Uno hergestellt. Ich verwende den hier vorgestellten Sketch. Nun möchte ich wissen, wie der Uno Sensordaten vom Tablet, z. B. die GPS-Koordinaten, abfragen kann. Ich habe im Internet gesucht, habe aber nichts gefunden oder wurde vom Fachjargon abgeschreckt. Für Hinweise auf Artikel , die nicht sehr hochgestochen formuliert sind, wäre ich sehr dankbar.
Hallo,
ist es richtig, dass ich das Modul vom Arduino trennen muss, so lange ich den USB-Stecker zum PC drin habe?
Moin!
Eine Frage: Ist es möglich einen Ps4 Controller darüber zu verbinden? Ich hab bisher nur Lösungen mit dem USB-Shield gesehen.
Danke für die Antwort
Lg Django
Schönes Tutorial, funktioniert bei mir auch gut. Allerdings muss ich manchmal mehrfach „on“ senden, damit die LED angeht und die Verzögerung ist schon gut 0,5-1s, ist das „normal“ oder könnte das am Bluetooth-Modul bzw. am Computer liegen?
Hallo,,
ich würde gern mit einer externen 10er Tastatur am arduino und HC05 einen Wahlvorgang mittels smarthone ausführen. Gibt es hierfür breits Tools, die ich nutzen könnte?
Hallo.
Eine frage an euch.
Habe eine Deckenleuchte die mit Bluetools fernbedienung betrieben wird.
Auchkann eine App auf dem Handy geladen werden.
Mit dieser fernbedienung könne der Weissantei und RGB geschaltetet werden.
Möchte mit einen Arduino die lampe ansteuern und eine Tag Nacht simulation zu erzeugen.
Ich bin in einem modelleisenbahnverein tätig und diese lampen evt.bis zu 6 Stück sollen als Raumbeleuchtung istalliert werden .Der hersteller gibt den Code nicht raus .
Wer kann mir helfen,oder wie kann man den Code auslesen.
Wohne in Rheda-Wiedenbrück,eventuell wohnt einer von euch in meiner nahe der mich unterstützen kann.
Mfg
Hallo, ist es möglich, eine LED Matrix über bluetooth zu steuern, sodass sie eine Art Feuereffekt macht ?
LG
He Alexander,
Denkst du es sei möglich einen hc05 der an einem arduino hängt mit einem anderen hc05 der aber nur an einen Batterie hängt zu verbinden ?:)
wäre sehr froh über eine antwort