Cum de a construi un DIY acasă Google Asistent cu zmeura Pi

Cum de a construi un DIY acasă Google Asistent cu zmeura Pi / DIY

Asistenții controlați prin voce au devenit rapid obișnuiți. Multe case au o locuință Alexa sau Google care controlează totul, de la iluminat la media și chiar și de cronometrare.

Tehnologia pe care aceste dispozitive funcționează este disponibilă, cel puțin parțial, pentru toată lumea. Asistența Google SDK vă permite să utilizați serviciul pe propriile dvs. dispozitive. Acest tutorial acoperă modul de configurare a asistentului Google pe zmeura dvs. Pi, iar vocea activa un LED prin intermediul știfturilor GPIO.

Hardware necesar pentru o acasă de zmeură Pi Home

Vei avea nevoie:

  1. Raspberry Pi cu o instalare proaspata Raspbian pe cardul SD Cum se instaleaza un sistem de operare pentru zmeura Pi Pi Cum sa instalezi un sistem de operare pentru rasina Pi Cum sa instalezi un nou sistem de operare si sa rulezi pe Pi - si cum sa iti clonezi configurare perfectă pentru recuperarea rapidă a dezastrelor. Citeste mai mult .
  2. USB webcam sau microfon.
  3. Difuzor extern.
  4. Circuit de la Pi LED tutorial Cum să Programul dvs. de zmeură Pi pentru a controla LED-uri Lumini Cum de a programa dvs. de zmeura Pi pentru a controla LED-uri Lumini Caută un proiect ușor de zmeură Pi pentru a începe cu codare și electronice? Încercați să conectați câteva LED-uri și să le codificați pentru a porni și opri! Citește mai mult (opțional)
  5. Un browser a fost conectat la contul dvs. Google.

Notă: Echipamentele pentru acest tutorial pot varia într-o oarecare măsură. Am folosit o cameră Web USB de rezervă exclusiv pentru microfon. Orice cameră Web sau microfon compatibil ar trebui să facă bine și există liste extinse de dispozitive compatibile cu Pi pentru a ajuta.

De asemenea, folosesc ieșirea de 3,5 mm pentru audio. HDMI și alte surse de ieșire vor funcționa, deși vor necesita modificări la configurarea sunetului de mai jos.

Conectați camera web și difuzorul USB și configurați circuitul LED dacă îl utilizați.

Configurarea sunetului

Acest tutorial poate fi urmat direct pe Pi sau printr-o conexiune SSH în Pi.

Ambele căi încep în terminal, pentru a verifica setările de sunet. Utilizați comenzile arecord -l și aplay -l pentru a lista dispozitivele disponibile.

Imaginea de mai sus prezintă camera web USB ca carte 1 și dispozitivul 0. Luați notă de numerele cardului și ale dispozitivului atât pentru ieșirea microfonului, cât și pentru difuzor.

Acum, asigurându - vă că sunteți în / Home / pi director, creați un fișier nou și deschideți-l în nano:

sudo nano .asoundrc

Conținutul acestui director va diferi în funcție de numărul de carduri și de dispozitive pe care îl utilizați. Aici puteți alege să favorizați ieșirea HDMI mai degrabă decât 3,5 mm dacă doriți.

Când ați introdus versiunea dvs. a codului de mai sus, apăsați Ctrl + X pentru a salva și a ieși.

Testați setarea prin înregistrarea și redarea unui clip scurt:

Pasul opțional: Dacă doriți să modificați volumul de intrare al microfonului, deschideți-l alsamixer și apăsați F6 să circule între dispozitive.

Asta e! Sunetul este configurat.

Crearea Proiectului Google

Deschideți browserul lui Pi, alternativ, dacă sunteți conectat prin SSH deschideți un browser local. Navigați la Consola de acțiune Google și faceți clic pe Proiect nou.

Acest lucru poate dura câteva momente. Când ați terminat, lăsați fereastra activă și deschideți o nouă filă - o să ajungem la asta într-o clipă.

Activarea API-ului Google Assistant

Există câteva ajustări online pe care trebuie să le faceți pentru a continua. Navigați la site-ul API Google Assistant și dați clic pe Permite.

Proiectul necesită, de asemenea, permisiuni de activitate. Accesați Panoul de control al activității și asigurați-vă că sunt activate următoarele activități:

  • Activitate Activitate pe Web și în aplicații (inclusiv caseta de selectare Istoricul Chrome)
  • Informatie despre dispozitiv
  • Activitatea voce și audio

Acum puteți trece la înregistrarea dispozitivului.

Înregistrați-vă Zmeura Pi

Înapoi în Consola de acțiune, selectați Înregistrarea dispozitivului din panoul din stânga. Sub Produs creați un nume ușor de memorat pentru dispozitivul dvs. Numele producătorului nu este important (dar trebuie să fie acolo) și selectați Auto pentru tipul de dispozitiv.

Clic Înregistrați modelul, și pe următorul ecran faceți clic pe Descărcați acreditările OAuth 2.0. Acest lucru descarcă un fișier JSON pe computer. Dacă nu sunteți familiarizați cu fișierele JSON, nu vă faceți griji, dar învățați cum să utilizați JSON JSON Python Parsing: Un ghid simplu JSON Python Parsing: Un ghid simplu Există biblioteci și kit-uri disponibile pentru parsarea și generarea JSON de la aproape orice limbă și mediu. Acest articol se concentrează asupra metodelor și a problemelor care rezultă din analiza Python JSON. Citește mai mult merită făcut pentru viitor!

Ghidul Google oficial recomandă mutarea fișierului / Home / pi, deschideți managerul de fișiere și faceți acest lucru acum.

Pas suplimentar pentru utilizatorii SSH:

Dacă utilizați SSH, veți fi descărcat fișierul JSON pe mașina dvs. locală în loc de Pi. Pentru a le transfera, deschideți o fereastră separată a terminalului fără conexiune SSH. Din această fereastră, copiați peste fișierul JSON secret client utilizând următoarea comandă:

scp ~ / Descărcări / client_secret_client-id.json pi @ raspberry-pi-ip-adresa: / home / pi /

A inlocui “zmeura-pi-ip-adresa” cu adresa IP a lui Pi, și nu uitați de colon înainte de cale. Dacă ați descărcat fișierul JSON într-o altă locație, modificați calea locală pentru a reflecta acest lucru. Introduceți parola când vi se solicită, iar fișierul va fi copiat în directorul home al lui Pi.

Reveniți la terminalul SSH și navigați la / Home / pi. introduce ls -l pentru a afișa fișierele din director. Ar trebui să vedeți fișierul JSON secret client transferat.

Instalarea SDK-ului

Google recomandă să lucrezi într-un mediu virtual Python. Creați un nou mediu virtual numit env.

Dacă nu ați mai făcut acest lucru înainte, acest tutorial vă va ajuta să învățați cum să utilizați mediile virtuale Python.

Instalați cele mai recente versiuni de Pip, Setuptools și Wheel și activați mediul virtual:

env / bin / python -m pip instalare - upgrade piu setuptools sursa de roți env / bin / activate

Asistentul Google are câteva dependențe pe care ar trebui să le instalați acum în mediul virtual.

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

În sfârșit, instalați instrumentul Google Assistant SDK, Samples și OAuth.

python -m pip instalare -upgrade google-asistent-library-python -m pip instalare -upgrade google-assistant-sdk [exemple] python -m pip instalare -upgrade google-auth-oauthlib [ 

Acesta este tot ce este necesar pentru a te ridica și a alerga. Dacă una dintre instalații eșuează, verificați temeinic ortografia și distanța.

Autentificarea piurei de zmeură

Folosește google-auth-oauthlib [instrument] cu fișierul JSON de acreditare descărcat mai devreme pentru a vă autentifica Zmeura Pi.

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

Va trebui să înlocuiți YOUR_CLIENT_SECRET_ID cu fișierul descărcat, deci merită să copiați mai întâi numele fișierului. Acest ID client trebuie să fie corect. Nu modificați numele fișierului!

Ar trebui să primiți un mesaj cu un link, cerându-vă să lipiți într-un cod de autorizare.

Dacă faceți clic pe link, se deschide browserul. Vi se va solicita să activați dispozitivul din contul dvs. Google. Copiați codul de autorizare care urmează și inserați-l în fereastra terminalului.

Ar trebui să primiți o citire de confirmare Credite salvate: / home / pi ... , adică Pi a fost autorizat cu succes în contul dvs. Google.

Testează-l

Acum, că totul este în vigoare, este timpul să vă testați asistentul dvs. Pi Google. Rulați asistentul cu această comandă:

googlesamples-asistent-hotword -proiect-id my-dev-proiect -device-model-id modelul meu 

Va trebui să înlocuiți mi-dev-proiect cu ID-ul de proiect (găsit sub rotița Setări a Consolei de acțiune). Ta Dispozitiv-model id este afișat în secțiunea Înregistrarea dispozitivului din Consola de acțiune.

Încearcă! Spune “OK Google” și puneți o întrebare. Puteți vedea ieșirea programului în terminal când auziți răspunsul:

Asta e! Asistentul Google se execută acum pe zmeura dvs. Pi. Rețineți că, dacă volumul de ieșire este puțin scăzut, îl puteți modifica prin a spune “Hei Google, transformați volumul până la 80%.”

Bonus: GPIO activat prin voce

Este posibil să se controleze luminile cu un Arduino și Siri, dar există o metodă mai simplă. Dacă configurați un LED, puteți utiliza Asistentul Google pentru a-l controla cu vocea.

Configurarea Asistentului Google pentru a lucra cu pinii GPIO este relativ simplă, dar necesită câțiva pași suplimentari. Accesați Consola de acțiune Google și găsiți dispozitivul la înregistrarea dispozitivului. Faceți clic pe acesta și deschideți meniul trăsături:

Rotiți OnOff trăi și faceți clic pe Salvați.

Acum, asigurându-vă că vă aflați în interiorul env mediul virtual, clona o versiune a SDK-ului pe Pi folosind git:

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

Deoarece acesta este un mediu virtual, va trebui să instalați RPi.GPIO înainte de a merge mai departe.

instalare pip rpi.gpio 

Acum, navigați la dosarul care conține hotword.py scenariu.

cd asistent-sdk-python / google-asistent-sdk / googlesamples / asistent / bibliotecă 

Modificarea scriptului

Va trebui să adăugați câteva linii în scriptul hotword.py, așa că deschideți-l în editorul nano:

nano hotword.py 

În declarațiile de import, adăugați-vă propriul pentru RPi.GPIO.

importați RPi.GPIO ca GPIO 

Căutați process_event metodă. În linia 66, eliminați sau comentați instrucțiunea de imprimare și adăugați o instrucțiune if pentru a controla LED-ul.

#print ('Do comanda', comanda, 'cu paramuri', str (params)) daca comanda == "action.devices.commands.OnOff": params ['on']: - ')' print ('Led activat') print ('---------------') GPIO.output (18, GPIO.HIGH) altul: print ('---------------') print ('Led dezactivat') print ('---------------') Executarea GPIO (18, GPIO.LOW) 

Această logică controlează LED-ul, dar până acum nu este configurat să emită. Configurați-l în principal() înainte de a fi apelată metoda process_event.

GPIO.setmode (GPIO.BCM) GPIO.setup (18, GPIO.OUT, inițial = GPIO.LOW) 

Acum PIN-ul GPIO este setat la ieșire și inițializează într-o stare redusă. Salvează și închide. Puteți rula scriptul modificat prin introducerea numărului de identificare al modelului dvs. (găsit în Consola de acțiune) ca argument.

python hotword.py --device-model-id MODUL DE IDENTIFICARE-AICI 

Ieșirea terminalelor este aceeași ca înainte, iar asistentul va funcționa ca standard. Acum, însă, atunci când spui “OK Google, porniți” veți vedea o nouă ieșire:

Notă: Imaginea de mai sus a fost tăiată, arătând doar asistentul ascultarea cererii și instrucțiunea de imprimare adăugată la scenariu.

Ar trebui să vă vedeți și LED-ul!

Propriul tău DIY Zmeură Pi Asistentul de acasă Google

Acest proiect reprezintă o bună introducere în utilizarea serviciilor Google API. Modificarea codului exemplu Google vă ajută, de asemenea, să învățați elementele de bază ale programului Python.

Cu acest tutorial ca bază, puteți conecta Asistentul PI la alte proiecte DIY Raspberry Pi Proiecte Raspberry Pi pentru începători Proiectele Raspberry Pi pentru începători Aceste 10 proiecte Raspberry Pi pentru începători sunt excelente pentru a obține o introducere în hardware și software capabilitățile Pi, și te va ajuta să te ridici și să fugi în cel mai scurt timp! Citiți mai multe și construiți-vă o locuință inteligentă activată prin voce!

Explorați mai multe despre: Tutoriale de proiect DIY, Asistent Google, Lumini LED, Zmeură Pi, Huburi inteligente.