Bluetoothsensor

Erstellt von Viktor Reichert
Benötigtes Vorwissen
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • Smartphone
  • Bluetoothsensor (CZ-HC-05)
  • LED
  • 6x MW-Kabel
  • Breadboard
Benötigte Software
  • Bluetooth Terminal App
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

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

BluetoothsensorLEDArduino
Langes Bein13
Kurzes BeinGND
VCC5V
GNDGND
TXDPin 0 (RX)
RXDPin 1 (TX)
Schaltplan

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

Arduino herausnehmen

Nimm den Bluetoothsensor aus dem Breadboard.

Code hochladen

Code hochladen

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

App runterladen

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

Bluetoothfenster öffnen

Öffne dein Bluetoothfenster und klicke auf HC-05.

Bluetoothsensor auswählen

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

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.

Mit Bluetooth verbinden

Mit Bluetooth verbinden

Drücke auf die drei Punkte oben rechts und dann auf “connect a device - Secure” oder “connect a device - Insecure” .

Sensor auswählen

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

Sensor verbunden

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

Nachricht senden

Nachricht senden

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

Befehl ausführen

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

Lampe an

Sende “1”.

Lampe aus

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 )