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
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
| Langes Bein | 13 |
| Kurzes Bein | GND |
VCC | | 5V |
GND | | GND |
TXD | | Pin 0 (RX) |
RXD | | Pin 1 (TX) |
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
Nimm den Bluetoothsensor aus dem Breadboard.
Lade den Code auf den Arduino. Setze den Bluetoothsensor wieder in das
Breadboard ein. Die Lampe leuchtet nun schnell.
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).
Öffne dein Bluetoothfenster und klicke auf HC-05.
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.
Ö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.
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”.
Oben steht nun “connected: HC-05”. Dein Arduino kann nun Nachrichten
empfangen.
Wenn du auf das Eingabefeld tippst, erscheint deine Tastatur und du
kannst Nachrichten senden.
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.
Sende “1”.
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.