Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche tiefer in die Welt von Raspberry Pi, Arduino und ESP32 ein und tausche dich mit anderen Enthusiasten aus.
Warum beitreten?
Expertenunterstützung: Löse nach dem Kauf auftretende Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tausche Tipps und Tutorials aus, um deine Fähigkeiten zu erweitern.
Exklusive Vorschauen: Erhalte frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Sonderrabatte: Genieße exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Verlosungen: Nimm an Verlosungen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu kreieren? Klicke [hier] und tritt noch heute bei!
8.12 Daten vom Bluetooth empfangen
In diesem Projekt fungiert der Pico 2 W als Peripheriegerät in einem Bluetooth Low Energy (BLE) Netzwerk. Er bietet einen benutzerdefinierten BLE-Dienst zur Steuerung eines LED-basierten Ampelsystems. Dieser Dienst umfasst eine schreibbare Eigenschaft, die es einem zentralen Gerät, wie einem Smartphone oder Computer, ermöglicht, Befehle zu senden. Das Pico-Board verarbeitet diese Befehle, um die roten, gelben oder grünen LEDs umzuschalten und somit den Betrieb einer Ampel zu simulieren. Debugging-Informationen, einschließlich empfangener Befehle, werden im seriellen Monitor angezeigt, um die Entwicklung zu unterstützen.
Die an Bord befindliche LED zeigt den Verbindungsstatus an: Sie leuchtet, wenn sich ein zentrales Gerät verbunden hat, und erlischt, wenn die Verbindung verloren geht.
1. Schaltkreis aufbauen
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Pico 2 W Starter Kit |
450+ |
Du kannst sie auch einzeln über die folgenden Links kaufen.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USB Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
3 (220Ω) |
||
6 |
3 |
2. Code hochladen
Kopiere den folgenden Code in deine IDE. Alternativ findest du ihn in unserem Repository unter dem Pfad: pico-2w-kit/micropython/iot/8.12-read_from_ble/ble_trafficlight.py.
Hinweis: Dieser Code hängt von den Dateien ble_advertising.py und ble_simple_peripheral.py ab. Stelle sicher, dass du diese auf das Pico-Board hochlädst, bevor du das Skript ausführst.
# Notwendige Module importieren
from machine import Pin
import bluetooth
from ble_example.ble_simple_peripheral import BLESimplePeripheral
# Erstelle ein Bluetooth Low Energy (BLE) Objekt
ble = bluetooth.BLE()
# Erstelle eine Instanz der BLESimplePeripheral-Klasse mit dem BLE-Objekt
sp = BLESimplePeripheral(ble,"pico2w")
# Erstelle ein Pin-Objekt für die an Bord befindliche LED und konfiguriere es als Ausgang
led = Pin("LED", Pin.OUT)
red = machine.Pin(13, machine.Pin.OUT)
yellow = machine.Pin(12, machine.Pin.OUT)
green = machine.Pin(11, machine.Pin.OUT)
def update_traffic(data):
decoded_data = data.decode('utf-8').rstrip('\r\n')
red.off()
green.off()
yellow.off()
if decoded_data == "R" or decoded_data == "r":
red.on()
elif decoded_data == "G" or decoded_data == "g":
green.on()
elif decoded_data == "Y" or decoded_data == "y":
yellow.on()
# Definiere eine Callback-Funktion zum Behandeln empfangener Daten
def on_rx(data):
print("Data received: ", data) # Print the received data
update_traffic(data)
# Starte eine Endlosschleife
while True:
if sp.is_connected(): # Überprüfen, ob eine BLE-Verbindung besteht
sp.on_write(on_rx) # Setze die Callback-Funktion für den Empfang von Daten
3. Daten an Bluetooth senden
Um mit den in diesem Code definierten Diensten und Eigenschaften zu interagieren, verwende eine allgemeine Bluetooth® Low Energy Zentral-App, wie zum Beispiel LightBlue (verfügbar für iOS und Android) oder nRF Connect (für Android).
In diesem Abschnitt wird LightBlue als Beispiel verwendet, um zu zeigen, wie du die Funktionen des Pico 2 W über Bluetooth steuern kannst.
Installiere LightBlue
Lade die LightBlue-App aus dem App Store (für iOS) oder Google Play (für Android) herunter.
Pico 2 W verbinden
Starte LightBlue und erlaube die Standort- und Bluetooth-Berechtigungen, falls du dazu aufgefordert wirst. Auf der Seite Peripheriegeräte suche nach „pico“ in der Suchleiste und tippe, um dich mit dem Pico 2 W Gerät zu verbinden.
Daten senden, um das Licht umzuschalten
Nach der Verbindung zeigt LightBlue detaillierte Informationen über das Pico 2 W Bluetooth-Gerät an. Scrolle nach unten, um den Dienst (6E400001-B5A3-F393-E0A9-E50E24DCCA9E) und die Eigenschaft (6E400002-B5A3-F393-E0A9-E50E24DCCA9E) zu finden.
Tippe auf die Eigenschaft 6E400002-B5A3-F393-E0A9-E50E24DCCA9E. Die App zeigt die Eigenschaften dieser Eigenschaft an: sie ist schreibbar.
Wähle oben rechts „UTF-8 String“ als Datentyp aus.
Klicke auf „Neuen Wert schreiben“ und gib
Rein. Dieses Zeichen wird über Bluetooth an das Pico-Board gesendet. Das Pico-Board wird das empfangene Zeichen interpretieren und die entsprechenden LEDs steuern:rschaltet die rote LED einyschaltet die gelbe LED eingschaltet die grüne LED ein