Raspberry Pi - BLE

Diese Anleitung zeigt Ihnen, wie Sie den Raspberry Pi verwenden, um das BLE HM-10-Modul zu steuern. Im Detail werden wir lernen:

Raspberry Pi BLE

Der Zweck dieses Tutorials:

Es ist wichtig zu beachten, dass sich dieses Tutorial auf Bluetooth Low Energy (BLE, Bluetooth 4.0) konzentriert. Wenn Sie Informationen zu klassischem Bluetooth (Bluetooth 2.0) benötigen, lesen Sie bitte ein ähnliches Tutorial Raspberry Pi - Bluetooth.

Erforderliche Hardware

1×Raspberry Pi 5
1×HM-10 BLE Bluetooth-Modul
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über HM-10 Bluetooth-Modul

Der HM-10 ist ein serielles BLE-Modul, das als Seriell-zu-Bluetooth Low Energy-Konverter fungiert. Es führt die folgenden Aufgaben aus:

  • Daten vom RX-Pin der seriellen Schnittstelle entnehmen und sie an ein gekoppeltes Gerät wie ein Smartphone über BLE senden.
  • Daten von BLE (vom gekoppelten Gerät) empfangen und sie an den TX-Pin der seriellen Schnittstelle übertragen.

Wenn ein Raspberry Pi verwendet wird, um mit einer Smartphone-App (Android/iOS) zu kommunizieren, erfolgen die folgenden Schritte:

  • Aufbau einer Verbindung zwischen dem Raspberry Pi und dem HM-10-Bluetooth-Modul über die serielle Pins
  • Paarung des HM-10-Bluetooth-Moduls mit der Smartphone-App
  • Daten vom Raspberry Pi an die Smartphone-App senden, indem man sie in die serielle Schnittstelle schreibt
  • Daten von der Smartphone-App empfangen, indem man sie aus der seriellen Schnittstelle liest
  • Kein zusätzlicher BLE-Code ist auf dem Raspberry Pi erforderlich

Die Pinbelegung des BLE HM-10-Moduls

BLE-Pinbelegung

Das HM-10 BLE-Modul hat 6 Pins:

  • BKR-Pin: Dieser Pin dient zur Steuerung des Verhaltens des Moduls. Wenn Sie Anfänger sind, können Sie diesen Pin ignorieren.
  • RX-Pin: Dies ist der serielle Datenpin und er sollte mit dem TX-Pin des Raspberry Pi verbunden werden. Die von diesem Pin empfangenen Daten werden an Bluetooth gesendet.
  • TX-Pin: Dies ist der serielle Datenpin und er sollte mit dem RX-Pin des Raspberry Pi verbunden werden. Die über BLE empfangenen Daten werden als serielle Daten an diesen Pin gesendet.
  • GND-Pin: Dies ist der Versorgungspin und er sollte mit dem GND der Stromquelle verbunden werden.
  • VCC-Pin: Dies ist der Versorgungspin und er sollte mit 3,3 V der Versorgungsspannung verbunden werden.
  • STATE-Pin: Dieser Pin zeigt die Betriebszustände an. Im Standby-Modus blinkt er mit einem 500-ms-Impuls, und im Verbindungszustand liegt ein hoher Pegel an.

※ Notiz:

  • -
  • Nur vier Pins müssen mit dem HM-10 verwendet werden, die von einigen Herstellern produziert werden.
  • VCC, GND, RX und TX sind die vier in Frage stehenden Pins.

Über Bluetooth-Serieller-Monitor-App

Um die Bluetooth-Serial-Monitor-App zu verwenden, müssen Sie zunächst den Raspberry Pi mit einem HM-10-Bluetooth-Modul verbinden. Dann laden Sie die App auf Ihr Smartphone herunter und installieren Sie sie. Schließlich öffnen Sie die App und verbinden Sie sie mit dem HM-10-Bluetooth-Modul.

Sobald Sie diese Schritte abgeschlossen haben, können Sie Daten vom Raspberry Pi senden und empfangen.

Verdrahtungsdiagramm

Raspberry Pi BLE Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Verdrahtungstabelle. Diese Tabelle zeigt die Verdrahtungsverbindungen. 1. Die Verdrahtungstabelle: Eine Auflistung der Verdrahtungsverbindungen. 2. Die Verdrahtungstabelle: Ein Diagramm, das die Verdrahtungsverbindungen zeigt.

Raspberry Pi Pins HM-10 Bluetooth Pins
RX (GPIO15) TX
TX (GPIO14) RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

Raspberry Pi sendet Daten an die Bluetooth-App auf dem Smartphone

Um Daten von einer Raspberry-Pi-Platine an eine Bluetooth-Anwendung auf einem Smartphone zu senden, kann der folgende Code verwendet werden. Dieses Beispiel zeigt, wie die Nachricht „Raspberry Pi hier, gib mir Befehle!“ vom Raspberry Pi an die App jede Sekunde übertragen wird.

Schnelle Schritte

  • Stellen Sie sicher, dass Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk verbunden ist wie Ihr PC.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie einige Bibliotheken installieren müssen.
  • Wenn Sie den Raspberry Pi zum ersten Mal verwenden, siehe wie man den Raspberry Pi einrichtet
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, verwenden Sie dazu den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows. Siehe wie Sie Ihren PC über SSH mit dem Raspberry Pi verbinden.
  • Stellen Sie sicher, dass die RPi.GPIO-Bibliothek installiert ist. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Erstellen Sie eine Python-Skriptdatei bluetooth_send.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-ble import serial from time import sleep # Define serial port for communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Main program try: while True: bluetooth.write(b"Raspberry Pi here, command me!\n") sleep(1) except KeyboardInterrupt: pass finally: bluetooth.close()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
python3 bluetooth_send.py

Das Skript läuft in einer Endlosschleife, bis Sie im Terminal Strg + C drücken.

Um den Code zu verwenden und ein Raspberry Pi-Board über BLE mit einem Smartphone zu verbinden, befolgen Sie diese Schritte:

  • Lade die Bluetooth Serial Monitor App herunter und installiere sie auf deinem Smartphone.
  • Schließe das HM-10 Bluetooth-Modul gemäß dem Schaltplan an das Raspberry Pi-Board an.
  • Öffne auf deinem Smartphone die Bluetooth Serial Monitor App und wähle den BLE-Modus.
Bluetooth-Seriemonitor-App
  • Verbinden Sie das Smartphone mit dem HM-10 Bluetooth-Modul.
Bluetooth-Seriemonitor-Kopplung
  • Schauen Sie sich das Ergebnis in der Android-App an.
Bluetooth-Seriemonitor-App
  • Schau dir die Ausgabe an, die im Terminal angezeigt wird.
PuTTY - Raspberry Pi
Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me!

Wenn Sie die notwendigen Schritte unternehmen und den Code ausführen, werden Sie sehen, dass die in der Android-App angezeigten Daten dieselben sind.

Bluetooth-App Daten an den Raspberry Pi senden

Der Code führt Folgendes aus:

  • Daten von der Bluetooth-Anwendung an das Raspberry-Pi-Board übertragen
  • Das Raspberry-Pi-Board liest die eingehenden Daten und sendet dann eine Antwort an das Bluetooth-Gerät.

Schnelle Schritte

  • Erstellen Sie eine Python-Skriptdatei bluetooth_send_receive.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-ble import serial from time import sleep # Define serial port for Bluetooth communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Main program try: bluetooth.flushInput() # Clear any existing data in the input buffer while True: bluetooth.write(b"Raspberry Pi here, command me!\n") if bluetooth.inWaiting() > 0: command = bluetooth.readline().decode('utf-8').strip() # Read until newline character if command == "LED OFF": print("LED is turned OFF") # Report action to console # TODO: Control your LED here elif command == "LED ON": print("LED is turned ON") # Report action to console # TODO: Control your LED here # Add a delay to avoid excessive looping sleep(0.5) except KeyboardInterrupt: pass finally: bluetooth.close()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal eingeben:
python3 bluetooth_send_receive.py

Das Skript läuft in einer Endlosschleife, bis Sie im Terminal Strg + C drücken.

Dies sind die Anweisungen zur Verwendung des Codes mit dem Raspberry Pi und einer Android-App:

  • Starten Sie die Android-App und koppeln Sie sie mit dem HM-10-Bluetooth-Modul mithilfe der Schritte aus einem vorherigen Beispiel.
  • Nach dem Verbinden geben Sie in der Android-App "LED ON" oder "LED OFF" ein und drücken Sie die "SEND"-Schaltfläche.
Bluetooth-Seriemonitor-App
  • Der Raspberry Pi empfängt die Daten und gibt eine Antwort über den seriellen Port aus. Anschließend werden diese Daten an die Bluetooth-App gesendet. Schließlich kann das Ergebnis in der Android-App eingesehen werden.
Bluetooth-Seriemonitor-App
  • Schau dir die Ausgabe im Terminal an.
PuTTY - Raspberry Pi
Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! LED ON LED is turned ON Raspberry Pi here, command me! Raspberry Pi here, command me! Raspberry Pi here, command me! LED OFF LED is turned OFF Raspberry Pi here, command me! Raspberry Pi here, command me!

Sobald Sie die oben genannten Schritte abgeschlossen haben, werden Sie feststellen, dass die in der Android-App angezeigten Daten identisch sind.

Raspberry Pi-Code - LED mit Smartphone-App über BLE steuern

Bitte beziehen Sie sich auf das Tutorial Raspberry Pi steuert LED über BLE.

Raspberry Pi-Code - Servomotor mit Smartphone-App über BLE steuern

Bitte beachten Sie das Tutorial Raspberry Pi steuert einen Servomotor via BLE.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!