Cuprins:
Video: TextPlayBulb: REST activat PlayBulb folosind Raspberry Pi 3, BLE și Telegram: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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:
- pyBulbDriver: Conectați-vă la PlayBulb prin BLE gatttool și python.
- pyBulbServer: Folosind pyBulbDriver pentru a expune controlul playbulb prin intermediul REST API.
- 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:
Controlul ESP8266 folosind aplicația Telegram: 7 pași
Controlul ESP8266 folosind aplicația Telegram: Hei, ce se întâmplă, băieți! Akarsh aici de la CETech. V-ați întrebat vreodată să discutați cu aparatele dvs. printr-o aplicație de mesagerie? Sună ciudat, corect. Dar astăzi vom face un lucru similar cu acela. Nu vă faceți griji că nu trebuie să cumpărați telefoane mobile
Construiți un sprinkler activat de la distanță folosind PiFace și Ubidots: 13 pași
Construiți un sprinkler activat de la distanță folosind PiFace și Ubidots: Acesta este un exemplu interesant care vă învață cum să utilizați un Raspberry Pi, un PiFace și Ubidots pentru a vă uda grădina de departe. Veți putea controla o electrovană de la distanță pentru a vă uda plantele din orice loc, doar folosind telefonul
ROBOT CONTROLAT CU SMARTPHONE FOLOSIND BLE 4.0 !!!: 5 pași
ROBOT CONTROLAT CU SMARTPHONE FOLOSIND BLE 4.0 !!!: În versiunile anterioare, v-am împărtășit cum puteți utiliza modulul Bluetooth (în special HM10 BLE v4.0) cu Arduino pentru a controla LED-urile folosind smartphone-ul. Puteți verifica aici. În acest instructiv vă voi arăta cum să construiți un robot care poate fi
Controlează Arduino folosind Telegram Bot fără niciun hardware suplimentar: 5 pași
Controlați Arduino utilizând Telegram Bot fără niciun hardware suplimentar: Există o gamă largă de lucruri pe care le puteți face cu Arduino, dar v-ați gândit vreodată să vă controlați Arduino folosind un bot Telegram? PC Unele dispozitive controlabile (Folosim LED-ul de la Arduino la
Citirea valorilor de pe un dispozitiv BLE folosind CSR1010 și Dragonboard 410c: 6 pași
Citirea valorilor de pe un dispozitiv BLE folosind CSR1010 și Dragonboard 410c: Acest tutorial arată cum să citiți valorile de pe dispozitivul BLE CSR1010 folosind Dragonboard 410c cu Linaro În acest exemplu, CSR1010 emulează un senzor de ritm cardiac