Jak zbudować DIY Home Assistant z Raspberry Pi

  • Michael Cain
  • 0
  • 7601
  • 98
Reklama

Asystenci sterowani głosem szybko stają się powszechni. W wielu domach Alexa lub Google Home kontroluje wszystko, od oświetlenia po media, a nawet mierzy czas.

Technologia, na której działają te urządzenia, jest dostępna - przynajmniej częściowo - dla wszystkich. Pakiet Google Assistant SDK umożliwia korzystanie z usługi na własnych urządzeniach. W tym samouczku opisano, jak skonfigurować Asystenta Google na Raspberry Pi i aktywować głosowo diodę LED za pomocą pinów GPIO.

Wymagany sprzęt do Asystenta domowego Raspberry Pi

Będziesz potrzebować:

  1. Raspberry Pi ze świeżą instalacją Raspbian na karcie SD Jak zainstalować system operacyjny na Raspberry Pi Jak zainstalować system operacyjny na Raspberry Pi Oto jak zainstalować system operacyjny na Raspberry Pi i jak sklonować idealną konfigurację, aby szybko odzyskiwanie po awarii. .
  2. Kamera internetowa USB lub mikrofon.
  3. Głośnik zewnętrzny.
  4. Obwód z samouczka Pi LED Jak zaprogramować Raspberry Pi do sterowania lampkami LED Jak zaprogramować Raspberry Pi do sterowania lampkami LED Szukasz prostego projektu Raspberry Pi, aby rozpocząć kodowanie i elektronikę? Spróbuj podłączyć niektóre diody LED i zakodować je, aby włączyć lub wyłączyć! (opcjonalny)
  5. Przeglądarka zalogowana na twoje konto Google.

Uwaga: Wyposażenie tego samouczka może się nieco różnić. Użyłem zapasowej kamery USB wyłącznie do jej mikrofonu. Każda kompatybilna kamera internetowa lub mikrofon powinna działać dobrze, a do pomocy jest obszerna lista urządzeń zgodnych z Pi.

Używam również wyjścia audio 3,5 mm. HDMI i inne źródła wyjściowe również będą działać, choć będą wymagać modyfikacji konfiguracji dźwięku poniżej.

Podłącz kamerę internetową USB i głośnik oraz skonfiguruj obwód LED, jeśli go używasz.

Konfigurowanie dźwięku

Ten samouczek można wykonać bezpośrednio na Pi lub przez połączenie SSH z Pi.

Oba sposoby rozpoczynają się w terminalu, aby sprawdzić ustawienia dźwięku. Użyj poleceń arecord -l i aplay -l aby wyświetlić listę dostępnych urządzeń.

Powyższy obraz pokazuje kamerę internetową USB jako karta 1 i urządzenie 0. Zanotuj numery kart i urządzeń dla wyjścia mikrofonu i głośnika.

Teraz upewnij się, że jesteś w / home / pi katalogu, utwórz nowy plik i otwórz go w nano:

sudo nano .asoundrc

Zawartość tego katalogu będzie się różnić w zależności od używanych kart i numerów urządzeń. W tym miejscu możesz preferować wyjście HDMI zamiast 3,5 mm, jeśli chcesz.

Po wprowadzeniu wersji powyższego kodu naciśnij Ctrl + X zapisać i wyjść.

Sprawdź konfigurację, nagrywając i odtwarzając krótki klip:

Opcjonalny krok: Jeśli chcesz zmienić głośność wejściową mikrofonu, otwórz alsamixer i naciśnij F6 przełączać się między urządzeniami.

To jest to! Dźwięk jest skonfigurowany.

Tworzenie projektu Google

Otwórz przeglądarkę Pi lub, jeśli jesteś podłączony przez SSH, otwórz lokalnie przeglądarkę. Przejdź do Google Action Console i kliknij Nowy projekt.

To może chwilę potrwać. Kiedy skończysz, pozostaw okno aktywne i otwórz nową kartę - zaraz do tego dojdziemy.

Włączanie interfejsu API Google Assistant

Aby kontynuować, musisz wprowadzić kilka korekt online. Przejdź do witryny Google Assistant API i kliknij Włączyć.

Projekt wymaga również uprawnień do działania. Przejdź do panelu Kontrola aktywności i upewnij się, że następujące działania są włączone:

  • Aktywność w internecie i aplikacjach (w tym pole wyboru Historia Chrome)
  • Informacje o urządzeniu
  • Aktywność głosowa i audio

Teraz możesz przejść do rejestracji urządzenia.

Rejestracja twojego Raspberry Pi

Z powrotem w konsoli akcji wybierz Rejestracja urządzenia z lewego panelu. Pod Produkt utwórz łatwą do zapamiętania nazwę dla swojego urządzenia. Nazwa producenta nie jest ważna (ale musi tam być) i wybierz Automatyczny dla typu urządzenia.

Kliknij Zarejestruj model, i na następnym ekranie kliknij Pobierz poświadczenia OAuth 2.0. Spowoduje to pobranie pliku JSON na komputer. Jeśli nie znasz plików JSON, nie martw się, ale naucz się korzystać z JSON JSON Parsing: prosty przewodnik JSON Python parsing: prosty przewodnik Dostępne są biblioteki i zestawy narzędzi do parsowania i generowania JSON z prawie dowolny język i środowisko. W tym artykule skoncentrowano się na metodach i problemach wynikających z analizy składni JSON. warto robić na przyszłość!

Oficjalny przewodnik Google zaleca przeniesienie pliku do / home / pi, więc otwórz menedżera plików i zrób to teraz.

Dodatkowy krok dla użytkowników SSH:

Jeśli używasz SSH, pobierz plik JSON na komputer lokalny zamiast Pi. Aby go przenieść, otwórz osobne okno terminala bez połączenia SSH. W tym oknie skopiuj tajny plik JSON klienta za pomocą tego polecenia:

scp ~ / Pobieranie / client_secret_client-id.json pi @ raspberry-pi-ip-address: / home / pi /

Zastąpić “adres malinowy-pi-ip” z adresem IP twojego Pi i nie zapomnij o dwukropku przed ścieżką. Jeśli plik JSON został pobrany do innej lokalizacji, zmodyfikuj ścieżkę lokalną, aby to odzwierciedlić. Po wyświetleniu monitu wprowadź hasło, a plik zostanie skopiowany do katalogu domowego Pi.

Wróć do terminala SSH i przejdź do / home / pi. Wchodzić ls -l aby wyświetlić listę plików w katalogu. Powinieneś zobaczyć przesłany tajny plik JSON klienta.

Instalowanie zestawu SDK

Google zaleca pracę w środowisku wirtualnym Python. Utwórz nowe środowisko wirtualne o nazwie środowisko.

Jeśli nigdy wcześniej tego nie robiłeś, ten samouczek pomoże ci nauczyć się korzystać ze środowisk wirtualnych Python.

Zainstaluj najnowsze wersje Pip, Setuptools i Wheel i aktywuj środowisko wirtualne:

env / bin / python -m pip install - upgrade pip setuptools wheel source env / bin / aktywuj

Asystent Google ma pewne zależności, które należy teraz zainstalować w środowisku wirtualnym.

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev 

Na koniec zainstaluj Google Assistant SDK, Samples i OAuth.

python -m pip install - uaktualnienie google-assistant-library python -m pip install - uaktualnienie google-assistant-sdk [przykłady] python -m pip install - uaktualnienie google-auth-oauthlib [narzędzie] 

To wszystko, co potrzebne do uruchomienia. Jeśli którakolwiek instalacja nie powiedzie się, dokładnie sprawdź pisownię i odstępy.

Uwierzytelnianie Raspberry Pi

Użyj google-auth-oauthlib [narzędzie] z pobranym wcześniej plikiem JSON referencji w celu uwierzytelnienia Raspberry Pi.

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --scope https://www.googleapis.com/auth/gcm \ --save --headless - -client-secrets /home/pi/YOUR_CLIENT_SECRET_ID.json 

Musisz zastąpić YOUR_CLIENT_SECRET_ID pobranym plikiem, więc najpierw warto skopiować nazwę pliku. Ten identyfikator klienta musi być poprawny. Nie zmieniaj nazwy pliku!

Powinieneś otrzymać wiadomość z linkiem z prośbą o wklejenie kodu autoryzacyjnego.

Kliknięcie linku otwiera przeglądarkę. Zostaniesz poproszony o włączenie urządzenia na koncie Google. Skopiuj poniższy kod autoryzacji i wklej go z powrotem do okna terminala.

Powinieneś otrzymać odczyt potwierdzenia Zapisane poświadczenia: / home / pi… , co oznacza, że ​​Pi zostało pomyślnie autoryzowane na Twoim koncie Google.

Testowanie to

Teraz, gdy wszystko jest już na miejscu, czas przetestować Asystenta Google Pi. Uruchom asystenta za pomocą tego polecenia:

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model 

Będziesz musiał wymienić my-dev-project z Twoim identyfikatorem projektu (znajdującym się pod kołem zębatym Ustawienia w konsoli akcji). Twój identyfikator modelu urządzenia jest wymieniony w sekcji Rejestracja urządzenia w konsoli akcji.

Wypróbuj to! Mówić “Ok google” i zadaj pytanie. Możesz zobaczyć wynik programu w terminalu, gdy usłyszysz odpowiedź:

To jest to! Asystent Google działa teraz na Twoim Raspberry Pi. Pamiętaj, że jeśli głośność wyjściowa jest nieco niska, możesz to zmienić, mówiąc “Hej Google, zwiększ głośność do 80%.”

Bonus: GPIO aktywowane głosem

Możliwe jest sterowanie oświetleniem za pomocą Arduino i Siri, ale istnieje prostsza metoda. Jeśli skonfigurujesz diodę LED, możesz użyć Asystenta Google do sterowania głosem.

Konfigurowanie Asystenta Google do pracy z pinami GPIO jest stosunkowo proste, ale wymaga dodatkowych kroków. Przejdź do Google Action Console i znajdź swoje urządzenie w sekcji Rejestracja urządzenia. Kliknij i otwórz menu cech:

Włącz OnOff cecha i kliknij Zapisać.

Teraz upewnij się, że jesteś w środku środowisko w środowisku wirtualnym sklonuj wersję zestawu SDK do swojego pi przy użyciu git:

klon git https://github.com/googlesamples/assistant-sdk-python 

Ponieważ jest to środowisko wirtualne, przed przejściem dalej musisz zainstalować RPi.GPIO.

pip install rpi.gpio 

Teraz przejdź do folderu zawierającego hotword.py scenariusz.

cd-asystent-sdk-python / google-assistant-sdk / googlesamples / asystent / biblioteka 

Modyfikacja skryptu

Musisz dodać kilka wierszy do skryptu hotword.py, więc otwórz go w edytorze nano:

nano hotword.py 

Pod instrukcjami importowania dodaj własne dla RPi.GPIO.

import RPi.GPIO jako GPIO 

Spójrz na event_event metoda. W wierszu 66 usuń lub skomentuj instrukcję drukowania i dodaj instrukcję if, aby sterować diodą LED.

#print („Wykonaj polecenie”, polecenie, „z parametrami”, str (parametry)) if polecenie == „action.devices.commands.OnOff”: if params ['on']: print ('----- ---------- ”) drukuj („ Dioda włączona ”) drukuj („ --------------- ”) GPIO.output (18, GPIO.HIGH) w przeciwnym razie: drukuj („---------------”) drukuj („Dioda wyłączona”) drukuj („---------------”) GPIO.output (18, GPIO.LOW) 

Ta logika steruje diodą LED, ale jak dotąd nie jest skonfigurowana do wyświetlania. Skonfiguruj w Główny() funkcja przed wywołaniem metody process_event.

GPIO.setmode (GPIO.BCM) GPIO.setup (18, GPIO.OUT, initial = GPIO.LOW) 

Teraz pin GPIO jest ustawiony na wyjście i inicjuje się w stanie niskim. Zapisz i wyjdź. Możesz uruchomić zmodyfikowany skrypt, podając jako argument numer identyfikacyjny modelu (znaleziony w konsoli akcji).

python hotword.py --device-model-id TWÓJ-MODEL-ID-TUTAJ 

Wyjście terminala jest takie samo jak poprzednio, a asystent będzie działał standardowo. Teraz jednak, kiedy mówisz “OK Google, włącz” zobaczysz nowe wyjście:

Uwaga: Powyższy obraz został przycięty, pokazując tylko asystenta słyszącego żądanie, oraz instrukcję drukowania dodaną do skryptu.

Powinieneś zobaczyć też swoją diodę LED!

Twój własny DIY Raspberry Pi Google Home Assistant

Ten projekt stanowi dobre wprowadzenie do korzystania z usług Google API. Teraz, gdy masz urządzenie Asystenta Google, wypróbuj najlepsze komendy Google Home Arkusz poleceń Google Home Arkusz poleceń Google Home Nasz arkusz poleceń Google Home zawiera mnóstwo przydatnych działań, w tym rozrywkę, informacje i automatyzację. - obejrzeliśmy świetne gry mini Google Home 15 poleceń Google Home do mini-gier i więcej 15 poleceń Google Home do mini-gier i więcej Za pomocą poleceń Google Home możesz zrobić tak wiele rzeczy. Oto kilka zabawnych poleceń Google Home, które warto wypróbować. .




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.