Postępuj zgodnie z tymi instrukcjami, aby uruchomić niestandardowy kod na swoim urządzeniu w w odpowiedzi na polecenia Asystenta Google.
Uruchamianie przykładu
Po zdefiniowaniu cechy i zaktualizowaniu modelu sprawdź, czy sprawdź, czy Asystent Google wysyła polecenie włączenia/wyłączenia odpowiedniego zapytania.
googlesamples-assistant-pushtotalk
Naciśnij klawisz Enter i spróbuj wykonać to zapytanie:
Włącz.
W danych wyjściowych konsoli powinny wyświetlić się instrukcje poniżej. Jeśli nie, zobacz instrukcje rozwiązywania problemów.
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.
Informacje o tym, gdzie są one wydrukowane, znajdziesz w kodzie źródłowym.
Pobieranie kodu źródłowego
Możesz teraz rozpocząć własny projekt:
git clone https://github.com/googlesamples/assistant-sdk-python
Znajdowanie modułu obsługi poleceń
Plik pushtotalk.py
w przykładowym kodzie używa pakietu SDK do wysyłania żądań oraz
otrzymywać odpowiedzi od Asystenta Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Wyszukaj tę definicję modułu obsługi:
device_handler = device_helpers.DeviceRequestHandler(device_id)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
else:
logging.info('Turning device off')
Kod w tabeli onoff()
obsługuje polecenie action.devices.commands.OnOff
. Ten
jest częścią funkcji OnOff.
schemat cech.
Obecnie do konsoli są wysyłane logi definicji onoff()
. Wykorzystuje asystenta
funkcji w device_helpers.py
w celu przeanalizowania odpowiedzi JSON i zapisania polecenia
w zmiennych, aby ułatwić korzystanie z nich. Możesz zmodyfikować ten kod,
w projekcie.
Jeśli masz zestaw LED, czytaj dalej, aby dowiedzieć się, jak zapalić diodę LED w odpowiedzi do polecenia OnOff. Jeśli go nie masz, przejdź do następnej sekcji, aby dowiedzieć się, jak dodaj więcej cech i modułów obsługi.
Kolejne kroki – Raspberry Pi
Już wiesz, jak obsługiwać polecenie przychodzące, możesz więc zmodyfikować przykładowy kod aby zapalić diodę LED. Będzie to wymagać dodatkowego sprzętu, jeśli korzystasz z Malinowy Pi.
Importuj pakiet GPIO
Aby uprościć dostęp oprogramowania do złączy GPIO (wejścia/wyjściowe do zwykłych obciążeń) na Raspberry Pi, zainstaluj pakiet RPi.GPIO w środowisku wirtualnym.
pip install RPi.GPIO
Modyfikowanie próbki
Otwórz plik pushtotalk.py
.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
W pliku pushtotalk.py
zaimportuj RPi.GPIO
do sterowania pinami GPIO w Pi. Umieść następujące oświadczenie w pobliżu
inne wyciągi import
:
import RPi.GPIO as GPIO
Zmodyfikuj kod, aby ustawić początkowy kod PIN w stanie niskiego logiki. Gdy po odebraniu polecenia ustaw kod PIN na stan wysokiego poziomu logiki. Gdy gdy zostanie odebrane polecenie wyłączone, ustaw kod PIN w stanie niskiego logiki.
device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
GPIO.output(25, 1)
else:
logging.info('Turning device off')
GPIO.output(25, 0)
Zapisz zmiany i zamknij plik.
Uruchamianie przykładu
Uruchom zmodyfikowany przykładowy kod.
python pushtotalk.py
Użyj tego samego zapytania co poprzednio. Dioda LED powinna się włączyć.
To dopiero początek. Dowiedz się, jak dodać więcej cech i modułów obsługi.