|
|
|
|
Bluetooth ist ein in den 1990er Jahren durch die Bluetooth Special Interest Group
entwickelter Industriestandard gemäß IEEE 802.15.1 für die Datenübertragung
zwischen Geräten über kurze Distanz per Funktechnik (WPAN). Dabei sind
verbindungslose sowie verbindungsbehaftete Übertragungen von Punkt zu
Punkt und Ad-hoc-oder Piconetze möglich. Der Name „Bluetooth“ leitet sich
vom dänischen König Harald Blauzahn (engl. Harald Bluetooth) ab, der verfeindete
Teile von Norwegen und Dänemark vereinte. Das Logo zeigt ein Monogramm
der alt-nordischen Runen. Die Funkverfahren für Bluetooth wurden ursprünglich in wesentlichen Teilen durch den niederländischen Professor Jaap Haartsen und den Schweden Sven Mattisson für Ericsson entwickelt. Andere Teile wurden vor allem von Nokia und Intel ergänzt. Bluetooth bildet eine Schnittstelle, über die sowohl mobile Kleingeräte wie Mobiltelefone und PDAs als auch Computer und Peripheriegeräte miteinander kommunizieren können. Hauptzweck von Bluetooth ist das Ersetzen von Kabelverbindungen zwischen Geräten. |
![]() |
|
Für den Arduino hat sich das HC-05 Modul für den Einsatz im Bluetooth-Bereich
durchgesetzt. Dieser ist relativ preiswert (ca. 8 Euro) zu bekommen. Neben dem
HC-05 Modul gibt es noch das HC-06 Modul. Während das HC-05 Modul sowohl
im Master- als auch im Slave-Modus betrieben werden kann, ist beim HC-06 nur der
Slave Modus möglich. Einsatz der Module 1.Verbindet man das HC-05/HC-06 Modul mit dem Arduino, so kann man dieses mit einer Android-App ansteuern. 2.Zwei Arduinos können über jeweils ein HC-05 Modul miteinander kommunizieren. |
![]() |
|
|
|
|
Dazu müssen als erstes die beiden Module vorbereitet werden. Das eine als Master, das
andere als Slave. Um diese Einstellungen vornehmen zu können, muss man in den sog.
AT-Modus (AT steht für Attentation) wechseln. 1. Zunächst muss der Sketch für die Eingabe der Befehle geladen werden. Dazu wird die Arduino-IDE aufgerufen und der Sketch hochgeladen. Achtung: Das HC-05 Modul darf beim Hochladen nicht angeschlossen sein. 2. Nachdem das Hochladen abgeschlossen ist, wird das HC-05 Modul angeschlossen (siehe Abbildung). Code für den Sketch #include <SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial configBt(rx,tx); void setup() { Serial.begin(38400); configBt.begin(38400); pinMode(tx,OUTPUT); pinMode(rx,INPUT);} void loop(){ if(configBt.available()) {Serial.print(configBt.readString());} if(Serial.available()) {configBt.write(Serial.read());}} |
![]() |
|
3. Nachdem das Modul angeschlossen wurde, wird die Verbindung (USB-Kabel)
mit dem PC unterbrochen. 4. Dann wird diese mit dem PC wiederhergestellt - dabei wird der Pin am HC-05 Modul gleichzeitg gedrückt bis die Verbindung hergestellt ist. Jetzt leuchtet die LED am Modul ca. alle 2 Sekunden. 5. Man ruft jetzt in der Arduino-IDE den seriellen Monitor auf und stellt dort folgendes ein: Sowohl NL als auch CR und 38 400 Baud. Im oberen Eingabefeld können dann die AT-Befehle eingegeben werden. Um zu überprüfen ob alles richtig eingerichtet wurde, gibt man AT ein. Als Ausgabe sollte dann OK erscheinen. |
![]() |
|
|
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
| Im folgenden Beispiel soll eine Übertragung von einem Arduino auf den anderen über zwei HC-05 Module erfolgen, die als Master und Slave eingerichtet sind. Die Verkabelung bei Master und Slave sind gleich. Die Programme für Sender und Empfänger sind verschieden und müssen entsprechend der Einrichtung der Module als Master und Slave hochgeladen werden. Beim Hochladen müssen die HC-05 Module vom Arduino getrennt sein. Beim Arduino mit dem HC-05 Modul als Slave muss man den seriellen Monitor aufrufen, um die übertragenden Daten sichtbar zu machen. | |
|
#include <SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial Bt(rx,tx); void setup() { Serial.begin(9600); Bt.begin(38400); pinMode(tx,OUTPUT); pinMode(rx,INPUT);} void loop(){ if(Bt.available()>0) {Serial.println(Bt.read());} } |
![]() |
|
#include <SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial Bt(rx,tx); void setup() { Serial.begin(9600); Bt.begin(38400); pinMode(tx,OUTPUT); pinMode(rx,INPUT);} void loop(){ Bt.write(i); Serial.println(i); delay(100); i=i+1; if(i>255) {i=0;} } |
![]() |