Cuprins:

TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram: 3 pași
TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram: 3 pași

Video: TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram: 3 pași

Video: TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram: 3 pași
Video: Bec Gradina MiPow Garden Solar 2024, Iulie
Anonim
TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram
TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram

Această instrucțiune arată cum să vă conectați la o lampă LED Bluetooth PlayBulb Color folosind Python, o bibliotecă Raspberry Pi 3 și Bluetooth și cum să extindeți comenzile printr-un API REST pentru un scenariu IoT și, ca și bouns, proiectul arată, de asemenea, cum să extindeți API REST pentru a vă controla PlayBulb asupra unui client de mesaje text de ex Telegramă, cum ar fi vorbirea cu casa dvs. automată prin text.

Acest proiect este construit pe 3 module:

  1. pyBulbDriver: Conectați-vă la PlayBulb prin BLE gatttool și python.
  2. pyBulbServer: Folosind pyBulbDriver pentru a expune controlul playbulb prin intermediul REST API.
  3. pyBulbMessenger: Conectarea la un bot de telegramă pentru a trimite și primi comenzi prin intermediul clientului de telegramă instalat pe orice telefon inteligent și folosind API-ul REST pentru a emite comenzi către PlayBulb.

Puteți clona proiectul prin depozitul git:

Scopul proiectului:

Pentru a crea un instrument de bază pentru interacțiunea cu becul dvs. prin diferite modalități, cum ar fi textul deocamdată, scenariile viitoare ar putea implica comenzi vocale, gesticularea către lampă … etc.

Alte resurse utilizate pentru a crea acest instructable:

  • Protocolul Bluetooth PlayBulb Color:
  • Conectarea Python la Playbulb prin Bluetooth:
  • Configurarea botului telegramei:

Contribuţie

pyBulbDriver este extins pentru a fi mai flexibil și parametrizat pentru ușurarea extinderii viitoare, construind un scenariu care să vă permită să vă lăsați cu textul lămpii. Interfață simplă pentru testare și jocuri.

Prescripţie

Driverul este scris pentru PlayBulb Color, pentru alte tipuri de PlayBulb de ex. Original sau lumânare, codul bluetooth din pyBulbDriver trebuie modificat în conformitate cu protocolul menționat anterior.

Trebuie să înregistrați un cont de telegramă și să obțineți o cheie API, pe care o adăugați în pyBulbMessenger.py, urmați configurarea botului de telegramă în alte resurse.

Pasul 1: Configurarea proiectului

1. Obținerea cheii API de la Telegram

> Urmați instrucțiunile actuale pentru a obține cheia API

> Adăugați cheia API la API variabilă în pyBulbMessenger.py

2. Setarea numelui PlayBulb în pyBulbDriver

> Pentru ca gatttool să găsească dispozitivul de scriere, setați numele dispozitivului dvs. pentru a fi scanat folosind pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Exemplu poate fi găsit în pyBulbServer.py pentru a configura serverul REST

3. Pentru a începe proiectul

> Mai întâi trebuie să porniți pyBulbServer.py, apoi urmat de pyBulbMessenger.py pentru text. Puteți testa comenzile pyBulbServer folosind CURL.

4. Material necesar:

> Raspberry Pi 3 și PlayBulb Color sau PlayBulb Candle

> Instalarea Telegram pentru Android sau iOS

5. Instalarea Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Pasul 2: Mergând prin cod

pyBulbDriver.py

pyBulbDriver conține clasele de drivere pentru conectarea la PlayBulb prin BLE

pyBulbDriver poate fi utilizat și pentru orice alte proiecte generice, deoarece conține doar codul pentru scanarea și configurarea conexiunilor playBulb.

Principalele API-uri pentru interfața aplicației utilizator:

  • scanForBulb (devicename: String)> Pentru a scana PlayBulb sau PlayBulbs prin numele dispozitivului
  • setBulbColor (s: int, r: int, g: int, b: int)> Pentru a defini luminozitatea și valorile culorii RGB (0 la 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Similar cu setBulbColor, dar include tipul de efect și viteză. Pentru a afla mai multe, consultați secțiunea Efecte a protocolului de culoare

În această clasă veți găsi și alte metode de ajutor destinate verificării integrității datelor și nu pentru interfața cu utilizatorul

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (număr)
  • checkModeAndSpeed (mod, offbeat, onbeat)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer expune interfața aplicației utilizator în hyperlinkuri RESTful folosind PUT și JSON pentru a trimite și primi date către pyBulbDriver. De asemenea, scanarea și inițializarea conexiunii BLE se fac atunci când serverul este activat.

pyBulbResource (Resursă) canalizează apelurile către serverul REST folosind culoarea și efectul pentru a defini comanda becului.

Exemplu Pentru comandarea unui efect:

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

În cele din urmă pyBulbMessenger este responsabil pentru interfața botului Telegram conectat la clientul dvs. de telefon inteligent telegramă. Pentru mai multe detalii despre modul de configurare și conectare la un bot de telegramă verificați

cmdHandler (bot, actualizare) este locul în care comenzile text sunt definite și conectate la PlayBulb prin intermediul API-ului RESTful.

În prezent, proiectul are doar text, un alt obiectiv este acela de a trimite și mesaje vocale înregistrate care ar fi trimise către un dispozitiv de recunoaștere a vorbirii pentru a activa alte comenzi (Neimplementat încă).

Pasul 3: Concluzie

Proiectarea actuală a arhitecturii se referea mai mult la simplificare decât la scalabilitate. Încă lipsește conectivitatea de grup, și mai multe aplicații referitoare la trimiterea de mesaje text pentru bec, fie pentru comandă directă, fie pentru interacțiune ludică, sunt încă în curs de cercetare.

Abonându-vă la git repo sau urmând, vor apărea mai multe detalii despre aceste actualizări. Motivul unui astfel de proiect a fost interfațarea playBulb și crearea unei interfețe RESTful pentru ușurința dezvoltării într-un scenariu IoT (internet of things), dar și deschiderea șansei de a utiliza diferite modalități prin intermediul telegramei IM Client, cum ar fi imagini, voce și text pentru a interacționa cu aparatele din perspectiva cercetării.

Recomandat: