- Installieren der erforderlichen Pakete für die Bluetooth-Kommunikation:
- Koppeln von Geräten mit Raspberry Pi über Bluetooth:
- Schaltplan:
- Steuern der AC-Appliance mit der 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. Deshalb werden wir heute Haushaltsgeräte über Smartphones mit Raspberry Pi 3 und Bluetooth steuern.
Hier verwenden wir Raspberry Pi 3 mit integriertem Bluetooth, sodass wir keinen externen USB-Bluetooth-Dongle verwenden müssen. Abgesehen davon benötigen wir nur Relaismodule für dieses drahtlose Hausautomationsprojekt. 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.
Wenn Sie Raspberry Pi 2 haben, müssen Sie entweder einen externen Bluetooth-Dongle oder ein Bluetooth-Modul HC-06 verwenden. Überprüfen Sie unsere vorherigen Projekte für die Verwendung dieser externen Bluetooth-Geräte: Steuern von Raspberry Pi GPIO mit Android App über Bluetooth und 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.
Ö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 gesamten Prozess auch in dem Video erklärt, das im vorherigen Tutorial zur GPIO-Steuerung gegeben wurde. Hier ist der direkte YouTube-Link.
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 für diese Raspberry Pi-basierte Bluetooth-gesteuerte Hausautomation ist sehr einfach. Wir haben gerade das Eingangssignal Pin des Relaismoduls mit PIN 40 (GPIO 21) von Raspberry Pi und die anderen beiden Pins (Vcc und GND des Relaismoduls) mit Pin 2 und 6 verbunden von Raspberry Pi 3. Dann haben wir eine AC CFL-Lampe an das Relais angeschlossen, wie im Schaltplan gezeigt:
Wenn Sie Relay noch nicht kennen und mehr über Relay und seine Verbindungen mit Wechselstromgeräten erfahren möchten, lesen Sie diesen Artikel.
Steuern der AC-Appliance mit der 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 , damit wir die GPIO-Pins von Raspberry Pi steuern können. 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. Dies löst wiederum das an diesen Pin angeschlossene Relaismodul aus, das die an das Relais angeschlossene Wechselstromlampe weiter steuert. 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 die AC-Appliance 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. Versuchen Sie, dieses Projekt zu ändern, und Sie können es verwenden, um viele andere Dinge drahtlos zu steuern, Roboterauto über Android-Telefon oder können Ihre Stimme verwenden, um die Lichter zu steuern.
Überprüfen Sie auch unsere vielen Arten von Hausautomationsprojekten mit verschiedenen Technologien und Mikrocontrollern wie: