2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
This instructable shows how to connect to a PlayBulb Color bluetooth LED lamp using Python, a Raspberry Pi 3 and Bluetooth library and to extend the controls through the REST API for an IoT scenario, and as a bouns, the project also shows how to extend the REST API pro ovládání PlayBulb přes textového klienta IM, např Telegram, například rozhovor s vaším automatizovaným domovem prostřednictvím textu.
Tento projekt je postaven na 3 modulech:
- pyBulbDriver: Připojte se k PlayBulb přes BLE gatttool a python.
- pyBulbServer: Použití pyBulbDriver k odhalení ovládání playbulbu pomocí REST API.
- pyBulbMessenger: Připojení k telegramovému robotu pro odesílání a přijímání příkazů prostřednictvím telegramového klienta nainstalovaného na jakémkoli chytrém telefonu a pomocí rozhraní REST API k vydávání příkazů pro PlayBulb.
Projekt můžete klonovat prostřednictvím úložiště git:
Cíl projektu:
Chcete -li vytvořit základní nástroj pro interakci s vaší žárovkou pomocí různých modalit, jako je například psaní textových zpráv, budoucí scénáře mohou zahrnovat hlasové příkazy, gesta na lampu … atd.
Další zdroje použité k vytvoření tohoto pokynu:
- Protokol PlayBulb Color Bluetooth:
- Připojení Pythonu k Playbulbu přes Bluetooth:
- Nastavení telegramového robota:
Příspěvek
pyBulbDriver je rozšířen, aby byl flexibilnější a parametrizovatelný pro snadnost budoucího rozšíření a vytvořil scénář, který vám umožní hrát si s textovými zprávami vaší lampy. Jednoduché rozhraní pro testování a hraní.
Omezení
Ovladač je napsán pro PlayBulb Color, pro jiné typy PlayBulb např. Originální nebo svíčkový kód bluetooth v pyBulbDriver je třeba změnit podle výše uvedeného protokolu.
Musíte si zaregistrovat telegramový účet a získat api klíč, který přidáte do pyBulbMessenger.py, postupujte podle nastavení telegramového robota v jiných zdrojích.
Krok 1: Nastavení projektu
1. Získání klíče API z Telegramu
> Postupujte podle aktuálních pokynů a získejte klíč API
> Přidejte svůj klíč API do proměnné api v pyBulbMessenger.py
2. Nastavení názvu PlayBulb v pyBulbDriver
> Aby gatttool našel zapisovací zařízení, nastavte název vašeho zařízení, aby byl skenován pomocí pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Příklad naleznete v pyBulbServer.py k nastavení serveru REST
3. Zahájení projektu
> Nejprve musíte spustit pyBulbServer.py a poté textový soubor pyBulbMessenger.py. Příkazy pyBulbServer můžete vyzkoušet pomocí CURL.
4. Potřebný materiál:
> Raspberry Pi 3 a PlayBulb Color nebo PlayBulb Candle
> Instalace Telegramu pro Android nebo iOS
5. Instalace Rasberry Pi 3 LE Bluetooth:
www.elinux.org/RPi_Bluetooth_LE
Krok 2: Procházení kódu
pyBulbDriver.py
pyBulbDriver obsahuje třídy ovladačů pro připojení k PlayBulb přes BLE
pyBulbDriver lze použít také pro jakékoli jiné generické projekty, protože obsahuje pouze kód pro skenování a nastavení připojení playBulb.
Hlavní rozhraní API pro rozhraní uživatelské aplikace:
- scanForBulb (devicename: String)> Chcete -li vyhledat PlayBulb nebo PlayBulbs pomocí názvu jejich zařízení
- setBulbColor (s: int, r: int, g: int, b: int)> Definování hodnot jasu a barev RGB (0 až 255)
-
setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Podobné setBulbColor, ale zahrnuje typ efektu a rychlost. Chcete -li vědět více, podívejte se do sekce Efekty barevného protokolu
V této třídě najdete také další pomocné metody určené pro kontrolu integrity dat a ne pro uživatelské rozhraní
- převéstRGBToHexaCmd (s, r, g, b)
- convertIntToHex (číslo)
- checkModeAndSpeed (režim, offbeat, onbeat)
- kontrolujeRGBInBounds (s, r, g, b)
pyBulbServer.py
pyBulbServer zpřístupňuje rozhraní uživatelské aplikace hypertextovým odkazům RESTful pomocí PUT a JSON k odesílání a přijímání dat do pyBulbDriver. Když je server aktivován, provádí se také skenování a inicializace připojení BLE.
pyBulbResource (Resource) směruje volání na server REST pomocí barvy a efektu k definování příkazu bulb.
Příklad pro ovládání efektu:
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
Nakonec pyBulbMessenger je zodpovědný za propojení robota Telegramu připojeného k vašemu telegramovému klientovi chytrého telefonu. Další podrobnosti o tom, jak konfigurovat a připojit se k telegramovému robotu, najdete na
cmdHandler (bot, aktualizace) je místo, kde jsou definovány textové příkazy a připojeny k PlayBulb prostřednictvím RESTful API.
V současné době má projekt pouze text, dalším cílem je také odeslat nahrané hlasové zprávy, které by byly odeslány do rozpoznávače řeči k aktivaci dalších příkazů (zatím neimplementováno).
Krok 3: Závěr
Současný návrh architektury byl spíše o zjednodušení než o škálovatelnosti. Stále chybí skupinová konektivita a také se zkoumá více aplikací týkajících se textových zpráv žárovky, ať už jde o přímý příkaz nebo hravou interakci.
Přihlášením k odběru git repo nebo sledováním těchto aktualizací získáte další podrobnosti. Důvodem takového projektu bylo rozhraní playBulb a vytvoření RESTful rozhraní pro snadný vývoj v IoT (scénář internetu věcí), ale také otevření možnosti využívat různé způsoby prostřednictvím telegramu klienta IM, jako jsou obrázky, hlas a text pro interakci se spotřebiči z pohledu výzkumu.
Doporučuje:
Programování ATmega328 pomocí Arduino IDE pomocí krystalu 8 MHz: 4 kroky
Programování ATmega328 s Arduino IDE pomocí 8MHz krystalu: V tomto Instuctable se budu věnovat krok za krokem průvodce programováním IC ATmega328P (stejný mikrokontrolér, jaký je k dispozici na Arudino UNO) pomocí Arduino IDE a Arduino UNO jako programátora, abyste se stali vlastní Arduino, aby vaše projekty
Flex Rest: 4 kroky
Flex Rest: Flex Rest je produkt, jehož cílem je snížit účinky sedavého životního stylu, který často přichází s prací na stole. Skládá se z polštáře a stojanu na notebook. Polštář je umístěn na židli a funguje jako tlakový senzor, který snímá, když
Tlačítko odpočítávání Arduino s tlačítkem Rest: 4 kroky
Tlačítko odpočítávání Arduino W/ Rest: Tento návod vás naučí, jak vytvořit odpočítávací časovač pomocí 4místného 7segmentového displeje, který lze resetovat tlačítkem. Dostal jsem nápad to udělat, protože při vytváření 1místného 7segmentového displeje ve třídě jsem chtěl vytvořit něco
Wifi povoleno OLED ESP32 auto měřidla: 3 kroky (s obrázky)
Wifi povolená OLED ESP32 automobilová měřidla: Úvod nejprve … Stavím auto měřidla jako jakési hobby znovu a znovu. Další dva nedávné příklady najdete na https: //www.instructables.com/id/Remote-Car-Monit … a https: //www.instructables.com/id/Remote-Car-Monit … Obzvláště mám rád
Bluetooth povoleno Nerf Blaster: 7 kroků
Bluetooth povoleno Nerf Blaster: Cítil jsem se inspirován projektem Colina Furzeho a rozhodl jsem se vytvořit vlastní verzi pro Remix Challenge. Design, který jsem použil, je podobný, ale spíše amatérský, a obsahuje modul Bluetooth, který umožňuje ovládání věže z mého telefonu. Toto je