Obsah:

TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegram: 3 kroky
TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegram: 3 kroky

Video: TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegram: 3 kroky

Video: TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegram: 3 kroky
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, November
Anonim
TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegramu
TextPlayBulb: REST povolený PlayBulb pomocou Raspberry Pi 3, BLE a Telegramu

Tento návod ukazuje, ako sa pripojiť k bluetooth LED žiarovke PlayBulb Color pomocou systému Python, knižnice Raspberry Pi 3 a rozhrania Bluetooth a ako rozšíriť ovládanie pomocou rozhrania REST API pre scenár IoT a ako projekt tiež ukáže, ako rozšíriť REST API na ovládanie vášho PlayBulbu cez textového klienta IM, napr Telegram, ako napríklad rozprávanie sa s vašim automatizovaným domovom prostredníctvom textu.

Tento projekt je postavený na 3 moduloch:

  1. pyBulbDriver: Pripojte sa k PlayBulb prostredníctvom BLE gatttool a pythonu.
  2. pyBulbServer: Použitie programu pyBulbDriver na odhalenie ovládacieho prvku žiarovky pomocou rozhrania REST API.
  3. pyBulbMessenger: Pripojenie k telegramovému robotovi na odosielanie a prijímanie príkazov prostredníctvom telegramového klienta nainštalovaného na akomkoľvek inteligentnom telefóne a používanie rozhrania REST API na vydávanie príkazov pre PlayBulb.

Projekt môžete klonovať prostredníctvom úložiska git:

Cieľ projektu:

Na vytvorenie základného nástroja na interakciu s vašou žiarovkou rôznymi spôsobmi, ako je napríklad textové správy, by budúce scenáre mohli zahŕňať hlasové príkazy, gestá smerom k žiarovke … atď.

Ďalšie zdroje použité na vytvorenie tohto pokynu:

  • Protokol Bluetooth PlayBulb Color:
  • Pripojenie Pythonu k Playbulbu prostredníctvom Bluetooth:
  • Nastavenie telegramového robota:

Príspevok

Program pyBulbDriver je rozšírený tak, aby bol flexibilnejší a parametrizovateľnejší pre uľahčenie budúceho rozšírenia, a vytvára scenár, ktorý vám umožní manipulovať s textovými správami žiarovky. Jednoduché rozhranie na testovanie a hranie sa.

Obmedzenie

Ovládač je napísaný pre PlayBulb Color, pre ostatné typy PlayBulb napr. Pôvodný alebo sviečkový kód bluetooth v programe pyBulbDriver je potrebné zmeniť podľa vyššie uvedeného protokolu.

Musíte si zaregistrovať telegramový účet a získať api kľúč, ktorý pridáte do súboru pyBulbMessenger.py, postupujte podľa nastavenia telegramového robota v iných zdrojoch.

Krok 1: Nastavenie projektu

1. Získanie kľúča API od Telegramu

> Postupujte podľa aktuálnych pokynov a získajte kľúč API

> Pridajte svoj kľúč API do premennej api v pyBulbMessenger.py

2. Nastavenie názvu PlayBulb v programe pyBulbDriver

> Aby gatttool našiel zapisovacie zariadenie, nastavte názov svojho zariadenia na skenovanie pomocou pyBulbDriver.scanForBulb ("FARBA PLAYBULB"). Príklad na nastavenie servera REST nájdete na stránke pyBulbServer.py

3. Spustenie projektu

> Najprv musíte spustiť pyBulbServer.py, potom nasleduje pyBulbMessenger.py na odosielanie textových správ. Príkazy pyBulbServer môžete otestovať pomocou CURL.

4. Potrebný materiál:

> Raspberry Pi 3 a sviečka PlayBulb Color alebo PlayBulb

> Inštalácia Telegramu pre Android alebo iOS

5. Inštalácia Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Krok 2: Prechádzka kódom

pyBulbDriver.py

pyBulbDriver obsahuje triedy ovládačov na pripojenie k PlayBulb prostredníctvom BLE

Program pyBulbDriver je možné použiť aj pre akékoľvek iné generické projekty, pretože obsahuje iba kód na skenovanie a nastavenie pripojení PlayBulb.

Hlavné rozhrania API pre rozhranie používateľskej aplikácie:

  • scanForBulb (názov zariadenia: reťazec)> Ak chcete vyhľadať PlayBulb alebo PlayBulbs podľa názvu zariadenia
  • setBulbColor (s: int, r: int, g: int, b: int)> Na definovanie hodnôt jasu a farby RGB (0 až 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Podobné ako setBulbColor, ale zahŕňa typ efektu a rýchlosť. Ak sa chcete dozvedieť viac, pozrite sa do časti Efekty farebného protokolu

V tejto triede nájdete aj ďalšie pomocné metódy určené na kontrolu integrity údajov, a nie na používateľské rozhranie

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (číslo)
  • checkModeAndSpeed (režim, offbeat, onbeat)
  • kontrolyRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer sprístupňuje rozhranie užívateľskej aplikácie RESTful hypertextovým odkazom pomocou PUT a JSON na odosielanie a prijímanie údajov do pyBulbDriver. Keď je server aktivovaný, prebieha aj skenovanie a inicializácia pripojenia BLE.

pyBulbResource (zdroj) smeruje hovory na server REST pomocou farby a efektu na definovanie príkazu bulb.

Príklad na ovládanie efektu:

127.0.0.1/bulb/effect

POSTUP JSON> {data ':' {"s": 0, "r": 255, "g": 255, "b": 255, "m": 1, "zapnuté": 15, "vypnuté": 15 } '}

pyBulbMessenger.py

Nakoniec pyBulbMessenger je zodpovedný za prepojenie telegramového robota pripojeného k vášmu telegramovému klientovi inteligentného telefónu. Ďalšie podrobnosti o konfigurácii a pripojení k telegramovému robotovi nájdete na stránke

cmdHandler (robot, aktualizácia) je miesto, kde sú textové príkazy definované a pripojené k PlayBulb prostredníctvom rozhrania RESTful API.

V súčasnosti má projekt iba text. Ďalším cieľom je tiež odoslať nahraté hlasové správy, ktoré by boli odoslané do rozpoznávača reči, aby sa aktivovali ďalšie príkazy (zatiaľ nie je implementované).

Krok 3: Záver

Súčasný návrh architektúry bol viac o zjednodušení než o škálovateľnosti. Stále chýba skupinová konektivita a ďalšie aplikácie týkajúce sa odosielania textových správ žiarovke, či už ide o priamy príkaz alebo hravú interakciu, sa stále skúmajú.

Prihlásením sa na odber git repo alebo sledovaním týchto nových aktualizácií získate ďalšie podrobnosti. Dôvodom pre takýto projekt bolo prepojenie zariadenia playBulb a vytvorenie RESTful rozhrania na uľahčenie vývoja v oblasti internetu vecí (scenár internetu vecí), ale aj otvorenie možnosti používať rôzne modality prostredníctvom telegramu klienta IM, ako sú obrázky, hlas a text na interakciu so zariadeniami z hľadiska výskumu.

Odporúča: