Für mein Projekt Arduino 2WD Robot benötige ich eine drahtlose Kommunikation zwischen dem Arduino und dem Endgerät. Hier gibt es 3 Möglichkeiten entweder ich nutze Bluetooth, WLAN oder eine 433MHz Funkverbindung. Die 433MHz Funkverbindung bedarf 2 Mikrocontroller, da ich jedoch als Endgerät ein Android System gewählt habe, fällt diese aus meiner Entscheidung aus.
Das Bluetooth Modul HC – 06
Technische Daten
- Chip BC417
- Bluetooth V2.0 Protokoll
- Frequenzband 2.4GHz bis 2.8GHz, ISM Band
- Betriebsspannung 3.3 V
- Stromaufnahme
- Verbunden 8mA
- Verbindungsaufbau 35mA
Bezug
Dieses Modul habe ich über ebay per Sofortkauf ersteigert und kostete ca. 6 €.
Aufbau der Schaltung
Benötigte Komponenten
- 4 Breadboard Kabel* (verschieden farbig, männlich – weiblich), min. 20 cm
- Arduino UNO*
- USB-Kabel für die Verbindung zum Computer
- Bluetooth Modul HC-06*
- ggf. etwas Klebeband für die Breadboardkabel
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Schaltplan
Bluetooth Modul HC-06 | Arduino UNO |
---|---|
VCC | 5V |
GND | GND |
TX | 11 |
RX | 10 |
Wenn das Modul wie oben beschrieben angeschlossen wurde, sollte der Aufbau zzt. so aussehen:
Quellcode
Folgenden Quellcode habe ich von GitHub Repository https://github.com/tronixlabsAU/ geladen und meinen Bedürfnissen für dieses Tutorial angepasst.
#include <SoftwareSerial.h> SoftwareSerial BT(10, 11); char a; // variable to store messages void setup() { BT.begin(9600); // set the data rate for the SoftwareSerial port BT.println("Hello from Arduino"); // send wellcome message to other device } void loop() { // if text arrived in from BT serial... if (BT.available()){ a=(BT.read()); // store incoming character from other device if (a=='1'){ //when send character 1 then... BT.println("send 1"); } else if (a=='2'){ //when send character 2 then... BT.println("send 2"); } else { // otherwise print this description... BT.println("Send '1' or '2'"); } } }
Die Verwendung dieses Quellcodes setzt voraus dass, das Modul wie im Kapitel “Schaltplan” angeschlossen wurde, sollten andere PINs verwendet worden sein, so muss dieses im Quellcode angepasst werden.
Nachdem das oben genannte Sketch mit der Arduino IDE hochgeladen wurde, kann nun ein erster Test erfolgen, dazu wird auf einem Bluetoothfähiges Gerät nach anderen Bluetooth Geräten gesucht.
Das Gerät wird jetzt unter Microsoft Windows 10 und Android 4.3 gefunden.
Die weiteren Schritte werden mit einem Android-Gerät erfolgen.
Kommunikation zwischen einer App und dem Arduino
Installieren einer Bluetoothterminal App
Für die Kommunikation zwischen dem Android-Gerät und dem Arduino wird eine App benötigt, welche einfach aus dem Google Playstore geladen werden kann.
Ich verwende hier die App “Bluetooth Terminal HC-05“. Nachdem die App (oder ein vergleichbar andere) installiert ist, kann mit dem nächsten Schritt begonnen worden. Sollte nicht diese App verwendet werden, so werden wahrscheinlich einige Felder anders benannt oder andere Schritte zur Konfiguration und / oder der Benutzung notwendig sein.
Pairing
Damit die Geräte miteinander kommunizieren können, müssen diese gekoppelt werden, das Passwort für die Verbindung zum HC-06 Modul lautet 1234.
Nachdem die Geräte jetzt gekoppelt wurden, kann die App geöffnet werden, dort werden beim Starten alle gekoppelten und aktiven Geräte angezeigt.
Starten der App
Nachdem die App gestartet wurde, werden alle aktiven und gekoppelten Geräte angezeigt.
Willkommensnachricht
Nachdem das Gerät “HC-06” gewählt wurde, wird die Verbindung aufgebaut und die Willkommensnachricht aus dem Sketch
BT.println("Hello from Arduino");
wird empfangen.
Konfiguration der App
Bevor wir unsere Kommandos über die App an den Arduino UNO senden können, müssen wir in den Einstellungen (Settings) der App
- das automatische Einfügen eines Zeilenumbruchs (CR), sowie
- das springen an den Zeilen Anfang (LF)
abstellen (Haken ist NICHT gesetzt)
Senden und Empfangen von Nachrichten
Es kann nun im Eingabefeld “Enter Command” ein Text eingegeben und abgesendet werden. Da das Arduino Programm auf die Zeichen ‘1’ und ‘2’ horcht, werden jetzt folgende Ausgaben erzeugt.
Fazit
Der Aufbau einer Verbindung über Bluetooth ist relativ einfach und mit wenig Know-how zu erlernen.
Hier hilft natürlich wieder eine verwendete Bibliothek im Arduino Sketch, denn wenn man diese selber schreiben würde, sehe das wieder ganz anders aus.
Hallo, ich würde sehr gerne die Schaltung Lektion 21 nachstellen. Leider antwortet mein Modul HC-06 nicht. Original Sketch, Original Schaltung inkl. PIN-Belegung. Pairing funktioniert ohne Probleme, Hochladen Sketch auch. Es gibt keine Fehlermeldung.
Verwende nach Anleitung das Bluetooth-Terminal HC-05 (auch alternatives Bluetooth-Terminal kann keine Rückmeldung des Arduino empfangen). Auch keine Willkommensnachricht wird im Terminal empfangen. Habe über verstreute Serial.println-Befehle herausgefunden, dass er zwar setup() durchläuft und im loop() startet, aber die Bedingung if(BT.available) offenbar nie erfüllt.
PS: Andere BT-Sketches kann ich mit gleichem Terminal nutzen, solange das HC-06 nur empfängt. Aber Senden habe ich noch nicht hinbekommen. Woran kann das liegen?
Hallo Oliver,
das klingt nach einem interessanten Problem. Welchen Microcontroller verwendest du denn?
Gruss,
Stefan
Ich denke mal, man muss eigentlich RX und TX wie üblich kreuzen. Also Pin 10 und 11 vertauschen.