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.
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!
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:
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...
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 // JDY-30 -> EN -> Für das Ändern der Einstellungen des JDY-30 char inByte; // Text-Variable einrichten -> RAM-Speicher reservieren |
Meine Quellen für diesen Artikel:
Anleitung bei Funduino (deutsch)
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.
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:
https://play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor
Aber auch jede andere Bluetooth-Terminal-App kann verwendet werden:
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:
http://greenitsolutions.at/android-eclipse-sdk-adt-turorial-deutsch/
.