Spisu treści:
Wideo: TextPlayBulb: PlayBulb z obsługą REST przy użyciu Raspberry Pi 3, BLE i Telegram: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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:
- pyBulbDriver: Połącz się z PlayBulb przez BLE gatttool i python.
- pyBulbServer: Używanie pyBulbDriver do ujawnienia kontrolki playbulb za pośrednictwem interfejsu API REST.
- 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:
Pilot z obsługą Alexa (przy użyciu WEMO D1 Mini): 3 kroki
Alexa Enabled Remote Control (przy użyciu WEMO D1 Mini): To jest zaktualizowana wersja poprzedniego postu: https://www.instructables.com/id/Voice-Activated-R… W poprzedniej wersji korzystałem z Geetech moduł głosowy do sterowania zwykłym pilotem do otwierania drzwi garażowych. W tej instrukcji zastąpiłem vo
Pierwsze kroki z Digispark Attiny85 przy użyciu Arduino IDE: 4 kroki
Rozpoczęcie pracy z Digispark Attiny85 przy użyciu Arduino IDE: Digispark to oparta na Attiny85 płytka rozwojowa mikrokontrolera podobna do linii Arduino, tylko tańsza, mniejsza i nieco mniej wydajna. Z całą gamą osłon rozszerzających jego funkcjonalność i możliwością korzystania ze znanego identyfikatora Arduino
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: 3 kroki
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: STM32 to dość potężna i popularna płyta obsługiwana przez Arduino IDE. Aby z niej skorzystać, musisz zainstalować płyty dla stm32 w Arduino IDE, więc w tej instrukcji opowiem, jak zainstalować płyty stm32 i jak zaprogramować to
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem