Vous souhaitez créer votre propre hub domotique à commande vocale?  Voici comment utiliser Google Assistant avec un Raspberry Pi!

Comment créer un assistant domestique Google avec DIY Raspberry Pi

Publicité Les assistants à commande vocale sont rapidement devenus monnaie courante. Dans de nombreuses maisons, Alexa ou Google Home contrôlent tout, de l’éclairage aux médias, en passant par le chronométrage. La technologie sur laquelle ces périphériques fonctionnent est disponible, au moins en partie, pour tout le monde. L'as

Publicité

Les assistants à commande vocale sont rapidement devenus monnaie courante. Dans de nombreuses maisons, Alexa ou Google Home contrôlent tout, de l’éclairage aux médias, en passant par le chronométrage.

La technologie sur laquelle ces périphériques fonctionnent est disponible, au moins en partie, pour tout le monde. L'assistant SDK de Google vous permet d'utiliser le service sur vos propres appareils. Ce didacticiel explique comment configurer l'Assistant Google sur votre Raspberry Pi et comment activer vocalement un voyant via des broches GPIO.

Matériel requis pour un assistant domestique Raspberry Pi

Raspberry Pi Google Assistant Equipement Requis

Tu auras besoin de:

  1. Raspberry Pi avec une nouvelle installation de Raspbian sur la carte SD Comment installer un système d'exploitation sur un Raspberry Pi Comment installer un système d'exploitation sur un Raspberry Pi Voici comment installer un système d'exploitation sur votre Raspberry Pi et comment cloner rapidement votre configuration idéale reprise après sinistre. Lire la suite .
  2. Webcam ou microphone USB.
  3. Haut-parleur externe.
  4. Comment programmer votre Raspberry Pi pour contrôler les lumières LED Comment programmer votre Raspberry Pi pour contrôler les lumières LED Vous cherchez un projet simple pour Raspberry Pi qui vous permettra de vous initier au codage et à l’électronique? Essayez de connecter des voyants et de les coder pour les allumer et les éteindre! Lire plus (optionnel)
  5. Un navigateur connecté à votre compte Google.

Remarque: l'équipement de ce didacticiel peut varier légèrement. J'ai utilisé une webcam USB de rechange uniquement pour son microphone. Toute webcam ou microphone compatible devrait bien fonctionner, et de nombreuses listes d’appareils compatibles Pi peuvent vous aider.

En outre, j'utilise la sortie 3, 5 mm pour l'audio. HDMI et les autres sources de sortie fonctionneront également, bien que des modifications soient nécessaires dans la configuration du son ci-dessous.

Branchez la webcam USB et le haut-parleur, et configurez le circuit de voyants si vous l'utilisez.

Mise en place du son

Ce tutoriel peut être suivi directement sur le Pi ou via une connexion SSH dans le Pi.

Les deux manières commencent dans le terminal, pour vérifier les réglages du son. Utilisez les commandes arecord -l et aplay -l pour répertorier les périphériques disponibles.

Vérifier les appareils de lecture et d’enregistrement

L'image ci-dessus montre la webcam USB en tant que carte 1 et périphérique 0 . Prenez note des numéros de carte et de périphérique pour la sortie microphone et haut-parleur.

Maintenant, en vous assurant que vous êtes dans le répertoire / home / pi, créez un nouveau fichier et ouvrez-le dans nano:

 sudo nano .asoundrc 

Le contenu de ce répertoire sera différent selon les numéros de carte et de périphérique que vous utilisez. C’est là que vous pouvez choisir de privilégier la sortie HDMI au lieu de 3, 5 mm si vous le souhaitez.

Fichier de configuration asoundrec pour microphone et haut-parleur

Lorsque vous avez entré votre version du code ci-dessus, appuyez sur Ctrl + X pour enregistrer et quitter.

Testez votre configuration en enregistrant et en lisant un court extrait:

Faites un test d'enregistrement pour vérifier votre configuration

Étape facultative: Si vous souhaitez modifier le volume d'entrée de votre microphone, ouvrez alsamixer et appuyez sur F6 pour passer d'un appareil à l'autre.

C'est ça! Le son est mis en place.

Création du projet Google

Ouvrez alternativement le navigateur du Pi, si vous êtes connecté via SSH, ouvrez un navigateur localement. Accédez à la console d’action Google, puis cliquez sur Nouveau projet .

Créer un nouveau projet Google

Ceci peut prendre un certain temps. Lorsque vous avez terminé, laissez la fenêtre active et ouvrez un nouvel onglet. Nous y arriverons dans un instant.

Activation de l'API Google Assistant

Vous devez effectuer quelques ajustements en ligne pour continuer. Accédez au site Web de l'API Google Assistant et cliquez sur Activer .

Activer l'API Google Assistant

Le projet nécessite également des autorisations d'activité. Accédez au panneau de contrôle d'activité et assurez-vous que les activités suivantes sont activées:

  • Activité Web et d'application (avec case à cocher Historique Chrome)
  • Informations sur le périphérique
  • Activité vocale et audio

Modification des paramètres de Google Activity

Vous pouvez maintenant passer à l'enregistrement de l'appareil.

Enregistrement de votre Raspberry Pi

De retour dans la Console d'actions, sélectionnez Enregistrement du périphérique dans le panneau de gauche. Sous Produit, créez un nom facile à retenir pour votre appareil. Le nom du fabricant n’est pas important (mais doit être présent) et sélectionnez Auto pour le type de périphérique.

Enregistrez votre Pi en tant que modèle

Cliquez sur Enregistrer le modèle, puis sur l'écran suivant, cliquez sur Télécharger les informations d'identification OAuth 2.0 . Cela télécharge un fichier JSON sur votre ordinateur. Si vous n'êtes pas familier avec les fichiers JSON, ne vous inquiétez pas, mais apprenez à utiliser JSON Analyse JSON JSON Python: un guide simple Analyse JSON Python: un guide simple Il existe des bibliothèques et des kits d'outils disponibles pour analyser et générer du JSON depuis n'importe quelle langue et environnement. Cet article se concentre sur les méthodes et les problèmes liés à l'analyse syntaxique JSON python. Lire plus vaut la peine d'être fait pour l'avenir!

Le guide officiel de Google recommande de déplacer le fichier vers / home / pi, ouvrez donc le gestionnaire de fichiers et faites-le maintenant.

Étape supplémentaire pour les utilisateurs SSH:

Si vous utilisez SSH, vous aurez téléchargé le fichier JSON sur votre ordinateur local au lieu du Pi. Pour le transférer, ouvrez une fenêtre de terminal séparée sans connexion SSH. Depuis cette fenêtre, copiez le fichier JSON secret du client à l’aide de cette commande:

 scp ~/Downloads/client_secret_client-id.json :/home/pi/ 

Remplacez «raspberry-pi-ip-address» par l'adresse IP de votre Pi et n'oubliez pas les deux points avant le chemin. Si vous avez téléchargé le fichier JSON à un autre emplacement, modifiez votre chemin local pour en tenir compte. Entrez votre mot de passe lorsque vous y êtes invité, et le fichier sera copié dans le répertoire de base du Pi.

Copier l'ID de client secret sur le PI

Revenez au terminal SSH et accédez à / home / pi . Entrez ls -l pour répertorier les fichiers du répertoire. Vous devriez voir le fichier JSON secret du client transféré.

Installer le SDK

Google recommande de travailler dans un environnement virtuel Python. Créez un nouvel environnement virtuel appelé env .

Si vous ne l'avez jamais fait auparavant, ce didacticiel vous aidera à apprendre à utiliser les environnements virtuels Python.

Installez les dernières versions de Pip, Setuptools et Wheel et activez votre environnement virtuel:

 env/bin/python -m pip install --upgrade pip setuptools wheel source env/bin/activate 

L’assistant Google contient des dépendances que vous devez installer dans l’environnement virtuel maintenant.

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

Enfin, installez l'outil Google Assistant SDK, Samples et OAuth.

 python -m pip install --upgrade google-assistant-library python -m pip install --upgrade google-assistant-sdk[samples] python -m pip install --upgrade google-auth-oauthlib[tool] 

C'est tout ce qu'il faut pour être opérationnel. Si l’une des installations échoue, vérifiez l’orthographe et l’espacement.

Authentification du Raspberry Pi

Utilisez l' outil [google-auth-oauthlib] avec le fichier JSON d'informations d'identification téléchargé précédemment pour authentifier votre Raspberry Pi.

 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 

Vous devrez remplacer YOUR_CLIENT_SECRET_ID par le fichier téléchargé. Il est donc intéressant de copier le nom de fichier en premier. Cet ID client doit être correct. Ne changez pas le nom du fichier!

Vous devriez recevoir un message avec un lien vous demandant de coller un code d'autorisation.

Générer le lien d'autorisation à partir de la ligne de commande.

En cliquant sur le lien ouvre le navigateur. Vous serez invité à activer l'appareil sur votre compte Google. Copiez le code d'autorisation qui suit et collez-le dans la fenêtre de votre terminal.

Vous devriez recevoir une confirmation indiquant que les informations d'identification ont été sauvegardées: / home / pi…, ce qui signifie que le Pi a été autorisé avec succès avec votre compte Google.

Le tester

Maintenant que tout est en place, il est temps de tester votre assistant Google Pi. Exécutez l'assistant avec cette commande:

 googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model 

Vous devrez remplacer my-dev-project par votre ID de projet (situé sous l'engrenage Settings de la console d'actions). Votre identifiant de modèle de périphérique est répertorié dans la section Enregistrement de périphérique de la Console d'actions.

Essaye le! Dites «OK Google» et posez une question. Vous pouvez voir la sortie du programme dans le terminal lorsque vous entendez la réponse:

Sortie du terminal pour Google Assistant

C'est ça! Google Assistant est maintenant exécuté sur votre Raspberry Pi. Notez que si le volume de sortie est un peu faible, vous pouvez le modifier en disant «Hé, Google, réglez votre volume à 80%».

Bonus: GPIO à commande vocale

Il est possible de contrôler les lumières avec un Arduino et Siri, mais il existe une méthode plus simple. Si vous configurez une LED, vous pouvez utiliser Google Assistant pour la contrôler avec votre voix.

La configuration de Google Assistant pour utiliser les broches GPIO est relativement simple, mais nécessite quelques étapes supplémentaires. Rendez-vous sur la console d’action Google et trouvez votre appareil sous Enregistrement de l’appareil. Cliquez dessus et ouvrez le menu des traits:

Activer le trait Assistant OnOff

Activez le trait OnOff, puis cliquez sur Enregistrer.

Assurez-vous maintenant que vous êtes dans l'environnement virtuel env, clonez une version du SDK sur votre Pi à l'aide de git:

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

S'agissant d'un environnement virtuel, vous devez installer RPi.GPIO avant de poursuivre.

 pip install rpi.gpio 

Maintenant, accédez au dossier contenant le script hotword.py .

 cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library 

Modifier le script

Vous devrez ajouter quelques lignes au script hotword.py, ouvrez-le donc dans l'éditeur nano:

 nano hotword.py 

Sous les instructions d'importation, ajoutez les vôtres pour RPi.GPIO.

 import RPi.GPIO as GPIO 

Recherchez la méthode process_event . À la ligne 66, supprimez ou commentez l'instruction print et ajoutez une instruction if pour contrôler le voyant.

 #print('Do command', command, 'with params', str(params)) if command == "action.devices.commands.OnOff": if params['on']: print('---------------') print('Led turned on') print('---------------') GPIO.output(18, GPIO.HIGH) else: print('---------------') print('Led turned off') print('---------------') GPIO.output(18, GPIO.LOW) 

Cette logique contrôle la LED, mais jusqu'ici, elle n'est pas configurée pour la sortie. Configurez-le dans la fonction main () avant que la méthode process_event soit appelée.

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

Maintenant, la broche GPIO est définie sur sortie et s'initialise à l'état bas. Sauvegarder et quitter. Vous pouvez exécuter votre script modifié en transmettant votre numéro d'ID de modèle (trouvé dans la console d'action) en tant qu'argument.

 python hotword.py --device-model-id YOUR-MODEL-ID-HERE 

La sortie du terminal est la même que précédemment et l'assistant fonctionnera en standard. Maintenant, cependant, lorsque vous dites «OK Google, activez», vous verrez une nouvelle sortie:

Message du terminal indiquant le relevé "Voyant allumé"

Remarque: L’image ci-dessus a été recadrée. Elle ne montre que l’assistant qui entend la demande et l’instruction print ajoutée au script.

Vous devriez voir votre LED s'allumer aussi!

LED activée par la voix.

Votre propre assistant personnel Google Raspberry Pi DIY

Ce projet est une bonne introduction à l'utilisation des services Google API. Maintenant que vous avez un appareil Google Assistant, essayez quelques-unes des meilleures commandes de Google Home. Aide-mémoire des commandes de Google Home. Aide-mémoire de Google Home. Notre aide-mémoire contient des tonnes d'actions utiles, notamment des divertissements, des informations et de l'automatisation. En savoir plus - Nous avons déjà regardé quelques superbes mini-jeux Google Home. 15 Commandes Google Home pour les mini-jeux et plus encore. 15 Commandes Google Home pour les mini-jeux et plus. Vous pouvez faire beaucoup de choses avec les commandes de Google Home. Voici quelques commandes amusantes de Google Home à essayer. Lire la suite .

Découvrez plus en détail: didacticiels de projets DIY, assistant Google, lumières LED, Raspberry Pi, Smart Hubs.