Innehållsförteckning:

TextPlayBulb: REST aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram: 3 steg
TextPlayBulb: REST aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram: 3 steg

Video: TextPlayBulb: REST aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram: 3 steg

Video: TextPlayBulb: REST aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram: 3 steg
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, November
Anonim
TextPlayBulb: REST -aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram
TextPlayBulb: REST -aktiverad PlayBulb med Raspberry Pi 3, BLE och Telegram

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:

  1. pyBulbDriver: Anslut till PlayBulb via BLE -gatttool och python.
  2. pyBulbServer: Använda pyBulbDriver för att avslöja playbulb -kontrollen via REST API.
  3. 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: