Arbeiten mit dem Bluetooth-Modul HC-05: Eine Einführung

Atmega 328 mit BASCOM und FORTH programmieren
Antworten
Heinrichs
Beiträge: 117
Registriert: Do 21. Okt 2010, 18:31

Arbeiten mit dem Bluetooth-Modul HC-05: Eine Einführung

Beitrag von Heinrichs » Di 24. Mär 2020, 09:07

Mit dem Bluetooth-Modul HC-05 können wir auf einfache Weise unser Nano-Board fernsteuern. Im Zusammenhang mit dem Attiny2313 wurde es hier schon einmal vorgestellt. Dabei ging es im Wesentlichen um einige grundsätzliche Betrachtungen. Hier nun wollen wir uns diesem Modul auf etwas praktischere Weise nähern.

Als Sender wollen wir ein Android-Handy mit der App “Bluetooth Electronics” einsetzen; diese App ist kostenlos über den Play Store zu beziehen. Mit Hilfe dieser App kann man nach eigenen Vorstellungen so genannte Panels mit Knöpfen, Slidern (Scrollbalken) oder anderen Elementen versehen, über die dann das Nano-Board gesteuert werden kann.

Im Folgenden zeigen wir, wie man
  • das Bluetooth-Modul an das nano-Board anschließt
  • wie man das Bluetooth-Modul mit dem Handy koppelt und verbindet
  • wie man ein Panel einrichtet und startet
  • wie man den Mikrocontroller entsprechend programmiert
Für den Anfang wählen wir ein ganz einfaches Beispiel: Die auf dem nano-Board befindliche Test-LED an PortB.5 soll mit einem Taster auf einem Panel unserer App ein- und ausgeschaltet werden.


1. Anschließen des Moduls

Zunächst stecken wir das nano-Board und das Bluetooth-Modul auf ein Breadboard und verbinden die Anschlüsse des Moduls mit dem Mikrocontroller, so wie es in Abb. 1 dargestellt ist:

breadboard_nano_BT_Steckplatine.jpg
Abb. 1
breadboard_nano_BT_Steckplatine.jpg (60.14 KiB) 3459 mal betrachtet

Nun verbinden wir das nano-Board über das USB-Kabel mit dem eingeschalteten PC. Eine LED auf dem Bluetooth-Modul fängt an zu blinken; dies signalisiert, dass das Modul nun Signale aussendet und bereit ist, mit dem Handy gekoppelt und verbunden zu werden.


2. Koppeln und verbinden

Wir starten nun unsere App. Es erscheint ein Formular ähnlich wie in Abb. 2.

Screenshot_1_app.jpg
Abb. 2
Screenshot_1_app.jpg (359.48 KiB) 3458 mal betrachtet

Sofort erkennen wir eine Reihe vorgefertigter Panels. Darum wollen wir uns jetzt aber zunächst nicht kümmern. Am oberen Bildrand lesen wir nämlich: “Not connected to Device”. Das bedeutet, dass Handy und App noch nicht mit dem Modul verbunden sind. Diese verbindung wollen wir jetzt herstellen; dazu betätigen wir die Schaltfläche Connect. Nun öffnet sich das folgende Formular:

Screenshot_2_app.jpg
Abb. 3
Screenshot_2_app.jpg (154.7 KiB) 3457 mal betrachtet

Wir wählen die Standard-Option “Bluetooth-Classic” aus und betätigen die Schaltfläche Next>.

Jetzt sehen wir das Formular aus Abb. 4. Hier betätigen wir die Schaltfläche Discover. Nun sucht die App nach allen aktiven Bluetooth-Geräten. Nach kurzer Zeit sollte hier der Name unseres Bluetooth-Moduls erscheinen, z. B. BT1. Jetzt klicken wir auf diesen Eintrag - er sollte nun in grüner Schrift hervorgehoben sein wie in der Abb. 4 - und betätigen nun die Schaltfläche Pair. Dadurch wird unser Modul mit dem Handy gekoppelt. Der Eintrag BT1 ist nun auch in der rechten Liste aller gekoppelten Geräte zu finden. Anschließend klicken Sie auf disen Eintrag in der rechten Liste und betätigen Sie die Schaltfläche Connect. Dadurch werden unser Modul und das Handy verbunden.

Screenshot_3_app.jpg
Abb. 4
Screenshot_3_app.jpg (346.64 KiB) 3455 mal betrachtet

Wenn Sie im Laufe der letzten Schritte nach einer Kenn-Nummer oder einem Passwort gefragt werden, geben Sie hier die Ziffernfolge 1234 ein.

Nach kurzer Zeit (wenige Sekunden) sollte nun diese Verbindung hergestellt sein. Die App zeigt dies durch eine Meldung “Connected to: BT1...” in der Statuszeile am oberen Rand an. Auch unser Modul zeigt an, dass es erfolgreich verbunden worden ist, indem die LED auf dem Modul nun nicht mehr blinkt, sondern dauerhaft leuchtet.

Sollte es Probleme beim Koppeln und Verbinden geben, können Sie versuchen, diese Vorgänge auch über die System-Einstellungen Ihres Handys vorzunehmen.

Zu guter Letzt betätigen wir die Schaltfläche Done. So gelangen wir wieder zur Panel-Übersicht aus Abb. 2.

Bitte beachten Sie: Wenn Sie die App erneut starten, dann muss nur das Verbinden durchgeführt werden, ein erneutes Koppeln ist nicht mehr erforderlich; Sie erkennen dies auch daran, dass Ihr Bluetooth-Modul schon direkt in der Liste der gekoppelten Geräte erscheint.


3. Einrichten eines Panels

Wir tippen auf ein leeres Panel, betätigen die Edit-Schaltfläche am unteren Rand und erhalten ein Formular ähnlich wie in Abb. 5. Dieses Formular ist in 4 Bereiche unterteilt. Im Bereich A sehen wir das (noch leere) Panel. Im Bereich B sehen wir eine Liste mit den Elementen, die wir auf das Panel legen können. Da wir einen Knopf zum Ein- und Ausschalten benutzen wollen, tippen wir mit dem Finger auf Buttons. Jetzt erscheint in dem Feld C eine reiche Auswahl an unterschiedlichen Knopftypen. Wir wählen hier den einfachsten aus, nämlich den unbeschrifteten runden Knopf (links oben). Diesen ziehen wir auf das Panel (Bereich A) an einen beliebigen Platz. (Wenn wir ihn entfernen wollen, ziehen wir ihn einfach zurück in das Feld C.)

panel_edit.jpg
Abb. 5
panel_edit.jpg (45.96 KiB) 3454 mal betrachtet

Sobald der Knopf auf dem Panel liegt, erscheinen im Feld D Informationen darüber, welche Aktionen durch unser Element “Button” ausgelöst werden. Sie besagen: Wenn der Knopf gedrückt wird, dann sendet das Handy das Zeichen “N” an das Bluetooth-Modul, wenn der Knopf losgelassen wird, dann wird das Zeichen “n” gesendet. Möchte man hier andere Zeichen senden, dann kann man in dem Feld 4 Änderungen über die Schaltfläche Edit vornehmen. Das wollen wir aber hier nicht machen. Nun gehen wir wieder zur Panel-Übersicht zurück (Dreieck am rechten Rand!)


4. Programmieren des Mikrocontrollers

Wir benutzen das folgende Programm:

Code: Alles auswählen

$regfile = "m328pdef.dat"                                  
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 64
$baud = 9600

Dim Zeichencode As Byte

Do
  Inputbin Zeichencode
  If Zeichencode = Asc( "N") Then Portb.5 = 1 Else Portb.5 = 0
Loop
Das Modul empfängt vom Handy die Zeichen “N” oder “n” und überträgt sie mit der Baudrate von 9600 an den Mikrocontroller; deswegen konfigurieren wir die serielle Schnittstelle des Mikrocontrollers entsprechend durch

Code: Alles auswählen

$baud = 9600
Der Befehl

Code: Alles auswählen

inputbin Zeichencode
lässt den Mikrocontroller auf den Empfang eines Bytes warten, in unserem Fall also den ASCII-Code von “N” bzw. “n”, und speichert ihn in der Variablen Zeichencode ab.

Je nachdem, ob das empfangene Zeichen den Code für “N” hat oder nicht, wird nun die Test-LED an PortD.5 ein- oder ausgeschaltet.

Beachten Sie: Während des Upload-Vorgangs dürfen die Anschlüsse RxD und TxD des Mikrocontrollers nicht mit dem Modul verbunden sein.


5. Die LED mit dem Handy ein- und ausschalten

Wir starten unsere App und bauen die Verbindung auf. In der Panel-Übersicht wählen wir unser Knopf-Panel aus und betätigen die Schaltfläche Run> (unten rechts). Nun wird das Knopf-Panel bildfüllend dargestellt. Drücken Sie jetzt mehrfach den Knopf: Sobald er gedrückt wird, geht die LED an, sobald er losgelassen wird, wird sie ausgeschaltet.


Zu guter Letzt

Die “Bluetooth Electronics”-App bietet selbst eine relativ umfangreiche Hilfe an. Betätigen Sie dazu einfach die i-Schaltfläche links oben auf dem Startformular (vgl. Abb. 2).

.
Dateianhänge
Arbeiten mit dem BluetoothModul HC05 Einführung.pdf
(1.43 MiB) 127-mal heruntergeladen

Antworten