Spisu treści:

TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram: 3 kroki
TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram: 3 kroki

Wideo: TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram: 3 kroki

Wideo: TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram: 3 kroki
Wideo: Manta SmartBulb DLB002 - testujemy gadżet | Z prądem ⚡️ 2024, Listopad
Anonim
TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram
TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram

Ta instrukcja pokazuje, jak połączyć się z lampą LED Bluetooth PlayBulb Color za pomocą Pythona, Raspberry Pi 3 i biblioteki Bluetooth oraz rozszerzyć sterowanie za pomocą interfejsu API REST na potrzeby scenariusza IoT, a jako bonus projekt pokazuje również, jak rozszerzyć REST API do kontrolowania PlayBulb przez klienta tekstowego IM, np. Telegram, np. komunikowanie się z automatycznym domem przez SMS.

Ten projekt składa się z 3 modułów:

  1. pyBulbDriver: Połącz się z PlayBulb przez BLE gatttool i python.
  2. pyBulbServer: Używanie pyBulbDriver do ujawnienia kontrolki playbulb za pośrednictwem interfejsu API REST.
  3. pyBulbMessenger: Łączenie się z botem telegramowym w celu wysyłania i odbierania poleceń za pośrednictwem klienta telegramu zainstalowanego na dowolnym smartfonie oraz używania interfejsu API REST do wydawania poleceń PlayBulb.

Możesz sklonować projekt za pomocą repozytorium git:

Cel projektu:

Aby stworzyć podstawowe narzędzie do interakcji z żarówką za pomocą różnych sposobów, takich jak wysyłanie SMS-ów, przyszłe scenariusze mogą obejmować polecenia głosowe, gestykulowanie na lampę… itd.

Inne zasoby użyte do stworzenia tej instrukcji:

  • PlayBulb Color Bluetooth Protokół:
  • Podłączanie Pythona do Playbulb przez Bluetooth:
  • Konfigurowanie bota telegramu:

Składka

pyBulbDriver został rozszerzony, aby być bardziej elastycznym i sparametryzowanym w celu ułatwienia przyszłej rozbudowy, tworząc scenariusz, który pozwoli ci bawić się przy wysyłaniu wiadomości tekstowych do lampy. Prosty interfejs do testowania i manipulowania.

Ograniczenie

Sterownik jest napisany dla PlayBulb Colour, dla innych typów PlayBulb, np. PlayBulb. Oryginał lub świeca, kod bluetooth w pyBulbDriver należy zmienić zgodnie z wyżej wymienionym protokołem.

Musisz zarejestrować konto telegramu i uzyskać klucz api, który dodajesz w pyBulbMessenger.py, postępuj zgodnie z konfiguracją bota telegramu w Inne zasoby.

Krok 1: Konfiguracja projektu

1. Uzyskiwanie klucza API z Telegrama

> Postępuj zgodnie z aktualną instrukcją, aby uzyskać klucz API

> Dodaj swój klucz api do zmiennej api w pyBulbMessenger.py

2. Ustawianie nazwy PlayBulb w pyBulbDriver

> Aby gatttool znalazł urządzenie do zapisu, ustaw nazwę urządzenia do skanowania za pomocą pyBulbDriver.scanForBulb("PLAYBULB COLOUR"). Przykład można znaleźć w pyBulbServer.py, aby skonfigurować serwer REST

3. Aby rozpocząć projekt

> Najpierw musisz uruchomić pyBulbServer.py, a następnie pyBulbMessenger.py do wysyłania SMS-ów. Możesz przetestować polecenia pyBulbServer za pomocą CURL.

4. Potrzebny materiał:

> Raspberry Pi 3 i PlayBulb Color lub PlayBulb Candle

> Instalowanie Telegrama na Androida lub iOS

5. Instalacja Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Krok 2: Przechodzenie przez Kodeks

pyBulbDriver.py

pyBulbDriver zawiera klasy sterowników do łączenia się z PlayBulb przez BLE

pyBulbDriver może być również używany do innych ogólnych projektów, ponieważ zawiera tylko kod do skanowania i konfigurowania połączeń playBulb.

Główne interfejsy API dla interfejsu aplikacji użytkownika:

  • scanForBulb(devicename:String) > Aby skanować w poszukiwaniu PlayBulb lub PlayBulbs za pomocą nazwy ich urządzenia
  • setBulbColor(s:int, r:int, g:int, b:int) > Aby zdefiniować wartości jasności i koloru RGB (od 0 do 255)
  • setBulbEffect(s:int, r:int, g:int, b:int, mode:int, onbeat:int, offbeat:int) > Podobny do setBulbColor, ale zawiera typ efektu i szybkość. Aby dowiedzieć się więcej, sprawdź sekcję Efekty protokołu kolorów

W tej klasie znajdziesz również inne metody pomocnicze przeznaczone do sprawdzania integralności danych, a nie do interfejsu użytkownika

  • konwertuj RGB naHexaCmd(s, r, g, b)
  • przeliczIntNaHex(liczba)
  • checkModeAndSpeed(tryb, niecodzienny, rytmiczny)
  • checksRGBinBounds(s, r, g, b)

pyBulbServer.py

pyBulbServer udostępnia interfejs aplikacji użytkownika w hiperłączach RESTful przy użyciu PUT i JSON do wysyłania i odbierania danych do pyBulbDriver. Również skanowanie i inicjalizacja połączenia BLE odbywa się, gdy serwer jest aktywowany.

pyBulbResource(Resource) kieruje wywołania do serwera REST przy użyciu koloru i efektu do zdefiniowania polecenia żarówki.

Przykład Do sterowania efektem:

127.0.0.1/żarówka/efekt

JSON POST > {data':'{"s":0, "r":255, "g":255, "b":255, "m":1, "on":15, "off":15 }'}

pyBulbMessenger.py

Wreszcie pyBulbMessenger jest odpowiedzialny za połączenie bota Telegram podłączonego do klienta smartfona telegramu. Aby uzyskać więcej informacji o tym, jak skonfigurować i połączyć się z botem telegramowym, sprawdź

cmdHandler(bot, update) to miejsce, w którym polecenia tekstowe są zdefiniowane i połączone z PlayBulb za pośrednictwem interfejsu API RESTful.

Obecnie projekt ma tylko tekst, innym celem jest również wysyłanie nagranych wiadomości głosowych, które byłyby wysyłane do aparatu rozpoznawania mowy w celu aktywacji innych poleceń (jeszcze nie zaimplementowane).

Krok 3: Wniosek

W obecnym projekcie architektury chodziło bardziej o uproszczenie niż o skalowalność. Wciąż brakuje łączności grupowej, a także więcej aplikacji dotyczących wysyłania SMS-ów do żarówki zarówno w celu bezpośredniego polecenia, jak i zabawnej interakcji jest nadal w fazie badań.

Subskrybując repozytorium git lub obserwując, pojawi się więcej szczegółów na temat tych aktualizacji. Powodem takiego projektu było podłączenie playBulb i stworzenie interfejsu RESTful w celu ułatwienia programowania w IoT (scenariusz Internetu rzeczy), ale także otwarcie możliwości korzystania z różnych modalności za pośrednictwem telegramu IM Client, takich jak zdjęcia, głos i tekst do interakcji z urządzeniami z perspektywy badawczej.

Zalecana: