Tartalomjegyzék:

TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával: 3 lépés
TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával: 3 lépés

Videó: TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával: 3 lépés

Videó: TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával: 3 lépés
Videó: На каком языке лучше звучит?🔥 2024, November
Anonim
TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával
TextPlayBulb: REST engedélyezett PlayBulb Raspberry Pi 3, BLE és távirat használatával

Ez az oktatóanyag bemutatja, hogyan lehet Python, Raspberry Pi 3 és Bluetooth könyvtár használatával csatlakozni a PlayBulb Color Bluetooth LED -lámpához, és kiterjeszteni a vezérlést egy REST API -n keresztül egy IoT -forgatókönyv esetén, és a projekt bemutatja azt is, hogyan kell kiterjeszteni a REST API a PlayBulb vezérléséhez egy IM szöveges ügyfél felett, pl Távirat, például az automatikus otthonnal való beszélgetés szöveges üzenetben.

Ez a projekt 3 modulra épül:

  1. pyBulbDriver: Csatlakozzon a PlayBulb -hez BLE gatttool és python segítségével.
  2. pyBulbServer: A pyBulbDriver segítségével leleplezi a playbulb vezérlést a REST API -n keresztül.
  3. pyBulbMessenger: Csatlakozás egy táviratbothoz, hogy parancsokat küldjön és fogadjon bármely okostelefonra telepített távirat kliensen keresztül, és a REST API használatával parancsokat adjon ki a PlayBulb -nak.

A projektet klónozhatja a git tárolón keresztül:

A projekt célja:

Ahhoz, hogy egy alap eszközt hozzon létre az izzóval való interakcióhoz különböző módokon, például egy SMS -ben, a jövőbeli forgatókönyvek beszédparancsokat, intést a lámpához stb.

Az utasítás létrehozásához használt egyéb források:

  • PlayBulb színes Bluetooth protokoll:
  • A Python csatlakoztatása a Playbulb-hez Bluetooth-on keresztül:
  • A távirat bot beállítása:

Hozzájárulás

A pyBulbDriver rugalmasabb és paraméterezett, a későbbi bővítés megkönnyítése érdekében, egy olyan forgatókönyvet építve, amely lehetővé teszi a lámpa szöveges küldését. Egyszerű felület a teszteléshez és a fikázáshoz.

Korlátozás

Az illesztőprogram PlayBulb Color -ra van írva, más típusú PlayBulb -ra pl. Eredeti vagy gyertya, a pyBulbDriver Bluetooth -kódját meg kell változtatni a fent említett protokollnak megfelelően.

Regisztrálnia kell egy táviratfiókot, és be kell szereznie egy api kulcsot, amelyet hozzáadhat a pyBulbMessenger.py fájlhoz, és kövesse a távirat bot beállítását az egyéb forrásokban.

1. lépés: A projekt beállítása

1. Az API -kulcs beszerzése a Telegramból

> Kövesse az aktuális utasításokat az API-kulcs beszerzéséhez

> Adja hozzá az api kulcsát a pyBulbMessenger.py api változójához

2. A PlayBulb név beállítása a pyBulbDriver programban

> Ahhoz, hogy a gatttool megtalálja az íróeszközt, állítsa be az eszköz nevét a pyBulbDriver.scanForBulb használatával ("PLAYBULB COLOR"). Példa található a pyBulbServer.py webhelyen a REST szerver beállításához

3. A projekt elindításához

> Először el kell indítania a pyBulbServer.py -t, majd a pyBulbMessenger.py -t a szöveges üzenetekhez. A pyBulbServer parancsokat a CURL segítségével tesztelheti.

4. Szükséges anyag:

> Raspberry Pi 3 és PlayBulb Color vagy PlayBulb Candle

> Telegram telepítése Androidra vagy iOS -re

5. A Rasberry Pi 3 LE Bluetooth telepítése:

www.elinux.org/RPi_Bluetooth_LE

2. lépés: Séta a kódon

pyBulbDriver.py

A pyBulbDriver tartalmazza azokat az illesztőprogram -osztályokat, amelyek a BLE -n keresztül csatlakoznak a PlayBulb -hez

A pyBulbDriver más általános projektekhez is használható, mivel csak a playBulb kapcsolatok vizsgálatához és beállításához szükséges kódot tartalmazza.

A felhasználói API fő API -i:

  • scanForBulb (eszköz neve: karakterlánc)> A PlayBulb vagy a PlayBulbs keresése az eszköz nevén keresztül
  • setBulbColor (s: int, r: int, g: int, b: int)> A fényerő és az RGB szín (0 - 255) értékeinek meghatározása
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Hasonló a setBulbColor -hoz, de tartalmazza az effektust és a sebességet. Ha többet szeretne megtudni, ellenőrizze a színprotokoll -effektusok részt

Ebben az osztályban más segítő módszereket is talál, amelyek az adatok integritásának ellenőrzésére szolgálnak, és nem a felhasználói felületre

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (szám)
  • checkModeAndSpeed (mód, offbeat, onbeat)
  • ellenőrzések RGBInBounds (s, r, g, b)

pyBulbServer.py

A pyBulbServer a felhasználói alkalmazás felületét RESTful hiperhivatkozásoknak teszi ki a PUT és a JSON használatával, hogy adatokat küldjön és fogadjon a pyBulbDriver számára. A szerver aktiválásakor a BLE kapcsolat vizsgálata és inicializálása is megtörténik.

A pyBulbResource (erőforrás) a hívásokat a REST szerverhez irányítja szín és effektus segítségével a bulb parancs meghatározásához.

Példa egy effekt parancsra:

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

Végül a pyBulbMessenger felelős a távirat okostelefon klienséhez csatlakoztatott Telegram bot összekapcsolásáért. A táviratbot konfigurálásáról és a csatlakozásról további részleteket a https://www.instructables.com/id/Set-up-Telegram-Bo… címen talál.

A cmdHandler (bot, frissítés) az a hely, ahol a szöveges parancsok definiálhatók, és a RESTful API -n keresztül kapcsolódnak a PlayBulb -hez.

Jelenleg a projektnek csak szövege van, egy másik cél az, hogy rögzített hangüzeneteket is küldjön, amelyeket a beszédfelismerőnek küldenek más parancsok aktiválásához (még nem hajtották végre).

3. lépés: Következtetés

A jelenlegi architektúra inkább az egyszerűsítésről szólt, mint a méretezhetőségről. Még mindig hiányzik a csoportkapcsolat, és még több olyan alkalmazás is van, amelyek az izzó szöveges küldésére szolgálnak, akár közvetlen parancsért, akár játékos interakcióért.

Ha feliratkozik a git repo -ra vagy követi, további részletek fognak megjelenni ezekről a frissítésekről. Egy ilyen projekt oka az volt, hogy a playBulb -ot interfészbe helyezték, és egy RESTful felületet hoztak létre az IoT (dolgok internete forgatókönyve) fejlesztésének megkönnyítése érdekében, de lehetőséget adtak arra is, hogy az IM Client táviraton keresztül különböző módokat, például képeket, hangokat és szöveget, hogy kutatási szempontból kölcsönhatásba léphessen a készülékekkel.

Ajánlott: