Inhoudsopgave:

Pi Home, een door Raspberry aangedreven virtuele assistent - Ajarnpa
Pi Home, een door Raspberry aangedreven virtuele assistent - Ajarnpa

Video: Pi Home, een door Raspberry aangedreven virtuele assistent - Ajarnpa

Video: Pi Home, een door Raspberry aangedreven virtuele assistent - Ajarnpa
Video: Home Assistant Setup Made Easy: The Ultimate Guide 2024, November
Anonim
Pi Home, een door Raspberry aangedreven virtuele assistent
Pi Home, een door Raspberry aangedreven virtuele assistent

De Google Home is handig om overal in huis te hebben. Het is een prachtig apparaat met ingebouwde Google Assistant - een ultramoderne digitale persoonlijke assistent van Google. Het kan media afspelen, je herinneringen en notities opslaan, je de lengte van je woon-werkverkeer vertellen, domotica doen. Het kan overal in je huis worden geplaatst en het zal een aantal geweldige dingen voor je doen, maar het is een dure aangelegenheid als je ' weet niet zeker of je het zult gebruiken. Maar goed nieuws, je kunt een volledig functionele maken met een Raspberry Pi.

Aan het einde van deze handleiding heb je een volledig functionerende Google Home die reageert op je spraakopdrachten. Anders is het een Assistent met alle functies van Google Home. Wat betekent dat het eenheidsconversies kan doen, media kan afspelen, scores kan controleren, audioboeken kan voorlezen, het weer kan controleren en nog veel meer. Het werkt ook met een verscheidenheid aan domotica-apparaten zoals slimme gloeilampen, zodat u ze met uw stem kunt bedienen. Net als de echte Google Assistent, kan je doe-het-zelf Google Home worden gekoppeld om meer functies toe te voegen, zoals het toevoegen van taken aan Evernote of om een melding op je telefoon te krijgen wanneer de timer afgaat.

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt

Je hebt nodig:

  • Raspberry Pi 3 of 2 met Raspbian geïnstalleerd en wifi-installatie.
  • Voeding en MicroUSB-voedingskabel. (Minimaal 5V, 2A)
  • Micro SD kaart. (Minimaal 8 GB)
  • Een USB-microfoon. (Je krijgt veel informatie over hoe je via internet kunt instellen, ook hier …)
  • Sprekers
  • Een toetsenbord en een muis voor installatie
  • Een LED en een paar draden om aan te sluiten

Alle dingen verzameld, aangesloten en aangesloten, laten we beginnen.

Stap 2: USB-microfoon instellen

USB-microfoon instellen
USB-microfoon instellen
  • De Pi heeft geen ingebouwde microfoons. U moet een USB-microfoon aansluiten als u audio wilt opnemen.
  • Sluit uw USB-microfoon aan op een van de USB-slots van uw Pi.
  • Typ de volgende opdracht in de terminal.

een record -l

Met deze opdracht worden alle beschikbare audio-opnameapparaten weergegeven. Het is leeg als uw USB-microfoon is aangesloten. Je zou de volgende output moeten krijgen

pi@raspberrypi:~ $ arecord -l

**** Lijst met CAPTURE-hardwareapparaten **** kaart 1: apparaat [USB PnP-geluidsapparaat], apparaat 0: USB-audio [USB-audio] Subapparaten: subapparaat #0: subapparaat #0

U kunt zien dat uw USB-apparaat is aangesloten op kaart 1 en de apparaat-id is 0. Raspberry Pi herkent kaart 0 als de interne geluidskaart, dat wil zeggen bcm2835 en andere externe geluidskaarten als externe geluidskaarten met de naam kaart 1, kaart 2 en volgend op…

Nu moeten we de audioconfiguraties wijzigen. Typ de volgende opdracht om het bestand asound.conf te bewerken

sudo nano /etc/asound.conf

Voeg onderstaande regels toe aan het bestand. Druk vervolgens op Ctrl+X en daarna op Y om het bestand op te slaan

pcm.!standaard {

type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:1, 0" } } pcm.speaker { type hw-kaart 0} ctl.!default { type hw-kaart 0 }

Hiermee stelt u uw externe microfoon (pcm.mic) in als het audio-opnameapparaat (pcm!.default) en uw ingebouwde geluidskaart (kaart 0) als het luidsprekerapparaat.

Maak een nieuw bestand met de naam.asoundrc in de thuismap (/home/pi) door het volgende commando uit te voeren en de bovenstaande configuraties (die zijn toegevoegd in het bestand /etc/asound.conf.) in dit bestand te plakken

sudo nano.asoundrc.

Stap 3: Uw luidsprekeruitgang instellen

Uw luidsprekeruitgang instellen
Uw luidsprekeruitgang instellen
  • Sluit je speaker aan op de 3,5 mm koptelefoonaansluiting van de Raspberry Pi.
  • Voer onderstaande opdracht uit om het configuratiescherm van de pi te openen.

sudo raspi-config

Ga naar Geavanceerde opties > Audio en selecteer het uitvoerapparaat. (3,5 mm-aansluiting of HDMI)

Stap 4: Test de microfoon en luidsprekers

Test de microfoon en luidsprekers
Test de microfoon en luidsprekers

Voer de volgende opdracht in de terminal uit om uw luidspreker te testen. Hierdoor wordt een testgeluid afgespeeld. Druk op Ctrl+C om af te sluiten. Als u het testgeluid niet kunt horen, controleer dan uw luidsprekeraansluiting en voeding. De test klinkt als-

Linksvoor, Rechtsvoor

luidsprekertest -t wav

Voer de volgende opdracht uit om uw microfoon te testen. Hiermee wordt een korte audioclip van 5 seconden opgenomen. Als u een fout krijgt, controleert u de vorige stappen opnieuw

arecord --format=S16_LE --duration=5 --rate=16k --file-type=raw out.raw

Speel de opgenomen audio af en bevestig dat alles goed werkt door de volgende opdracht te typen

aplay --format=S16_LE --rate=16k out.raw

Onze hardware is ingesteld

Stap 5: Download de vereiste pakketten en configureer de Python-omgeving:

Download de vereiste pakketten en configureer de Python-omgeving
Download de vereiste pakketten en configureer de Python-omgeving

Werk eerst uw besturingssysteem bij door de opdrachten één voor één in de terminal uit te voeren

sudo apt-get update

sudo apt-get upgrade

Als u de opdrachten één voor één in de terminal uitvoert, wordt een Python 3-omgeving (de Google Assistent-bibliotheek werkt alleen op Python 3) in uw Pi gemaakt en worden de vereiste items geïnstalleerd

sudo apt-get install python3-dev python3-venv

$ python3 -m venv env $ env/bin/python -m pip install --upgrade pip setuptools

Activeer de python-omgeving. Dit zal een " (env)" tekst voor de opdrachtterminal van je Pi brengen

bron env/bin/activeren

Installeer het Google Assistant SDK-pakket, dat alle code bevat die nodig is om de Google Assistant op de Pi uit te voeren. Het zou de Google Assistent-bibliotheek en de betekenis moeten downloaden

python -m pip install --upgrade google-assistant-library

Stap 6: Het Google Assistant Cloud Project inschakelen

Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
Het Google Assistant Cloud-project inschakelen
  • Open de Google Cloud Console en maak een nieuw project aan. (Noem het maar wat.) Het account waarmee u zich aanmeldt, wordt gebruikt om vragen naar de Google Assistent te sturen en uw persoonlijke reactie te krijgen.
  • Ga naar API-manager en schakel de Google Assistant API in.
  • Zorg ervoor dat u Web- en app-activiteit, Apparaatinformatie en Spraak- en audioactiviteit in Activiteitsbeheer voor het account inschakelt.
  • Ga naar "Inloggegevens" en stel het OAuth-inhoudsscherm in.
  • Ga naar het tabblad "Inloggegevens" en maak een nieuwe OAuth-client-ID
  • Selecteer het toepassingstype als "Overig" en geef de naam van de sleutel op.
  • Download het JSON-bestand waarin de OAuth-sleutelgegevens zijn opgeslagen en bewaar het.

Stap 7: Authenticatie van de Raspberry Pi

Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi
Authenticatie van de Raspberry Pi

Installeer de autorisatietool door het onderstaande commando uit te voeren

(env) python -m pip install --upgrade google-auth-oauthlib[tool]

Voer het hulpprogramma uit door de volgende opdracht uit te voeren. Zorg ervoor dat u het juiste pad opgeeft voor het JSON-bestand dat u in stap 6 hebt gedownload

(env) google-oauthlib-tool --client-secrets "JSON_FILE_PATH" --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

Het zou moeten worden weergegeven zoals hieronder wordt weergegeven. Kopieer de URL en plak deze in een browser. Als in plaats daarvan wordt weergegeven:

OngeldigeGrantFout

dan is er een ongeldige code ingevoerd. Probeer het opnieuw.

Ga naar deze URL:

Vul de autorisatiecode in:

Stap 8: De LED-indicator instellen

De LED-indicator instellen
De LED-indicator instellen
  • Sluit uw LED aan tussen GPIO pin 25 en aarde.
  • We gaan de GPIO-pin 25 instellen als de output-pin.
  • Google Assistant SDK biedt een callback EventType. ON_CONVERSATION_TURN_STARTED wanneer de conversie met de Google Assistant begint. Op dat moment gaan we de GPIO 25 instellen om de LED te laten gloeien.
  • Wanneer het gesprek wordt beëindigd, wordt EventType. ON_CONVERSATION_TURN_FINISHED teruggebeld. Op dat moment zullen we de GPIO 25 resetten om de LED uit te schakelen.

Stap 9: Initialiseren bij opstarten voltooid:

Initialiseren bij opstarten voltooid
Initialiseren bij opstarten voltooid
  • Telkens wanneer je Pi klaar is met opstarten, voeren we een python-script uit dat de Google Assistent bij het opstarten zal verifiëren en introduceren.
  • Voeg eerst het RPi. GPIO-pakket toe om GPIO-ondersteuning toe te voegen met behulp van de volgende opdracht.

pip installeer RPi. GPIO

Voer de stappen één voor één uit. Ga naar de gebruikersmap. Maak een nieuw python-bestand main.py

cd /home/pi

sudo nano main.py

Schrijf het gekoppelde script en sla het bestand op

Maak nu één shellscript dat de Google Assistent initialiseert en uitvoert

sudo nano google-assistant-init.sh

Plak onderstaande regels in het bestand en sla het bestand op

#!/bin/sh

/home/pi/env/bin/python3 -u /home/pi/main.py

Verleen de uitvoeringsmachtiging

sudo chmod +x google-assistent-init.sh

U kunt google-assistant-init.sh uitvoeren om de Google Assistent op elk moment te starten.

Stap 10: De Google Assistent starten tijdens het opstarten

De Google Assistent starten tijdens het opstarten
De Google Assistent starten tijdens het opstarten

Er zijn twee manieren om Google Assistant on Boot in te schakelen. Laten we ze allemaal bekijken

1. Autostart met Pixel Desktop bij opstarten:

  • Hiermee wordt de Google Assistent gestart zodra de Pixel-desktop opstart. Zorg ervoor dat u "Desktop" -opstart hebt geselecteerd in Raspberry Pi-configuraties.
  • Typ onderstaande opdracht.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

Voeg het volgende toe na @xscreensaver -no-splash

@lxterminal -e "/home/pi/google-assistant-init.sh"

Opslaan en afsluiten door op "Ctrl + X" en vervolgens op "Y

2. Autostart met CLI bij opstarten: (ik heb dit persoonlijk gebruikt, hoewel autostart prima werkt.)

  • Hiermee wordt de Google Assistent gestart als u CLI-opstart hebt ingesteld. Zorg ervoor dat u "CLI" -opstart hebt geselecteerd in Raspberry Pi-configuraties.
  • Typ onderstaande opdracht.

sudo nano /etc/profile

Voeg onderstaande regel toe aan het einde van het bestand

sudo /home/pi/google-assistant-init.sh

Opslaan en afsluiten door op "Ctrl+X" en vervolgens op "Y" te drukken

Stap 11: Conclusie

Conclusie
Conclusie

Wat is er precies anders aan deze Home Pi? Niets, behalve onkosten. Het eindresultaat is in principe hetzelfde, je kunt je DIY Google Home activeren door het wake-woord "Ok Google/ Hey Google" te zeggen en het apparaat werkt net als een echte Assistent. Je kunt veel dagelijkse activiteiten doen met je Google Home. Als u uw aangepaste taken wilt uitvoeren, zoals het licht uitdoen, de deur controleren, kunt u dit doen door Google Actions te integreren in uw Google Assistent. Als je problemen hebt met het starten van de Google Assistent, laat dan hieronder een reactie achter. Ik zal proberen ze zo goed mogelijk op te lossen.

Aanbevolen: