- Installieren der erforderlichen Pakete für die Bluetooth-Kommunikation:
- Koppeln von Geräten mit Raspberry Pi über Bluetooth:
- Schaltplan:
- LED-Steuerung mit Android App BlueTerm:
- Programmiererklärung:
Raspberry Pi ist wegen seiner nahtlosen Fähigkeit zur drahtlosen Kommunikation über das Internet für IoT-Projekte sehr beliebt. Raspberry Pi 3 verfügt über integriertes Wi-Fi und Bluetooth, und Bluetooth ist ein sehr beliebtes Protokoll für die drahtlose Kommunikation. Heute steuern wir den Raspberry Pi GPIO Pin über eine Android-App mit Bluetooth.
Hier verwenden wir Raspberry 2 Pi Model B, das kein eingebautes Bluetooth hat, also verwenden wir einen einfachen USB-Bluetooth-Dongle. Abgesehen davon benötigen wir nur einen Widerstand (220R) und eine LED, um die GPIO-Steuerung zu demonstrieren. Hier verwenden wir das RFCOMM Bluetooth-Protokoll für die drahtlose Kommunikation.
Die Programmierung für Bluetooth in Python folgt dem Socket-Programmiermodell, und die Kommunikation zwischen den Bluetooth-Geräten erfolgt über den RFCOMM-Socket. RFCOMM (Radio Frequency Communication) ist ein Bluetooth-Protokoll, das emulierte serielle RS-232-Ports bereitstellt und auch als Serial Port Emulation bezeichnet wird. Das Profil der seriellen Bluetooth-Schnittstelle basiert auf diesem Protokoll. RFCOMM ist in Bluetooth-Anwendungen aufgrund seiner breiten Unterstützung und der öffentlich verfügbaren API sehr beliebt. Es ist an das L2CAP-Protokoll gebunden.
In unserem vorherigen Projekt haben wir auch das Bluetooth-Modul HC-06 verwendet: Sprachgesteuerte LEDs mit Raspberry Pi. Überprüfen Sie auch unsere vorherigen Raspberry Pi-Projekte zusammen mit einigen guten IoT-Projekten.
Installieren der erforderlichen Pakete für die Bluetooth-Kommunikation:
Vor dem Start müssen wir einige Software installieren, um die Bluetooth-Kommunikation in Raspberry Pi einzurichten. Sie sollten eine Raspbian Jessie-Speicherkarte mit Raspberry Pi installiert haben. In diesem Artikel erfahren Sie, wie Sie das Raspbian-Betriebssystem installieren und mit Raspberry Pi beginnen. Jetzt müssen wir zuerst den Raspbian mit den folgenden Befehlen aktualisieren:
sudo apt-get update sudo apt-get upgrade
Dann müssen wir einige Bluetooth-bezogene Pakete installieren:
sudo apt-get installiere Bluetooth Blueman Bluez
Starten Sie dann den Raspberry Pi neu:
sudo neu starten
BlueZ ist ein Open Source-Projekt und offizieller Linux Bluetooth-Protokollstapel. Es unterstützt alle wichtigen Bluetooth-Protokolle und wird nun Teil des offiziellen Linux-Kernels.
Blueman bietet die Desktop-Oberfläche zum Verwalten und Steuern der Bluetooth-Geräte.
Schließlich benötigen wir die Python-Bibliothek für die Bluetooth-Kommunikation, damit wir Daten über RFCOMM in der Python-Sprache senden und empfangen können:
sudo apt-get installiere python-bluetooth
Installieren Sie auch die GPIO-Unterstützungsbibliotheken für Raspberry Pi:
sudo apt-get installiere python-rpi.gpio
Jetzt sind wir mit der Installation der erforderlichen Pakete für die Bluetooth-Kommunikation in Raspberry Pi fertig.
Koppeln von Geräten mit Raspberry Pi über Bluetooth:
Das Koppeln von Bluetooth-Geräten wie Mobiltelefonen mit Raspberry Pi ist sehr einfach. Hier haben wir unser Android-Smartphone mit Raspberry Pi gekoppelt. Wir haben BlueZ bereits in Pi installiert, das ein Befehlszeilenprogramm namens "bluetoothctl" zur Verwaltung unserer Bluetooth-Geräte bereitstellt. Verbinden Sie zuvor Ihren USB-Bluetooth-Dongle mit Raspberry Pi und überprüfen Sie mithilfe des folgenden Befehls, ob er erkannt wird oder nicht:
lsusb
Öffnen Sie nun das Dienstprogramm bluetoothctl mit dem folgenden Befehl:
sudo bluetoothctl
Sie können alle Befehle des Dienstprogramms bluetoothctl überprüfen, indem Sie 'help' eingeben. Im Moment müssen wir die folgenden Befehle in der angegebenen Reihenfolge eingeben:
# Power On # Agent On # Erkennbar bei # Pairable bei # Scan On
Nach dem letzten Befehl "Scannen ein" wird Ihr Bluetooth-Gerät (Mobiltelefon) in der Liste angezeigt. Stellen Sie sicher, dass auf Ihrem Mobiltelefon Bluetooth aktiviert und für Geräte in der Nähe sichtbar ist. Kopieren Sie dann die MAC-Adresse Ihres Geräts und koppeln Sie sie mit dem folgenden Befehl:
Paar
Anschließend werden Sie in Ihrer Terminalkonsole zur Eingabe von Passcode oder Pin aufgefordert. Geben Sie dort den Passcode ein und drücken Sie die Eingabetaste. Geben Sie dann den gleichen Passcode in Ihr Mobiltelefon ein, wenn Sie dazu aufgefordert werden, und Sie sind nun erfolgreich mit Raspberry Pi gekoppelt. Wir haben diesen ganzen Prozess auch in unserem Video am Ende erklärt.
Wie bereits erwähnt, können Sie das Mobiltelefon auch über die Desktop-Oberfläche koppeln. Nach der Installation von Blueman wird auf der rechten Seite Ihres Raspberry Pi-Desktops ein Bluetooth-Symbol angezeigt (siehe Abbildung unten), mit dem Sie das Pairing problemlos durchführen können.
Schaltplan:
Der Schaltplan ist sehr einfach. Wir haben gerade eine LED mit einem Widerstand von 220 Ohm an PIN 40 (GPIO 21) von Raspberry Pi angeschlossen:
LED-Steuerung mit Android App BlueTerm:
Nachdem wir das Mobiltelefon analysiert haben, müssen wir eine Android-App für die Kommunikation mit Raspberry Pi über einen seriellen Bluetooth-Adapter installieren. Wie bereits erwähnt, emuliert das RFCOMM / SPP-Protokoll die serielle Kommunikation über Bluetooth. Daher haben wir hier die BlueTerm-App installiert, die dieses Protokoll unterstützt.
Sie können auch jede andere Bluetooth-Terminal-App verwenden, die die Kommunikation über den RFCOMM-Socket unterstützt.
Führen Sie nun nach dem Herunterladen und Installieren der BlueTerm-App das unten angegebene Python-Programm vom Terminal aus und verbinden Sie das gekoppelte Himbeer- Pi-Gerät gleichzeitig von der BlueTerm-App.
Nach erfolgreicher Verbindung sehen Sie verbunden: raspberrypi in der oberen rechten Ecke der App wie unten gezeigt:
Jetzt können Sie in der BlueTerm-App einfach '1' oder '0' eingeben, um den GPIO-Pin auf HIGH bzw. LOW zu setzen, wodurch die an diesen Pin angeschlossene LED ein- und ausgeschaltet wird. Drücken Sie 'q', um das Programm zu beenden. Sie können die Google Voice Typing-Tastatur verwenden, um den GPIO mithilfe Ihrer Voice zu steuern. Überprüfen Sie die vollständige Demo im Video am Ende.
Auf diese Weise können Sie den GPIO-Pin mithilfe einer Android-App über Bluetooth drahtlos steuern. Überprüfen Sie auch, wie Bluetooth mit Arduino verwendet wird.
Programmiererklärung:
Das Python-Programm zur Steuerung von Raspberry Pi GPIO mit der Android App ist sehr einfach und selbsterklärend. Wir müssen nur ein wenig über den Code für die Bluetooth RFCOMM-Kommunikation lernen. Zuerst müssen wir die Bluetooth-Socket-Bibliothek importieren, mit der wir Bluetooth mit Python-Sprache steuern können. Wir haben die Bibliothek dafür im vorherigen Abschnitt installiert.
Bluetooth importieren
Unten finden Sie den Code für die Bluetooth-Kommunikation:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Akzeptierte Verbindung von", Adresse während 1: data = client_socket.recv (1024)
Hier können wir sie Zeile für Zeile verstehen:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Erstellen eines Sockets für die Bluetooth RFCOMM-Kommunikation.
server_socket.bind (("", port): - Server bindet das Skript auf Host '' an Port.
server_socket.listen (1) : Der Server wartet darauf, jeweils eine Verbindung zu akzeptieren.
client_socket, address = server_socket.accept () : Der Server akzeptiert die Verbindungsanforderung des Clients und weist der variablen Adresse die Mac-Adresse zu . client_socket ist der Socket des Clients
data = client_socket.recv (1024): Empfängt Daten über den Client-Socket client_socket und weist sie den variablen Daten zu . Es können maximal 1024 Zeichen gleichzeitig empfangen werden.
Schließen Sie nach der gesamten Programmierung die Client- und Serververbindung mit dem folgenden Code:
client_socket.close () server_socket.close ()
Der gesamte andere Code ist einfach und selbsterklärend. Überprüfen Sie den vollständigen Code unten. Wenn Sie versuchen, dieses Projekt zu ändern, können Sie damit viele andere Dinge drahtlos steuern. Mit Relais können Sie die Haushaltsgeräte steuern oder ein Roboterauto über ein Android-Telefon steuern.