Cały system działa w następujący sposób:
- Alexa połączy się z urządzeniem IoT przez Wi-Fi
- Urządzenie IoT będzie otrzymywać polecenia od Alexy, aby wyzwolić diodę IR LED do sterowania Set Top Box lub TV.
Kontroler Alexa IoT TV nie jest ograniczony tylko do sterowania telewizorami. Możesz go użyć do sterowania dowolnym innym urządzeniem, które używa pilota IR.
Brzmi interesująco!? Zbierz swoje narzędzia i budujemy.
Przygotowanie
Aby zainstalować płytkę ESP8266 w Arduino IDE, przejdź do Files → Preferences → Paste the URL. Następnie przejdź do Tools → Board Manager → Search esp8266 i zainstaluj płytkę w Arduino IDE.
Zainstaluj również bibliotekę esplexa w Arduino IDE, ponieważ pozwoli ona Alexie kontrolować urządzenia IoT, które zostały dodane do aplikacji Alexa. Następnie zainstaluj bibliotekę IR remote, która pozwoli Ci zdekodować kod hex dla transmisji do telewizora.
Kodowanie
Trzeba napisać dwa kody: jeden dla ESP8266-01, który będzie używany jako urządzenie IoT dla Alexy, a drugi dla Arduino, który będzie wyzwalał diodę IR LED do sterowania telewizorem. Aby sterować telewizorem za pomocą Alexy, utwórz kod za pomocą espalexa. Pozwala on również na dodawanie urządzeń oświetleniowych do Alexy. Należy jednak pamiętać, aby ustawić funkcję przekazywania komend sterujących do Arduino dla sterowania telewizorem, a nie oświetleniem.
Kod Esp8266-01
Najpierw inicjalizujemy bibliotekę espalexa, a następnie dodajemy w kodzie wymagane urządzenie/urządzenia tak, aby Alexa odbierała funkcje poszczególnych przycisków pilota TV.
Uwaga: Ponieważ nie można sprawić, by espalexa działała jako zdalne urządzenie, użyj zamiast tego następującej sztuczki. Utwórz funkcję dla oświetlenia, która uaktywni diodę IR telewizora i umożliwi Ci sterowanie nim jak pilotem. Na przykład, dla przycisku ON, utwórz funkcję o nazwie firstLightChanged() w kodzie. Dla kolejnego przycisku będzie to funkcja o nazwie secondLightChanged(), itd.
W funkcji setup() ustaw prędkość transmisji szeregowej na 9600 lub 115200, aby polecenia mogły być pomyślnie przekazywane do Arduino.
Następnie należy dodać obsługę urządzeń definiując ich nazwy i funkcje, którymi będą obsługiwane. Ilekroć Alexa otrzyma polecenie, będzie uruchamiać funkcje firstLightChanged(), secondLightChanged(), itp, związane z konkretnym podłączonym urządzeniem, czyli pilotem TV. Funkcje te odpowiadają poleceniom takim jak zwiększanie/zmniejszanie głośności, włączanie/wyłączanie telewizora, następny kanał, ulubiony kanał itp.
Kod Arduino
Napisz kod dla Arduino, który będzie pobierał komendy z espalexa, a następnie wyzwalał diodę IR LED, aby działała jak pilot do telewizora.
Dołącz bibliotekę Infrared i wklej do kodu tablicę przycisków pilota (patrz rysunek poniżej). Następnie utwórz funkcję setup(), która ustawi port szeregowy za pomocą Serial.begin(prędkość transmisji). Podaj konkretną szybkość transmisji (najlepiej 115200).
Następnie utwórz funkcję loop() do sprawdzania komend przychodzących z portu szeregowego. Potem utwórz zagnieżdżony warunek if do sprawdzania odebranych komend i zdefiniuj funkcje. Na przykład, jeśli polecenie jest 1 i chcesz oglądać kanał Discovery, to ustaw funkcję dla tego polecenia, aby otworzyć ten konkretny kanał. Następnie wyślij numer kanału Discovery z IR LED za pomocą IR send. Czyli jeśli kanał Discovery w dekoderze to 102, to wyślij kod na przycisk 1, potem 0 i potem 2 z opóźnieniem 200 mikrosekund.
Dodawanie urządzenia do Alexy
Aby dodać urządzenie IoT do Alexy, otwórz aplikację Alexa i przejdź do Option → Add Device → Wybierz urządzenie, które ma zostać dodane, a następnie pozwól Alexie wyszukać nowe urządzenie w sieci. Po zakończeniu wyszukiwania wyświetlana jest lista urządzeń do podłączenia. Wybierz je jeden po drugim i dodaj do Alexy. Od teraz Alexa jest gotowa do kontrolowania Twojego urządzenia (urządzeń) IoT.
Procedura ustawień
Aby ustawić niestandardowe polecenia głosowe dla kanałów i funkcji zdalnych, które mają działać rutynowo, otwórz aplikację Alexa i przejdź do Settings → Routines → Add new routine. Teraz ustaw nowe polecenie głosowe, takie jak np. „Alexa Star Plus” (przełączy na kanał Star Plus) lub „Alexa volume up” (zwiększa głośność), itp. Następnie ustaw akcję, która ma być wykonana dla tego polecenia. Wybrana akcja będzie uruchamiała odpowiednią funkcję do sterowania przyciskami pilota.
Testowanie
Podłącz zasilanie do urządzenia i powiedz (zgodnie z wcześniej ustawionym poleceniem) np. „Alexa volume up”. Po usłyszeniu polecenia, Alexa przekaże akcję do esp8266, który następnie wyśle polecenie do Arduino i uruchomi diodę podczerwieni, aby sterować telewizorem zgodnie z żądaniem.
Gratulacje! Teraz możesz sterować dowolnym telewizorem za pomocą Alexy. Ciesz się nowym doświadczeniem w swoim inteligentnym domu.