Bluetoothsensor
- Arduino Uno
- USB-Kabel für den Arduino
- Smartphone
- Bluetoothsensor (CZ-HC-05)
- LED
- 6x MW-Kabel
- Breadboard
- Bluetooth Terminal App
Beschreibung
Im Folgenden wollen wir sehen, wie wir sehr einfach den Bluetoothsensor “CZ-HC-05 gomcu” auf dem Arduino installieren, um diesen z.B. mit einer Handyapp anzusteuern. Wir laden dazu eine von vielen verfügbaren Apps herunter und programmieren hier keine eigene.
Verkabelung
Bluetoothsensor | LED | Arduino |
---|---|---|
Langes Bein | 13 | |
Kurzes Bein | GND | |
VCC | 5V | |
GND | GND | |
TXD | Pin 0 (RX) | |
RXD | Pin 1 (TX) |

Schaltplan
Code
Wir verwenden folgenden Code, um eine LED mit dem Smartphone zu steuern.
WICHTIG: Wenn du neuen Code hochlädst, nimm immer den Bluetoothsensor ab und stecke ihn nachdem der Code hochgeladen ist, wieder ein.
int led = 13;
void setup() {
Serial.begin(9600); // Ermöglicht Kommunikation mit BT-Sensor.
pinMode(led, OUTPUT);
}
void loop() {
if (Serial.available() > 0) { // Ist ein neues Zeichen vorhanden?
char zeichen = Serial.read(); // Wenn ja, speichere das neue Zeichen ab.
if (zeichen == '0') { // Ist das Zeichen '0'?
digitalWrite(led, LOW); // Wenn ja, schalte die LED aus.
Serial.println("Led aus."); // Sendet Statustext.
}
if (zeichen == '1') { // Ist das Zeichen '1'?
digitalWrite(led, HIGH); // Wenn ja, schalte die LED an.
Serial.println("Led an."); // Sendet Statustext
}
delay(1000); // Warte 1 Sek. bevor das nächste
// Zeichen eingelesen wird.
}
}
Fragen zum Code
Beschreibe, was der Code tut!
Der Arduino wartet immer auf Daten vom Bluetoothsensor. Empängt er Daten, prüft er diese Zeichen für Zeichen (1 Zeichen pro Sekunde).
Welche Zeichen muss man eingeben, damit die LED an und aus geht? Was passiert bei anderen Zeichen?
Die LED leuchtet bei dem Zeichen “1” und geht aus beim Zeichen “0”. Bei allen anderen passiert nichts mit der LED.
Anleitung

Arduino herausnehmen
Nimm den Bluetoothsensor aus dem Breadboard.

Code hochladen
Lade den Code auf den Arduino. Setze den Bluetoothsensor wieder in das Breadboard ein. Die Lampe leuchtet nun schnell.

App runterladen
Lade eine App auf dein Handy herunter, mit welcher du Bluetoothnachrichten verschicken kannst. Wir nutzen hier die App “Bluetooth Terminal” von Querty (Diese App eignet sich besonders gut, da hier nur Zeichenketten verschickt und empfangen werden können).

Bluetoothfenster öffnen
Öffne dein Bluetoothfenster und klicke auf HC-05.

Bluetoothsensor auswählen
Gib das Passwort “1234” ein und drücke auf ok. Dein Smartphone ist nun mit dem Bluetoothsensor gekoppelt. Die Lampe des Arduino blinkt nun langsamer. Wenn du den Bluetoothsensor aus dem Breadboard ziehst und wieder einsteckst, dann musst du diesen Schritt nicht wiederholen.

App starten
Öffne die App “Bluettooth Terminal”. Oben wird “not connected” angezeigt. Das heißt, dass die App noch nicht mit der Bluetoothsensor kommuniziert. Immer wenn du den Bluetoothsensor aus dem Breadboard herausziehst und wieder einsteckst, wird wieder “not connected” angezeigt. Führe die folgenden Schritte durch, um eine Verbindung herzustellen.

Sensor auswählen
Drücke auf den Namen deines Bluetoothsensors “HC-05”. Falls in deinem Klassenraum mehrere Bluetoothsensor verwendet werden, orientiere dich an der IPv6 Adresse deines Bluetoothsensors. Diese ist immer eindeutig und ist in diesem Beispiel “98:D3:33:80:72:7B”.

Sensor verbunden
Oben steht nun “connected: HC-05”. Dein Arduino kann nun Nachrichten empfangen.

Nachricht senden
Wenn du auf das Eingabefeld tippst, erscheint deine Tastatur und du kannst Nachrichten senden.

Befehl ausführen
Wenn du eine “1” sendest, so geht das Licht an, und bei einer “0” geht das Licht aus. Der rote Text ist der Text, den das Smartphone gesendet hast. Der blaue Text wurde vom Bluetoothsensor auf dein Smartphone gesandt.

Lampe an
Sende “1”.

Lampe aus
Sende “0”.
Aufgaben
Füge Code hinzu, sodass die LED drei mal schnell blinkt, wenn “s” gesendet wird und drei Mal langsam blinkt, wenn “o” gesendet wird.
if (zeichen == 's') {
Serial.println("s");
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
}
if (zeichen == 'o') {
Serial.println("o");
digitalWrite(led, HIGH);
delay(600);
digitalWrite(led, LOW);
delay(300);
digitalWrite(led, HIGH);
delay(600);
digitalWrite(led, LOW);
delay(300);
digitalWrite(led, HIGH);
delay(600);
digitalWrite(led, LOW);
}
Sende die Zeichenkette “1010010” (und andere ähnliche Zeichenketten) an den Arduino. Was beobachtest du?
Der Arduino führt pro Sekunde einen der Befehle aus, sodass sie blinkt.
Welche Funktion hat das delay(1000)? Was passiert, wenn wir es auf delay(500) ändern?
Es wird nur ein Zeichen pro Sekunde eingelesen. Nach der Änderung zwei Zeichen pro Sekunde.
Überlege dir, wie du den Arduino programmieren muss, um ein Morsealphabet darzustellen. Finde im Internet ein Morsealphabet. Orientiere dich dazu an Frage 3 und implementiere zunächst die Buchstaben deines Vornamens.
Nutze den Code aus Frage 3 und passe das Zeichen und die Länge der Pausen an, um lange und kurze Lichtsignale zu senden.
Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )