Sådan bygger du en DIY Google Home Assistant med Raspberry Pi

  • Michael Fisher
  • 0
  • 5063
  • 431
Reklame

Stemmestyrede assistenter er hurtigt blevet almindelige. Mange huse har en Alexa eller Google Home, der styrer alt fra belysning til medier og endda tidtagning.

Teknologien disse enheder kører på er tilgængelig - i det mindste delvis - for alle. Googles Assistant SDK giver dig mulighed for at bruge tjenesten på dine egne enheder. Denne tutorial dækker, hvordan du konfigurerer Google Assistant på din Raspberry Pi, og stemme aktiverer en LED via GPIO-pins.

Hardware kræves til en Raspberry Pi-hjemmeassistent

Du får brug for:

  1. Raspberry Pi med en frisk Raspbian-installation på SD-kortet Sådan installeres et operativsystem på en Raspberry Pi Sådan installeres et operativsystem på en Raspberry Pi Sådan installeres et operativsystem på din Raspberry Pi og hvordan du kloner din perfekte opsætning til hurtig bedring af katastrofer. .
  2. USB webcam eller mikrofon.
  3. Ekstern højttaler.
  4. Kredsløb fra Pi LED-tutorial Sådan programmeres dit Raspberry Pi til styring af LED-lys Sådan programmeres din Raspberry Pi til kontrol af LED-lys Leder du efter et let Raspberry Pi-projekt til at komme i gang med kodning og elektronik? Prøv at tilslutte nogle lysdioder og kode dem for at tænde og slukke! (valgfri)
  5. En browser er logget ind på din Google-konto.

Bemærk: Udstyret til denne tutorial kan variere noget. Jeg brugte et ekstra USB-webcam udelukkende til dets mikrofon. Ethvert kompatibelt webcam eller mikrofon skal klare sig godt, og der er omfattende lister med Pi-kompatible enheder, der kan hjælpe.

Desuden bruger jeg 3,5 mm output til lyd. HDMI og andre outputkilder fungerer også, skønt det kræver ændringer af lydopsætningen nedenfor.

Tilslut USB-webcam og højttaler, og indstil LED-kredsløbet, hvis du bruger det.

Opsætning af lyden

Denne tutorial kan følges direkte på Pi eller via en SSH-forbindelse til Pi.

Begge måder begynder i terminalen for at kontrollere lydindstillingerne. Brug kommandoerne arecord -l og aplay -l for at liste over tilgængelige enheder.

Billedet ovenfor viser USB-webcam som kort 1 og enhed 0. Bemærk kort- og enhedsnumrene til både mikrofon- og højttalerudgang.

Sørg nu for at være i / Home / pi katalog, opret en ny fil og åbn den i nano:

sudo nano .asoundrc

Indholdet af dette bibliotek afhænger af, hvilket kort- og enhedsnumre du bruger. Det er her du kan vælge at favorisere HDMI-output snarere end 3,5 mm, hvis du ønsker det.

Når du har indtastet din version af ovenstående kode, skal du trykke på Ctrl + X at gemme og afslutte.

Test dit setup ved at optage og afspille et kort klip:

Valgfrit trin: Hvis du vil ændre indgangsvolumen på din mikrofon, skal du åbne alsamixer og tryk på F6 at cykle mellem enheder.

Det er det! Lyden er indstillet.

Oprettelse af Google-projektet

Åbn Pis browser, alternativt, hvis du er tilsluttet via SSH, åbn en browser lokalt. Naviger til Google Action Console, og klik på Nyt projekt.

Dette kan tage et par øjeblikke. Når du er færdig, skal du lade vinduet være aktivt og åbne en ny fane - vi kommer til dette om et øjeblik.

Aktivering af Google Assistant API

Der er et par onlinejusteringer, du skal foretage for at fortsætte. Naviger til Google Assistant API-webstedet, og klik på Aktiver.

Projektet kræver også aktivitetstilladelser. Gå til dit Aktivitetskontrolpanel, og sørg for, at følgende aktiviteter er tændt:

  • Web- og appaktivitet (inklusive afkrydsningsfelt i Chrome-historik)
  • Enhedsoplysninger
  • Stemme- og lydaktivitet

Nu kan du gå videre til registrering af enheden.

Registrering af din Raspberry Pi

Tilbage i handlingskonsollen skal du vælge Enhedsregistrering fra venstre panel. Under Produkt opret et navn, der er let at huske på din enhed. Producentnavnet er ikke vigtigt (men skal være der), og vælg Auto for enhedstypen.

Klik Registrer model, og klik på det næste skærmbillede Download OAuth 2.0-legitimationsoplysninger. Dette henter en JSON-fil til din computer. Hvis du ikke er bekendt med JSON-filer, skal du ikke bekymre dig, men lære at bruge JSON JSON Python-parsing: En simpel guide JSON Python-parsing: En enkel guide Der er biblioteker og værktøjssæt til rådighed til at analysere og generere JSON fra næsten ethvert sprog og miljø. Denne artikel koncentrerer sig om metoder og problemer, der stammer fra JSON-python-parsing. er værd at gøre for fremtiden!

Den officielle Google-guide anbefaler, at du flytter filen til / Home / pi, så åbn filhåndteringen, og gør dette nu.

Ekstra trin til SSH-brugere:

Hvis du bruger SSH, har du downloadet JSON-filen til din lokale maskine i stedet for Pi. For at overføre det skal du åbne et separat terminalvindue uden SSH-forbindelse. I dette vindue kopieres den klienthemmelige JSON-fil over denne kommando:

scp ~ / Downloads / client_secret_client-id.json pi @ hindbær-pi-ip-adresse: / home / pi /

Erstatte “hindbær-pi-ip-adresse” med din Pis ip-adresse, og glem ikke tyktarmen før stien. Hvis du downloadede JSON-filen til en anden placering, skal du ændre din lokale sti for at afspejle dette. Indtast din adgangskode, når du bliver bedt om det, og filen kopieres til Pis hjemmekatalog.

Skift tilbage til SSH-terminalen, og naviger til / Home / pi. Gå ind ls -l for at få vist filerne i biblioteket. Du skal se den overførte klienthemmelige JSON-fil.

Installation af SDK

Google anbefaler at arbejde i et virtuelt Python-miljø. Opret et nyt virtuelt miljø kaldet env.

Hvis du aldrig har gjort dette før, vil denne tutorial hjælpe dig med at lære, hvordan du bruger virtuelle Python-miljøer.

Installer de nyeste versioner af Pip, Setuptools og Wheel og aktiver dit virtuelle miljø:

env / bin / python -m pip installering - opgradering af pip setuptools hjulkilde env / bin / activ

Google Assistant har nogle afhængigheder, som du skal installere i det virtuelle miljø nu.

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

Endelig skal du installere værktøjet Google Assistant SDK, prøver og OAuth.

python -m pip installere - opgradere google-assistent-bibliotek python -m pip installere - opgradere google-assistent-sdk [prøver] python -m pip installere - opgradere google-autor-oauthlib [værktøj] 

Det er alt, hvad der kræves for at komme i gang. Hvis nogle af installationerne mislykkes, skal du kontrollere stavningen og afstanden grundigt.

Autentificering af Raspberry Pi

Brug google-auth-oauthlib [værktøj] med den legitimation JSON-fil, der er downloadet tidligere for at godkende din Raspberry Pi.

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

Du skal erstatte YOUR_CLIENT_SECRET_ID med den downloadede fil, så det er værd at kopiere filnavnet først. Dette klient-id skal være korrekt. Skift ikke filnavnet!

Du skal få en meddelelse med et link, der beder dig om at indsætte en tilladelseskode.

Klik på linket åbner browseren. Du bliver bedt om at aktivere enheden på din Google-konto. Kopier den tilladelseskode, der følger, og indsæt den tilbage i dit terminalvindue.

Du skal modtage en bekræftelseslæsning Oplysninger, der gemmes: / home / pi ... , hvilket betyder, at Pi er godkendt med din Google-konto.

Test det ud

Nu hvor alt er på plads, er det tid til at teste din Pi Google Assistant. Kør assistenten med denne kommando:

googlesamples-assistent-hotword - projekt-id my-dev-projekt - Device-model-id my-model 

Du skal udskifte min-dev-projekt med dit projekt-id (findes under indstillingerens tandhjul på handlingskonsollen). Dine enhed-model-id er anført under afsnittet Enhedsregistrering i handlingskonsollen.

Prøve det! Sige “OK Google” og stille et spørgsmål. Du kan se programoutput i terminalen, når du hører svaret:

Det er det! Google Assistant kører nu på din Raspberry Pi. Bemærk, at hvis outputvolumen er lidt lav, kan du ændre det ved at sige “Hej Google, vend dit volumen op til 80%.”

Bonus: Stemmeaktiveret GPIO

Det er muligt at kontrollere lys med en Arduino og Siri, men der er en enklere metode. Hvis du konfigurerer en LED, kan du bruge Google Assistant til at kontrollere den med din stemme.

Det er relativt enkelt at indstille Google Assistant til at arbejde med GPIO-stifterne, men det kræver nogle ekstra trin. Gå til Google Action Console, og find din enhed under Enhedsregistrering. Klik på det, og åbn trækmenuen:

Drej Tænd sluk træk på, og klik Gemme.

Sørg nu for at være inde i env virtuelt miljø, klone en version af SDK til din Pi ved hjælp af git:

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

Da dette er et virtuelt miljø, skal du installere RPi.GPIO, før du går videre.

pip install rpi.gpio 

Naviger nu til den mappe, der indeholder hotword.py manuskript.

cd-assistent-sdk-python / google-assistent-sdk / googlesamples / assistent / bibliotek 

Ændring af scriptet

Du skal tilføje et par linjer til hotword.py-scriptet, så åbn det i nano-editoren:

nano hotword.py 

Tilføj dine egne til RPi.GPIO under importopgørelserne.

importer RPi.GPIO som GPIO 

Se efter process_event metode. På linje 66 skal du fjerne eller kommentere udskrivningen og tilføje en if-sætning for at kontrollere lysdioden.

#print ('Do command', command, 'with params', str (params)) if command == "action.devices.commands.OnOff": if params ['on']: print ('----- ---------- ') print (' Led tændt ') print (' --------------- ') GPIO.output (18, GPIO.HIGH) andet: print ('---------------') print ('Led slukket') print ('---------------') GPIO.output (18, GPIO.LOW) 

Denne logik styrer LED'en, men indtil videre er den ikke konfigureret til at blive output. Sæt den op i main () funktion inden process_event-metoden bliver kaldt.

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

Nu er GPIO-nålen indstillet til at blive output og initialiseres i en lav tilstand. Gem og stop. Du kan køre dit ændrede script, der videregiver dit model-id-nummer (findes i Action Console) som et argument.

python hotword.py - enhedsmodel-id DIT-MODEL-ID-HER 

Terminaludgangen er den samme som før, og assistenten fungerer som standard. Nu, når du siger “OK Google, tænd” du vil se en ny output:

Bemærk: Ovenstående billede er beskåret, der kun viser assistenten, der hører anmodningen, og den udskrivning, der er føjet til scriptet.

Du skal også se din LED tænde!

Din egen DIY Raspberry Pi Google Hjemmeassistent

Dette projekt er en god introduktion til brug af Google API-tjenester. Nu hvor du har en Google Assistant-enhed, kan du prøve nogle af de bedste Google Home-kommandoer Google Home Commands Cheat Sheet Google Home Commands Cheat Sheet Vores snyderark med Google Home kommandoer indeholder mange handy handlinger, herunder underholdning, information og automatisering. -Vi har set nogle gode Google Home-minispil 15 Google-hjemmekommandoer til minispil og mere 15 Google-hjemmekommandoer til minispil og mere Du kan gøre så mange ting med Google Hjem-kommandoer. Her er flere underholdende Google Home-kommandoer, der er værd at prøve. .




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.