====== Bluetooth Kommunikation mit dem Arduino ====== Es stehen zwei Bluetooth-Module zur Verfügung: {{ .:btardu.jpg?600 |}} * Das HC-06 mit 4 Pins kann nur als "Slave" arbeiten, das heißt es kann nicht aktiv Kontakt mit einem anderen Bluetooth-Gerät aufnehmen. Es wartet bis es kontaktiert wird. * Das Modul HC-05 mit 6 Pins kann auch als "Master" konfiguriert werden kann. Das heißt ein HC-05-Modul kann sich automatisch mit einem bestimmten anderen Bluetooth-Modul (z.B. ein HC-06-Modul) verbinden. So können beispielsweise zwei Arduinos miteinander Kontakt aufnehmen und kommunizieren. Wir beschränken uns zunächst darauf, unseren Arduino als "Slave" mit einem Smartphone (das dann als "Master" fungiert) zu koppeln. ===== Anschluss der Module ===== {{ .:anschlusshc06.png?600 |}} * Die Module benötigen eine **Betriebsspannung** zwischen 3.6V und 6V, können also direkt an die 5V des Arduino angeschlossen werden. * Der GND-Pin des BT-Moduls muss mit dem GND-Pin des Arduino verbunden werden. * Der VCC-Pin des BT-Moduls wird mit 5V vom Arduino verbunden. Die **Datenübertragung** findet [[https://de.wikipedia.org/wiki/Serielle_Daten%C3%BCbertragung|seriell]] statt. Damit das klappt müssen die TX und RX Pins von Arduino und Modul über kreuz miteinander verbunden werden. * "TX" Steht für "transmit", also senden, "RX" bedeutet "receive", also empfangen. * Der Sendepin des BT-Moduls (TX) muss also mit dem Empfangspin des Arduino (RX) verbunden werden, der Empfangspin des Moduls mit dem Sendepin des Arduino - logo?! Jetzt kannst du den Arduino mal über den USB-HUB am Rechner anschließen. Die LED des Moduls sollte dann blinken. Das Blinken bedeutet, dass das Modul genügens SPannung zum Betrieb hat, aber nicht mit einem anderen Bluetooth-Gerät gepaart ist. {{ .:hc06aufarduino.jpg?600 |}} ===== Smartphone mit dem Modul pairen ===== * Öffne die Bluetooth Einstellungen deines Smartphones * Scanne die Umgebung nach verfügbaren Geräten. * Paire das Smartphone mit dem Modul. Die PIN ist ''1234''. Wichtig: Ihr solltet, das nacheinander machen, so dass Ihr auch das richtige Modul mit dem passenden Handy gepaart habt... {{.:screenshot_20151025-185321.png?200 |}} {{.:screenshot_20151025-185332.png?200 |}} {{.:screenshot_20151025-185344.png?200 |}} ---- ~~CLEARFIX~~ ===== Bluetooth Konsolen-App installieren ===== Um mit dem Arduino zu "sprechen", benötigt man nun noch eine App, die sich mit dem BT-Modul verbinden kann: * [[https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=de|Serial Bluetooth Terminal]] * [[https://play.google.com/store/apps/details?id=com.giristudio.hc05.bluetooth.arduino.control|Arduino Bluetooth Controller]] FIXME IOS App? Um die Kommunikation zu ermöglichen geht man wie folgt vor: * Öffne die App, dor tdas Menü (drei Punkte unten rechts) * Wähle "Connect to device" * Wähle dein (zuvor gepairtes) HC-06 Modul aus. Dann erscheint in der App oben rechts ''connected: HC-06'' und die LED des BT-Moduls leuchtet dauerhaft. {{.:screenshot_20151025-185720.png?200 |}} {{.:screenshot_20151025-185754.png?200 |}} \\ ~~CLEARFIX~~ ==== Film ==== Dieser Film könnte möglicherweise auch helfen: https://www.youtube.com/watch?v=YBoLj9HIfN4 {{ youtube>YBoLj9HIfN4?large }} ===== Ein erster Sketch ===== Der Sketch {{.:bluetooth_echo.ino.zip|}} ermöglicht es, am Smartphone Text einzugeben, der anschließend auf der seriellen Konsole wieder ausgegeben wird. Laden den Sketch herunter, übetrage ihn auf den Arduino und teste das Programm. **Wichtig:** Um den Sketch zu übertragen, müssen **jedes Mal** die Kabel an Pin 0 und 1 des Arduinos entfernt werden! ---- {{:aufgabe.png?nolink |}} === (A1) === Ändere den Sketch so, dass nur eine Ausgabe auf der seriellen Konsole erfolgt, wenn man "an" eingegeben hat. ---- {{:aufgabe.png?nolink |}} === (A2) === Schliesse eine LED an einen Digitalpin des Arduino an. Erweitere den Sketch so, dass du die LED mit den Befehlen "an" und "aus" an und aus schalten kannst. ---- {{:aufgabe.png?nolink |}} === (A3) === Schreibe einen Sketch, mit dem du eine LED in 10 Schritten dimmen kannst, indem du in BlueTerm die Zahlen 1-10 eingibst.