Inhaltsverzeichnis:

TextPlayBulb: REST aktiviertes PlayBulb mit Raspberry Pi 3, BLE und Telegram - Gunook
TextPlayBulb: REST aktiviertes PlayBulb mit Raspberry Pi 3, BLE und Telegram - Gunook

Video: TextPlayBulb: REST aktiviertes PlayBulb mit Raspberry Pi 3, BLE und Telegram - Gunook

Video: TextPlayBulb: REST aktiviertes PlayBulb mit Raspberry Pi 3, BLE und Telegram - Gunook
Video: Gas Stoves: Health and Air Quality Impacts + Solutions 2024, November
Anonim
TextPlayBulb: REST-fähige PlayBulb mit Raspberry Pi 3, BLE und Telegram
TextPlayBulb: REST-fähige PlayBulb mit Raspberry Pi 3, BLE und Telegram

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:

  1. pyBulbDriver: Verbinden Sie sich über das BLE-Gatttool und Python mit der PlayBulb.
  2. pyBulbServer: Verwenden des pyBulbDriver, um die Playbulb-Steuerung über die REST-API verfügbar zu machen.
  3. 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: