Inhaltsverzeichnis:
Video: TextPlayBulb: REST aktiviertes PlayBulb mit Raspberry Pi 3, BLE und Telegram - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Diese Anleitung zeigt, wie Sie eine Verbindung zu einer PlayBulb Color Bluetooth-LED-Lampe mit Python, einem Raspberry Pi 3 und einer Bluetooth-Bibliothek herstellen und die Steuerelemente über eine REST-API für ein IoT-Szenario erweitern REST-API zur Steuerung Ihres PlayBulb über einen IM-Text-Client, z. B. Telegramm, wie zum Beispiel per SMS mit Ihrem automatisierten Zuhause zu sprechen.
Dieses Projekt baut auf 3 Modulen auf:
- pyBulbDriver: Verbinden Sie sich über das BLE-Gatttool und Python mit der PlayBulb.
- pyBulbServer: Verwenden des pyBulbDriver, um die Playbulb-Steuerung über die REST-API verfügbar zu machen.
- pyBulbMessenger: Verbinden mit einem Telegramm-Bot, um Befehle über einen auf einem beliebigen Smartphone installierten Telegramm-Client zu senden und zu empfangen, und Verwenden der REST-API, um Befehle an die PlayBulb auszugeben.
Sie können das Projekt über das Git-Repository klonen:
Ziel des Projekts:
Um ein Basiswerkzeug für die Interaktion mit Ihrer Glühbirne über verschiedene Modalitäten wie SMS zu erstellen, könnten zukünftige Szenarien Sprachbefehle, Gesten auf die Lampe usw. beinhalten.
Andere Ressourcen, die verwendet werden, um dieses anweisbare zu erstellen:
- PlayBulb Color Bluetooth-Protokoll:
- Python über Bluetooth mit Playbulb verbinden:
- Einrichten des Telegramm-Bots:
Beitrag
pyBulbDriver wurde erweitert, um flexibler und parametrisiert zu sein, um zukünftige Erweiterungen zu erleichtern, und erstellt ein Szenario, in dem Sie mit Texten an Ihre Lampe fummeln können. Einfache Schnittstelle zum Testen und Herumspielen.
Einschränkung
Der Treiber ist für PlayBulb Colour geschrieben, für andere Arten von PlayBulb z. B. Original oder Kerze, der Bluetooth-Code in pyBulbDriver muss gemäß dem oben genannten Protokoll geändert werden.
Sie müssen ein Telegrammkonto registrieren und einen API-Schlüssel erhalten, den Sie in pyBulbMessenger.py hinzufügen. Folgen Sie der Einrichtung des Telegrammbots in anderen Ressourcen.
Schritt 1: Einrichten des Projekts
1. Erhalten Sie Ihren API-Schlüssel von Telegram
> Folgen Sie der aktuellen Anleitung, um Ihren API-Schlüssel zu erhalten
> Fügen Sie Ihren API-Schlüssel zur variablen API in pyBulbMessenger.py hinzu
2. Festlegen Ihres PlayBulb-Namens in pyBulbDriver
> Damit das gatttool das Schreibgerät findet, stellen Sie Ihren Gerätenamen mit pyBulbDriver.scanForBulb("PLAYBULB COLOUR") so ein, dass er gescannt werden soll. Ein Beispiel zum Einrichten Ihres REST-Servers finden Sie in pyBulbServer.py
3. Um das Projekt zu starten
> Sie müssen zuerst pyBulbServer.py starten, gefolgt von pyBulbMessenger.py für die SMS. Sie können die pyBulbServer-Befehle mit CURL testen.
4. Benötigtes Material:
> Raspberry Pi 3 und PlayBulb Color oder PlayBulb Candle
> Telegramm für Android oder iOS installieren
5. Installation von Rasberry Pi 3 LE Bluetooth:
www.elinux.org/RPi_Bluetooth_LE
Schritt 2: Durch den Code gehen
pyBulbDriver.py
pyBulbDriver enthält die Treiberklassen für die Verbindung mit der PlayBulb über BLE
pyBulbDriver kann auch für alle anderen generischen Projekte verwendet werden, da es nur den Code zum Scannen und Einrichten von playBulb-Verbindungen enthält.
Die wichtigsten APIs für die Benutzeranwendungsschnittstelle:
- scanForBulb(devicename:String) > Um nach PlayBulb oder PlayBulbs über ihren Gerätenamen zu suchen
- setBulbColor(s:int, r:int, g:int, b:int) > Zum Definieren der Helligkeits- und RGB-Farbwerte (0 bis 255)
-
setBulbEffect(s:int, r:int, g:int, b:int, mode:int, onbeat:int, offbeat:int) > Ähnlich wie setBulbColor, enthält jedoch die Art des Effekts und die Geschwindigkeit. Um mehr zu erfahren, überprüfen Sie den Abschnitt mit den Farbprotokolleffekten
In dieser Klasse finden Sie auch andere Hilfsmethoden, die für die Datenintegritätsprüfung und nicht für die Benutzeroberfläche gedacht sind
- convertRGBToHexaCmd(s, r, g, b)
- convertIntToHex(Zahl)
- checkModeAndSpeed(Modus, Offbeat, Onbeat)
- checktRGBInBounds(s, r, g, b)
pyBulbServer.py
pyBulbServer stellt die Benutzeranwendungsschnittstelle in RESTful-Hyperlinks mithilfe von PUT und JSON bereit, um Daten an den pyBulbDriver zu senden und zu empfangen. Auch der Scan und die Initialisierung der BLE-Verbindung erfolgt beim Aktivieren des Servers.
pyBulbResource(Resource) leitet die Aufrufe an den REST-Server, wobei Farbe und Effekt verwendet werden, um den Befehl bulb zu definieren.
Beispiel Um einen Effekt zu befehlen:
127.0.0.1/bulb/effect
JSON POST > {data':'{"s":0, "r":255, "g":255, "b":255, "m"::1, "on":15, "off":15 }'}
pyBulbMessenger.py
Schließlich ist pyBulbMessenger für die Anbindung des Telegram-Bots verantwortlich, der mit Ihrem Telegram-Smartphone-Client verbunden ist. Weitere Informationen zum Konfigurieren und Herstellen einer Verbindung mit einem Telegramm-Bot finden Sie unter
In cmdHandler(bot, update) werden die Textbefehle definiert und über die RESTful API mit der PlayBulb verbunden.
Derzeit enthält das Projekt nur Text, ein weiteres Ziel ist es, auch aufgezeichnete Sprachnachrichten zu senden, die an einen Spracherkenner gesendet werden, um andere Befehle zu aktivieren (Noch nicht implementiert).
Schritt 3: Fazit
Beim aktuellen Architekturdesign ging es mehr um Vereinfachung als um Skalierbarkeit. Immer noch fehlende Gruppenkonnektivität, auch weitere Anwendungen zum Senden von SMS an die Glühbirne, entweder für direkte Befehle oder spielerische Interaktion, werden noch erforscht.
Wenn Sie git repo abonnieren oder folgen, erhalten Sie weitere Details zu diesen Updates. Der Grund für ein solches Projekt war, die playBulb anzubinden und eine RESTful-Schnittstelle zu schaffen, um die Entwicklung in einem IoT (Internet of Things-Szenario) zu vereinfachen, aber auch die Möglichkeit zu eröffnen, verschiedene Modalitäten über das IM-Client-Telegramm wie Bilder, Sprache und Text zur Interaktion mit Geräten aus einer Forschungsperspektive.
Empfohlen:
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Flex-Rest: 4 Schritte
Flex Rest: Der Flex Rest ist ein Produkt, das darauf abzielt, die Auswirkungen eines sitzenden Lebensstils zu verringern, der oft mit einem Schreibtischjob einhergeht. Es besteht aus einem Kissen und einem Laptopständer. Das Kissen wird auf den Stuhl gelegt und fungiert als Drucksensor, der erkennt, wenn
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E