Innehållsförteckning:
Video: TextPlayBulb: REST aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Denna instruktör visar hur du ansluter till en PlayBulb Color bluetooth LED -lampa med Python, ett Raspberry Pi 3 och Bluetooth -bibliotek och för att förlänga kontrollerna via ett REST API för ett IoT -scenario, och som en studs visar projektet också hur man förlänger REST API för att styra din PlayBulb över en IM -textklient t.ex. Telegram, till exempel att prata med ditt automatiserade hem via text.
Detta projekt bygger på tre moduler:
- pyBulbDriver: Anslut till PlayBulb via BLE -gatttool och python.
- pyBulbServer: Använda pyBulbDriver för att avslöja playbulb -kontrollen via REST API.
- pyBulbMessenger: Ansluter till en telegrambot för att skicka och ta emot kommandon via telegramklient installerad på vilken smart telefon som helst och använda REST API för att utfärda kommandon till PlayBulb.
Du kan klona projektet via git -förvaret:
Projektets mål:
För att skapa ett basverktyg för att interagera med din glödlampa via olika metoder, till exempel textning för närvarande, kan framtida scenarier innebära talkommandon, gester till lampan … etc.
Andra resurser som används för att skapa denna instruerbara:
- PlayBulb Color Bluetooth -protokoll:
- Ansluta Python till Playbulb via Bluetooth:
- Konfigurera telegramboten:
Bidrag
pyBulbDriver är utökad för att vara mer flexibel och parametrerad för att underlätta framtida förlängning, och bygger ett scenario så att du kan tjata med att sms: a din lampa. Enkelt gränssnitt för att testa och busa runt.
Begränsning
Drivrutinen är skriven för PlayBulb Color, för andra typer av PlayBulb t.ex. Originalet eller ljuset, Bluetooth -koden i pyBulbDriver måste ändras enligt det ovan nämnda protokollet.
Du måste registrera ett telegramkonto och få en api -nyckel, som du lägger till i pyBulbMessenger.py, följ konfigurationen av telegramboten i andra resurser.
Steg 1: Konfigurera projektet
1. Skaffa din API -nyckel från Telegram
> Följ den aktuella instruktionen för att få din API-nyckel
> Lägg till din api -nyckel till variabel api i pyBulbMessenger.py
2. Ange ditt PlayBulb -namn i pyBulbDriver
> För att gatttoolet ska hitta skrivaren, ställ in att ditt enhetsnamn ska skannas med pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Exempel finns i pyBulbServer.py för att konfigurera din REST -server
3. Att starta projektet
> Du måste börja pyBulbServer.py först, sedan följt av pyBulbMessenger.py för textningen. Du kan testa pyBulbServer -kommandona med CURL.
4. Material som behövs:
> Raspberry Pi 3 och PlayBulb Color eller PlayBulb Candle
> Installera Telegram för Android eller iOS
5. Installation av Rasberry Pi 3 LE Bluetooth:
www.elinux.org/RPi_Bluetooth_LE
Steg 2: Gå igenom koden
pyBulbDriver.py
pyBulbDriver innehåller förarklasserna för anslutning till PlayBulb via BLE
pyBulbDriver kan också användas för alla andra generiska projekt, eftersom den bara innehåller koden för att skanna och konfigurera playBulb -anslutningar.
De viktigaste API: erna för användarprogramgränssnitt:
- scanForBulb (enhetsnamn: String)> För att söka efter PlayBulb eller PlayBulbs via deras enhetsnamn
- setBulbColor (s: int, r: int, g: int, b: int)> För att definiera värdena för ljusstyrka och RGB -färg (0 till 255)
-
setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Liknar setBulbColor, men inkluderar typen av effekt och hastighet. För att veta mer, kolla avsnittet Effekter för färgprotokoll
I den här klassen hittar du också andra hjälpmetoder som är avsedda för kontroll av dataintegritet och inte för användargränssnitt
- convertRGBToHexaCmd (s, r, g, b)
- convertIntToHex (antal)
- checkModeAndSpeed (läge, offbeat, onbeat)
- checksRGBInBounds (s, r, g, b)
pyBulbServer.py
pyBulbServer exponerar användarprogrammets gränssnitt för RESTful -hyperlänkar med PUT och JSON för att skicka och ta emot data till pyBulbDriver. Skanning och initialisering av BLE -anslutningen görs också när servern aktiveras.
pyBulbResource (resurs) kanaliserar samtalen till REST -servern med hjälp av färg och effekt för att definiera bulb -kommandot.
Exempel För att beordra en effekt:
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
Slutligen är pyBulbMessenger ansvarig för att ansluta Telegram -boten som är ansluten till din telegram -smarttelefonklient. För mer information om hur du konfigurerar och ansluter till en telegrambot, kolla
cmdHandler (bot, uppdatering) är där textkommandon definieras och kopplas till PlayBulb via RESTful API.
För närvarande har projektet bara text, ett annat mål är att även skicka inspelade röstmeddelanden som skulle skickas till en taligenkänning för att aktivera andra kommandon (Inte genomfört ännu).
Steg 3: Slutsats
Den nuvarande arkitekturdesignen handlade mer om förenkling än skalbarhet. Fortfarande saknas gruppanslutning, även fler applikationer som rör textning av lampan antingen för direkt kommando eller lekfull interaktion är fortfarande under forskning.
Genom att prenumerera på git repo eller följa kommer mer information om dessa uppdateringar. Anledningen till ett sådant projekt var att koppla ihop playBulb och skapa ett RESTful -gränssnitt för enkel utveckling i ett IoT (internet of things -scenario) men också för att öppna chansen att använda olika modaliteter via IM Client -telegramet som bilder, röst och text för att interagera med apparater ur ett forskningsperspektiv.
Rekommenderad:
WiFi -aktiverad matrislampa: 6 steg (med bilder)
WiFi -aktiverad matrislampa: Vem vill inte ha en fantastisk lampa som kan visa animationer och synkronisera med andra lampor i huset? Lampan består av 256 individuellt adresserbara lysdioder och alla lysdioder kan styras
Alexa aktiverad fjärrkontroll (med WEMO D1 Mini): 3 steg
Alexa Enabled Remote Control (med WEMO D1 Mini): Detta är en uppdaterad version av ett tidigare inlägg: https: //www.instructables.com/id/Voice-Activated-R…I den tidigare versionen använde jag en Geetech röstmodul för att styra en vanlig fjärrkontroll av dörröppnare. I denna instruerbara har jag ersatt vo
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid
1 meter POV med IOT aktiverad: 3 steg (med bilder)
1 meter POV med IOT aktiverad: Innan jag börjar förklara om detta projekt vill jag be om ursäkt för låg kvalitet bild och video, men ärligt talat är det verkligen svårt att ta en skarp och tydlig bild från att köra POV med vanlig kamera som min mobilkamera. Det behöver väldigt snabbt