Bluetoothsensor
Erstellt von Viktor Reichert
Benötigtes Material
- Arduino Uno
- USB-Kabel für den Arduino
- Smartphone
- Bluetoothsensor (CZ-HC-05)
- LED
- 6x MW-Kabel
- Breadboard
Als PDF
Arbeitsblatt
Erweitertes ArbeitsblattBeschreibung
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
| 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.