So bauen Sie einen DIY-Google-Home-Assistenten mit Raspberry Pi
Sprachgesteuerte Assistenten sind schnell alltäglich geworden. Viele Häuser verfügen über ein Alexa oder Google Home, das alles von der Beleuchtung über die Medien bis hin zur Zeitmessung steuert.
Die Technologie, auf der diese Geräte laufen, ist - zumindest teilweise - für jeden verfügbar. Mit dem Assistant SDK von Google können Sie den Dienst auf Ihren eigenen Geräten verwenden. In diesem Lernprogramm wird beschrieben, wie Sie den Google Assistant auf Ihrem Raspberry Pi einrichten und eine LED per GPIO-Pins aktivieren.
Erforderliche Hardware für einen Raspberry Pi Home Assistant
Du wirst brauchen:
- Raspberry Pi mit einer neuen Raspbian-Installation auf der SD-Karte So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Im Folgenden wird beschrieben, wie Sie ein neues Betriebssystem auf Ihrem Pi installieren und ausführen können - und wie Sie Ihr perfektes Setup für schnelle Notfallwiederherstellung. Weiterlesen .
- USB-Webcam oder Mikrofon.
- Externer Lautsprecher.
- Schaltung aus dem Pi-LED-Tutorial So programmieren Sie Ihren Raspberry Pi zur Steuerung von LED-Leuchten So programmieren Sie Ihren Raspberry Pi zur Steuerung von LED-Leuchten Suchen Sie nach einem einfachen Raspberry Pi-Projekt, um mit Kodierung und Elektronik zu beginnen? Versuchen Sie, einige LEDs anzuschließen und zum Ein- und Ausschalten zu codieren! Lesen Sie mehr (optional)
- Ein in Ihrem Google-Konto registrierter Browser.
Hinweis: Die Ausrüstung für dieses Tutorial kann etwas variieren. Ich habe eine Ersatz-USB-Webcam ausschließlich für das Mikrofon verwendet. Alle kompatiblen Webcams oder Mikrofone sollten funktionieren, und es gibt umfangreiche Listen mit Pi-kompatiblen Geräten, die dabei helfen.
Außerdem verwende ich den 3,5-mm-Ausgang für Audio. HDMI und andere Ausgabequellen funktionieren ebenfalls, allerdings sind Änderungen am Sound-Setup erforderlich.
Schließen Sie die USB-Webcam und den Lautsprecher an und richten Sie die LED-Schaltung ein, wenn Sie sie verwenden.
Ton einstellen
Dieses Tutorial kann direkt am Pi oder über eine SSH-Verbindung in das Pi verfolgt werden.
Beide Möglichkeiten beginnen im Terminal, um die Toneinstellungen zu überprüfen. Verwenden Sie die Befehle Arecord -l und aplay -l verfügbare Geräte auflisten.
Das Bild oben zeigt die USB-Webcam als Karte 1 und Gerät 0. Notieren Sie sich die Karten- und Gerätenummern für die Mikrofon- und Lautsprecherausgabe.
Stellen Sie jetzt sicher, dass Sie sich in der / home / pi Erstellen Sie eine neue Datei und öffnen Sie sie in nano:
Sudo Nano .asoundrc
Der Inhalt dieses Verzeichnisses hängt von den verwendeten Karten- und Gerätenummern ab. Hier können Sie den HDMI-Ausgang anstelle von 3,5 mm bevorzugen, wenn Sie dies wünschen.
Wenn Sie Ihre Version des obigen Codes eingegeben haben, drücken Sie Strg + X zu speichern und zu beenden.
Testen Sie Ihr Setup, indem Sie einen kurzen Clip aufnehmen und wiedergeben:
Optionaler Schritt: Wenn Sie die Eingangslautstärke Ihres Mikrofons ändern möchten, öffnen Sie alsamixer und drücke F6 zwischen Geräten wechseln.
Das ist es! Der Ton ist eingerichtet.
Google-Projekt erstellen
Öffnen Sie den Browser des Pi. Alternativ, wenn Sie über SSH verbunden sind, öffnen Sie einen Browser lokal. Navigieren Sie zur Google Action Console und klicken Sie auf Neues Projekt.
Dies kann einige Momente dauern. Wenn Sie fertig sind, lassen Sie das Fenster aktiv und öffnen Sie eine neue Registerkarte. Wir werden in Kürze darauf zurückkommen.
Aktivieren der Google Assistant-API
Sie müssen einige Online-Anpassungen vornehmen, um fortfahren zu können. Navigieren Sie zur Google Assistant API-Website und klicken Sie auf Aktivieren.
Das Projekt erfordert auch Aktivitätsberechtigungen. Gehen Sie zu Ihrem Aktivitätssteuerungsfeld und stellen Sie sicher, dass die folgenden Aktivitäten aktiviert sind:
- Web- und App-Aktivität (einschließlich Kontrollkästchen für das Chrome-Protokoll)
- Geräteinformation
- Sprach- und Audioaktivität
Nun können Sie das Gerät registrieren.
Registrieren Ihres Raspberry Pi
Wählen Sie in der Aktionskonsole die Option aus Geräteregistrierung aus dem linken Feld. Unter Produkt Erstellen Sie einen leicht zu merkenden Namen für Ihr Gerät. Der Herstellername ist nicht wichtig (muss aber dort sein) und wählen Sie aus Auto für den Gerätetyp.
Klicken Modell registrieren, und auf dem nächsten Bildschirm klicken Laden Sie die OAuth 2.0-Anmeldeinformationen herunter. Dadurch wird eine JSON-Datei auf Ihren Computer heruntergeladen. Wenn Sie sich mit JSON-Dateien nicht auskennen, machen Sie sich keine Sorgen, aber Sie lernen, wie man JSON-JSON-Python-Analyse verwendet: Eine einfache Anleitung JSON-Python-Analyse: Eine einfache Anleitung Es gibt Bibliotheken und Toolkits für die Analyse und Generierung von JSON jede Sprache und Umgebung. Dieser Artikel konzentriert sich auf Methoden und Probleme, die sich aus der Analyse von JSON-Python ergeben. Mehr lesen lohnt sich für die Zukunft!
Der offizielle Google-Führer empfiehlt, die Datei in zu verschieben / home / pi, Öffnen Sie also den Dateimanager und machen Sie das jetzt.
Zusätzlicher Schritt für SSH-Benutzer:
Wenn Sie SSH verwenden, haben Sie die JSON-Datei anstelle des Pi auf Ihre lokale Maschine heruntergeladen. Öffnen Sie zum Übertragen ein separates Terminalfenster ohne SSH-Verbindung. Kopieren Sie in diesem Fenster die geheime JSON-Datei des Clients mit folgendem Befehl:
scp ~ / downloads / client_secret_client-id.json pi @ raspberry-pi-ip-adresse: / home / pi /
Ersetzen “Himbeer-Pi-IP-Adresse” mit der IP-Adresse Ihres Pi, und vergessen Sie nicht den Doppelpunkt vor dem Pfad. Wenn Sie die JSON-Datei an einen anderen Speicherort heruntergeladen haben, ändern Sie Ihren lokalen Pfad entsprechend. Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden, und die Datei wird in das Home-Verzeichnis des Pi kopiert.
Wechseln Sie wieder zum SSH-Terminal und navigieren Sie zu / home / pi. Eingeben ls -l um die Dateien im Verzeichnis aufzulisten. Sie sollten die übertragene geheime JSON-Datei des Clients sehen.
SDK installieren
Google empfiehlt, in einer virtuellen Python-Umgebung zu arbeiten. Erstellen Sie eine neue virtuelle Umgebung mit dem Namen env.
Wenn Sie dies noch nie getan haben, lernen Sie in diesem Lernprogramm die Verwendung von virtuellen Python-Umgebungen kennen.
Installieren Sie die neuesten Versionen von Pip, Setuptools und Wheel und aktivieren Sie Ihre virtuelle Umgebung:
env / bin / python -m pip install --Upgrade pip setuptools-Radquelle env / bin / enable
Google Assistant hat einige Abhängigkeiten, die Sie jetzt in der virtuellen Umgebung installieren sollten.
sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev
Installieren Sie schließlich das Google Assistant-SDK, die Beispiele und das OAuth-Tool.
python -m pip install - Aktualisierung google-assistant-library python -m pip installieren --upgrade google-assistant-sdk [Beispiele] python -m pip installieren --upgrade google-auth-oauthlib [tool]
Das ist alles, um loszulegen. Wenn eine der Installationen fehlschlägt, überprüfen Sie die Rechtschreibung und den Abstand gründlich.
Authentifizierung des Raspberry Pi
Verwenden Sie die google-auth-oauthlib [tool] mit der JSON-Datei mit den Anmeldeinformationen, die Sie zuvor heruntergeladen haben, um Ihren Raspberry Pi zu authentifizieren.
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
Sie müssen YOUR_CLIENT_SECRET_ID durch die heruntergeladene Datei ersetzen, so dass es sich lohnt, zuerst den Dateinamen zu kopieren. Diese Client-ID muss korrekt sein. Ändern Sie den Dateinamen nicht!
Sie sollten eine Nachricht mit einem Link erhalten, in der Sie aufgefordert werden, einen Autorisierungscode einzufügen.
Durch Klicken auf den Link wird der Browser geöffnet. Sie werden aufgefordert, das Gerät in Ihrem Google-Konto zu aktivieren. Kopieren Sie den folgenden Autorisierungscode und fügen Sie ihn wieder in Ihr Terminalfenster ein.
Sie sollten eine Bestätigungsmeldung erhalten Gespeicherte Anmeldeinformationen: / home / pi… , Dies bedeutet, dass das Pi erfolgreich mit Ihrem Google-Konto autorisiert wurde.
Testen Sie es heraus
Nachdem nun alles vorhanden ist, können Sie Ihren Pi Google Assistant testen. Führen Sie den Assistenten mit diesem Befehl aus:
googlesamples-assistant-hotword --project-id mein-dev-projekt --device-model-id mein-modell
Sie müssen ersetzen mein-dev-Projekt mit Ihrer Projekt-ID (unter dem Einstellrad Einstellungen der Aktionskonsole). Ihre Geräte-Modell-ID ist im Abschnitt Geräteregistrierung der Action Console aufgeführt.
Versuch es! Sagen “OK Google” und eine Frage stellen. Sie können die Programmausgabe im Terminal sehen, wenn Sie die Antwort hören:
Das ist es! Google Assistant läuft jetzt auf Ihrem Raspberry Pi. Wenn die Ausgangslautstärke etwas zu niedrig ist, können Sie sie mit den Worten ändern “Hallo Google, erhöhen Sie Ihre Lautstärke auf 80%.”
Bonus: Sprachaktiviertes GPIO
Es ist möglich, die Lichter mit einem Arduino und Siri zu steuern, es gibt jedoch eine einfachere Methode. Wenn Sie eine LED einrichten, können Sie den Google Assistant verwenden, um diese mit Ihrer Stimme zu steuern.
Das Einrichten von Google Assistant für die Arbeit mit den GPIO-Pins ist relativ einfach, erfordert jedoch einige zusätzliche Schritte. Gehen Sie zur Google Action Console und suchen Sie Ihr Gerät unter Geräteregistrierung. Klicken Sie darauf und öffnen Sie das Eigenschaften-Menü:
Drehe die An aus Klicken Sie auf sparen.
Stellen Sie jetzt sicher, dass Sie sich im Inneren befinden env In einer virtuellen Umgebung müssen Sie eine Version des SDK mit git auf Ihren Pi klonen:
Git Klon https://github.com/googlesamples/assistant-sdk-python
Da dies eine virtuelle Umgebung ist, müssen Sie RPi.GPIO installieren, bevor Sie fortfahren.
pip install rpi.gpio
Navigieren Sie nun zu dem Ordner, der die enthält hotword.py Skript.
cd assistant-sdk-python / google-assistant-sdk / googlesamples / assistent / bibliothek
Ändern des Skripts
Sie müssen dem Script hotword.py ein paar Zeilen hinzufügen, öffnen Sie es also im Nano-Editor:
nano hotword.py
Fügen Sie unter den Importanweisungen Ihre eigenen für RPi.GPIO hinzu.
Importiere RPi.GPIO als GPIO
Suche nach process_event Methode. Entfernen Sie in Zeile 66 die print-Anweisung oder kommentieren Sie sie aus und fügen Sie eine if-Anweisung hinzu, um die LED zu steuern.
#print ('do command', command, 'with params', str (params)) if command == "action.devices.commands.OnOff": if params ['on']: print ('----- ---------- ') print (' Led eingeschaltet ') print (' --------------- ') GPIO.output (18, GPIO.HIGH) sonst: drucken ('---------------') drucken ('Led ausgeschaltet') drucken ('---------------') GPIO.output (18, GPIO.LOW)
Diese Logik steuert die LED, ist jedoch bisher nicht für die Ausgabe konfiguriert. Richten Sie es im ein Main() function, bevor die Methode process_event aufgerufen wird.
GPIO.setmode (GPIO.BCM) GPIO.setup (18, GPIO.OUT, initial = GPIO.LOW)
Jetzt ist der GPIO-Pin so eingestellt, dass er im niedrigen Zustand ausgegeben wird. Speichern und Beenden. Sie können Ihr modifiziertes Skript ausführen, indem Sie Ihre Modell-ID-Nummer (in der Action Console) als Argument übergeben.
python hotword.py --device-model-id IHRE MODEL-ID-HERE
Die Terminalausgabe ist die gleiche wie zuvor und der Assistent arbeitet standardmäßig. Nun aber, wenn du sagst “OK, Google, einschalten” Sie sehen eine neue Ausgabe:
Hinweis: Das obige Bild wurde abgeschnitten. Es wurde nur der Assistent angezeigt, der die Anforderung hörte, und die Druckanweisung wurde dem Skript hinzugefügt.
Sie sollten auch Ihre LED leuchten sehen!
Ihr eigener DIY Raspberry Pi Google Home-Assistent
Dieses Projekt ist eine gute Einführung in die Verwendung von Google API-Diensten. Das Ändern des Beispielcodes von Google hilft auch beim Erlernen der Grundlagen von Python.
Mit diesem Tutorial können Sie den PI Assistant mit anderen DIY Raspberry Pi-Projekten verknüpfen. Raspberry Pi-Projekte für Anfänger. Raspberry Pi-Projekten für Anfänger Pi, und wird Ihnen helfen, in kürzester Zeit loszulegen! Lesen Sie mehr und bauen Sie sich ein sprachaktiviertes Smart Home!
Erfahren Sie mehr über: DIY-Projekt-Tutorials, Google Assistant, LED-Lichter, Raspberry Pi, Smart Hubs.