Table des matières:

Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast) : 13 étapes
Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast) : 13 étapes

Vidéo: Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast) : 13 étapes

Vidéo: Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast) : 13 étapes
Vidéo: Donnez une âme à vos assistants vocaux (JP. Encausse, A. Vasseur) 2024, Novembre
Anonim
Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast)
Obtenez un écran pour votre Google Home à l'aide de Raspberry Pi et Dialogflow (alternative à Chromecast)

Depuis que j'ai acheté ma maison Google, je voulais contrôler mes appareils à la maison à l'aide de commandes vocales. Cela fonctionne très bien à tous points de vue, mais je me sentais mal pour sa fonction vidéo. Nous ne pouvons regarder Youtube et Netflix que si nous avons un appareil Chromecast ou un téléviseur avec fonction Chromecast intégrée. J'ai un Raspberry Pi avec moi, j'ai donc pensé à l'utiliser pour lire mes vidéos et films préférés avec des commandes vocales.

Étape 1:

Image
Image

Pour cela, j'ai fait la configuration suivante

Google Home -> Dialogflow -> Adresse IP Rpi sur Dataplicity -> Nodejs Server -> Code pour ouvrir les URL

Dialogflow est une technologie d'interaction homme-machine de Google basée sur des conversations en langage naturel. Avec l'aide de cela, nous pouvons développer nos propres conversations ou tâches à donner en entrée à Google home. Cela fonctionne comme suit

Intention [Saisie, question, conversation, commande….] -> Google Home -> action [réponse]

Ici, la réponse peut être soit une simple conversation, soit des données récupérées à partir d'un webhook, que nous allons faire à l'aide du serveur Rpi. Alors, allez sur le site Web de Dialogflow et créez un compte et un nouvel agent.

Créez ensuite une nouvelle intention….

Étape 2:

Image
Image

Saisissez ensuite les phrases d'entraînement. Ce sont les commandes que les utilisateurs énoncent lorsqu'ils tentent d'accéder à une tâche spécifique à partir de Google Home.

Étape 3:

Ici, le mot « site Web » peut être remplacé par quelque chose comme youtube, Netflix, amazon prime, etc. Ainsi, ce mot agit comme une variable et lorsque vous sélectionnez le mot site Web [à l'aide de la souris], vous obtenez ce qui suit

Étape 4:

Image
Image

Dans le menu déroulant, sélectionnez « @sys.any » et appuyez sur Entrée.

Étape 5:

Image
Image

Saisissez ensuite le même nom de paramètre dans la section actions. Les valeurs mentionnées dans cette section sont envoyées au webhook sous forme de fichier JSON, que nous devons récupérer sur le serveur pour savoir quel site Web l'utilisateur a appelé.

La valeur d'une variable est récupérée en utilisant '$variable_name'

Étape 6:

Image
Image

Ajoutez la réponse que nous devons entendre après avoir dit la commande à Google Home. Ensuite, enregistrez l'intention. Si nécessaire, définissez cette intention comme la fin de la conversation.

Étape 7:

Nous allons maintenant configurer notre service back-end pour que ces requêtes ouvrent des vidéos et des sites Web sur notre raspberry pi.

La configuration restante

Dataplicity -> serveur Nodejs -> code

Pourquoi avons-nous besoin de dataplicity ? car Google Home se connecte aux webhooks qui sont accessibles sur Internet. Même si notre GHome est connecté au réseau local, les requêtes proviennent du service cloud de Google et, par conséquent, il est nécessaire de porter notre serveur sur Internet. Au lieu de ce casse-tête, nous pouvons utiliser les services de dataplicity pour placer facilement notre raspberry pi sur Internet.

Tout d'abord, connectez-vous au raspberry pi [directement avec HDMI ou même avec SSh] Obtenez le dernier runtime nodejs à partir de la commande suivante dans le terminal.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Ensuite, installez-le en utilisant

sudo apt-get install -y nodejs

Créez ensuite un nouveau fichier

nano webserver.js

Étape 8:

Ensuite, insérez le code ci-dessous dans le fichier

Ici, pour la démonstration, je n'utilise que deux sites (google, youtube). On peut éditer le code et changer en conséquence.

bodyParser = require('body-parser');var exec = require('child_process').exec; var express = require('express'); var app = express(); app.use(bodyParser.json()); app.post('/', function(req, res){ let variable =req.body.queryResult.parameters.website; exec("midori www."+variable+".com", function(error, stdout, stderr) { console.log("stdout: " + stdout); console.log("stderr: " + stderr); if (error !== null) { console.log("exec error: " + error); } }); return res.end(); }); app.écouter (80);

Étape 9:

Image
Image

Le code ci-dessus a été écrit uniquement pour expliquer le concept. J'ai utilisé le navigateur Midori dans le code car le chrome ne fonctionne pas avec les commandes à distance. Nous pouvons également utiliser Firefox. [Nous devons installer body-parser, des modules express à l'aide de npm avant d'écrire le code]

N'oubliez pas que nous ne devons écouter que sur le port 80 car dataplicity ne peut transmettre que le port 80 du raspberry pi.

Maintenant, nous devons configurer Dataplicity

Accédez au site Web de Dataplicity et créez votre compte et suivez les instructions pour ajouter le raspberry pi au tableau de bord.

Étape 10:

Image
Image

Après cela, ouvrez raspberry pi dans la liste des appareils et sélectionnez wormhole pour obtenir une adresse IP unique pour le raspberry pi sur laquelle nous pouvons déployer notre serveur de nœuds.

Copiez l'adresse IP dans le presse-papiers.

Étape 11:

Image
Image

Exécutez maintenant le code depuis le terminal raspberry pi

sudo node webserver.js

S'il affiche une erreur sur l'affichage ou sur les protocoles…. exécuter

sudo xhost +

Revenez maintenant au flux de dialogue et cliquez sur la section d'exécution

Étape 12:

Image
Image

Entrez l'adresse IP ou l'URL de dataplicity dans l'espace ci-dessus.

Étape 13:

Image
Image

Enfin, accédez à la section des intentions et activez l'appel de webhook à partir de l'onglet d'exécution.

C'est ça! Maintenant, retournez dans votre google home et vérifiez comment cela fonctionne !

A la prochaine, Happy Hacking:)

Conseillé: