sitemap link mailform link home

Steuerung per Bluetooth

Die HC-05- bzw. HC-06-Bluetooth-Module haben sich zum de-facto-Standard entwickelt, wenn es darum geht, den Arduino per Bluetooth zu steuern. Dazu werden von einer Android-App (Smartphone oder Tablet) einzelne Zeichen via Bluetooth gesendet und vom HC-05-Modul empfangen und an den RXD-Eingang des Arduino übertragen. Die ankommenden Zeichen werden mittels Serial.read() direkt eingelesen und als Befehle interpretiert.

Im folgenden Beispiel schaltet das Zeichen "1" eine LED ein und das Zeichen "0" schaltet die LED wieder aus.

Aufbau

HC-05-Module sollten (nach meinen Versuchen mit dem kompatiblen JDY-30) am Arduino UNO R3 mit 5V Vcc betrieben werden.

Bei RXD und TXD steht nun ganz deutich "Level 3,3 V". Dies führt oft zu Verwirrungen. Streng genommen benötigt man also für beide Pins Spannungswandler?

Nein - nur für RXD!

HC-05

Abbildung: Das Bluetooth-Modul HC-05 / FC-114

Sobald man Vcc des HC-05 mit 5V versorgt liegt am Ausgangs-Pin TXD automatisch HIGH-Pegel 5V an.
Das ist für den Arduino UNO R3 perfekt, da dessen Pegel für die Pins 0 bis 13 ja mit 5V definiert sind.

Allerdings "verträgt" der Pin RXD des HC-05 nur 3,3 V. Hier benötigt man also einen einfachen Spannungsteiler aus zwei einfachen Widerständen:

fritzing-Plan

Ich verwende übrigens kein originales HC-05-Modul sondern ein Modul mit dem Namen JDY-30.
Es scheint mit dem HC-05 aber vollständig kompatibel zu sein. Die Anschlussbelegung ist identisch.

Man kann das JDY-30 über Ebay für ca. 5 € bestellen. Ähnliche oder gleiche Module gibt es für ca. 2 € aus China mit ca. 6 - 8 Wochen Lieferzeit: "CC2540 CC2541 HM-10 BLE Bluetooth 4.0 Serial Kabellos Modul for Arduino". Bevor man große Menge davon bestellt sollte man aber mal eines testen... Wink

JDY-30 Ebay

Allerdings steht der Name "JDY-30" auf meinem Modul gar nicht drauf. Dieser Name wird aber im Android-Smartphone angezeigt, sobald man "Bluetooth" in den "Einstellungen" aktiviert.

Der folgende Arduino-Sketch kann übrigens nur hochgeladen werden, wenn das Bluetooth-Modul entfernt wurde!

// LED per Bluetooth schalten
// HC05 oder kompatiblen JDY-30 verwenden!
// Quelle: https://funduino.de/tutorial-hc-05-und-hc-06-bluetooth
// Quelle Schaltplan mit Spannungsteiler:
// http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-in-slave-mode/
//
// JDY-30 -> VCC an 5 Volt des Arduino
// JDY-30 -> GND -> GND
// JDY-30 -> TX -> RXD Arduino
// JDY-30 -> RX über Spannungsteiler an TXD des Arduino
// JDY-30 -> STATE-LED - Bluetooth-Connection bei Dauerleuchten!
// -> hier kann eine LED angeschlossen werden
//

// JDY-30 -> EN -> Für das Ändern der Einstellungen des JDY-30

// Seriellen Monitor starten!

char inByte; // Text-Variable einrichten -> RAM-Speicher reservieren

void setup() {
  pinMode(13, OUTPUT);
  Serial.begin(9600);
  Serial.println("Daten von Bluetooth empfangen");
  digitalWrite(13, LOW); // LED aus
}

void loop() {
  if (Serial.available()) {
    inByte = Serial.read();
    if (inByte == '1')
    {
       digitalWrite(13, HIGH); // LED an
    }
    else
    {
       digitalWrite(13, LOW); // LED aus
    }
    Serial.print("Zeichen = ");
    Serial.println(inByte);
  }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Meine Quellen für diesen Artikel:

Externer Link  Anleitung bei Funduino (deutsch)

Externer Link  Stromlaufplan für Arduinos mit 5-Volt-Pegel (z.B. Arduino UNO)

Herstellen der Bluetooth-Connection mit dem Android-Smartphone

Nun benötigen wir natürlich noch eine App auf dem Android-Smartphone, mit der Bluetooth-Befehle gesendet werden können. Zuerst wollen wir aber schon einmal eine Bluetooth-Verbindung mit unserem HC-05 / JDY-30-Modul herstellen.

  • In den "Einstellungen" von Android muss "Bluetooth" eingeschaltet werden.
  • Noch einmal auf Bluetooth klicken und die verfügbaren Bluetooth-Geräte werden angezeigt.
  • Auf HC-05 bzw. JDY-30 klicken -> Meldung: "Kopplung läuft".
  • Nun muss eine Pin (meist 1234) eingegeben werden.
  • Dann erscheint unser Gerät unter "Pairing-Geräte".
  • Die Verbindung steht dann schon einmal.

Bluetooth JDY-30

Default-Settings des HC-05 und JDY-30:

– Name = HC-05 bzw. JDY-30
– Password = 1234
– Baud rate in communication mode = 9600*
– Baud rate in AT/Command mode = 38400

Bluetooth-App zum Senden von Zeichen an den Arduino

Für den Anfang habe ich nun im Google Playstore die App "Arduino Bluetooth Controller" ausgewählt und installiert. Man kann damit im "Switch-Modus" z.B. eine "1" bzw. eine "0" senden, um die LED ein- und auszuschalten:

Externer Link  https://play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor

Aber auch jede andere Bluetooth-Terminal-App kann verwendet werden:

Externer Link https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

Der nächste Schritt wäre nun, eine eigene Android-App zu entwickeln...

Hier wird ausführlich beschrieben, wie man mit Eclipse und Java JDK eigene Apps entwickeln und testen kann:

Externer Link http://greenitsolutions.at/android-eclipse-sdk-adt-turorial-deutsch/

.

Letzte Änderung:
June 21. 2024 19:13:39
«    top    »