Obsah:

TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram: 3 kroky
TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram: 3 kroky

Video: TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram: 3 kroky

Video: TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram: 3 kroky
Video: НЕФТЬ и ЭКОЛОГИЯ. Спасут ли нас электромобили? 2024, Červenec
Anonim
TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram
TextPlayBulb: REST povoleno PlayBulb pomocí Raspberry Pi 3, BLE a Telegram

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:

  1. pyBulbDriver: Připojte se k PlayBulb přes BLE gatttool a python.
  2. pyBulbServer: Použití pyBulbDriver k odhalení ovládání playbulbu pomocí REST API.
  3. 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: