Índice:

Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (Chromecast Alternative): 13 etapas
Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (Chromecast Alternative): 13 etapas

Vídeo: Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (Chromecast Alternative): 13 etapas

Vídeo: Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (Chromecast Alternative): 13 etapas
Vídeo: O COMPUTADOR DE 17 REAIS! - Raspberry Pi Zero 2024, Julho
Anonim
Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (alternativa ao Chromecast)
Obtenha uma tela para seu Google Home usando Raspberry Pi e Dialogflow (alternativa ao Chromecast)

Desde que comprei meu Google Home, desejo controlar meus dispositivos em casa usando comandos de voz. Funciona muito bem em todos os sentidos, mas me senti mal por seu recurso de vídeo. Podemos assistir Youtube e Netflix apenas se tivermos um dispositivo Chromecast ou TV com o recurso Chromecast embutido. Tenho um Raspberry Pi comigo, então pensei em usá-lo para reproduzir meus vídeos e filmes favoritos com comandos de voz.

Passo 1:

Image
Image

Para isso, fiz a seguinte configuração

Página inicial do Google -> Dialogflow -> Endereço IP Rpi no Dataplicity -> Servidor Nodejs -> Código para abrir URLs

Dialogflow é uma tecnologia de interação humano-computador do Google baseada em conversas em linguagem natural. Com a ajuda disso, podemos desenvolver nossas próprias conversas ou tarefas para fornecer uma entrada para a página inicial do Google. Isso funciona da seguinte maneira

Intenção [entrada, pergunta, conversa, comando …] -> Página inicial do Google -> ação [resposta]

Aqui, a resposta pode ser uma simples conversa ou então dados recuperados de um webhook, que faremos usando o servidor Rpi. Então, acesse o site do Dialogflow e crie uma conta e um novo agente.

Em seguida, crie uma nova intenção….

Passo 2:

Imagem
Imagem

Em seguida, insira as frases de treinamento. Estes são os comandos que os usuários falam quando tentam acessar uma tarefa específica no Google Home.

Etapa 3:

Aqui, a palavra ‘website’ pode ser alterada para qualquer coisa como youtube, Netflix, amazon prime etc … Então, esta palavra atua como uma variável e quando você seleciona a palavra website [usando o mouse] você obtém o seguinte

Passo 4:

Imagem
Imagem

No menu suspenso, selecione ‘@ sys.any’ e pressione Enter.

Etapa 5:

Imagem
Imagem

Em seguida, insira o mesmo nome de parâmetro na seção de ações. Os valores mencionados nesta seção são enviados ao webhook como um arquivo JSON, que precisamos recuperar no servidor para saber qual site tem o usuário invocado.

O valor de uma variável é recuperado usando ‘$ variable_name’

Etapa 6:

Imagem
Imagem

Adicione a resposta que precisamos ouvir depois de dizer o comando ao Google Home. Em seguida, salve a intenção. Se necessário, defina essa intenção como o fim da conversa.

Etapa 7:

Agora vamos configurar nosso serviço de back-end para fazer com que essas consultas abram vídeos e sites em nosso raspberry pi.

A configuração restante

Dataplicity -> servidor Nodejs -> código

Por que precisamos de dataplicity? porque o Google Home se conecta a webhooks que podem ser acessados pela Internet. Mesmo que nosso GHome esteja conectado à rede local, as consultas são provenientes do serviço de nuvem do Google e, portanto, há a necessidade de portar nosso servidor para a internet. Em vez dessa dor de cabeça, podemos usar os serviços de dataplicity para colocar nosso pi de framboesa na internet com facilidade.

Primeiro, conecte-se ao raspberry pi [diretamente com HDMI ou mesmo com SSh] Obtenha o tempo de execução nodejs mais recente a partir do seguinte comando no terminal.

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

Em seguida, instale-o usando

sudo apt-get install -y nodejs

Em seguida, crie um novo arquivo

nano webserver.js

Etapa 8:

Em seguida, insira o código abaixo no arquivo

Aqui, para demonstração, estou usando apenas dois sites (google, youtube). Pode-se editar o código e alterar de acordo.

bodyParser = require (‘body-parser’); var exec = require (‘child_process’). exec; var express = require (‘express’); var app = express (); app.use (bodyParser.json ()); app.post ('/', função (req, res) {let variable = req.body.queryResult.parameters.website; exec (“midori www.” + variável +”. com”, função (erro, stdout, stderr) {console.log (“stdout:“+ stdout); console.log (“stderr:“+ stderr); if (erro! == null) {console.log (“exec errror:“+ erro);}}); return res.end ();}); app.listen (80);

Etapa 9:

Imagem
Imagem

O código acima foi escrito apenas para explicar o conceito. Usei o navegador Midori no código porque o chromium não funciona com comandos remotos. Podemos usar o Firefox também. [Temos que instalar o analisador de corpo, módulos expressos com a ajuda de npm antes de escrever o código]

Lembre-se de que devemos escutar apenas na porta 80, pois o dataplicity pode encaminhar apenas a porta 80 do raspberry pi.

Agora precisamos configurar o Dataplicity

Acesse o site do Dataplicity e crie sua conta e siga as instruções para adicionar o raspberry pi ao painel.

Etapa 10:

Imagem
Imagem

Depois disso, abra raspberry pi da lista de dispositivos e selecione wormhole para obter um endereço IP exclusivo para o raspberry pi no qual podemos implantar nosso servidor de nó.

Copie o endereço IP para a área de transferência.

Etapa 11:

Imagem
Imagem

Agora execute o código do terminal raspberry pi

sudo node webserver.js

Se mostrar algum erro sobre o display ou sobre os protocolos…. executar

sudo xhost +

Agora volte para o fluxo de diálogo e clique na seção de atendimento

Etapa 12:

Imagem
Imagem

Digite o endereço IP ou o URL do dataplicity no espaço acima.

Etapa 13:

Imagem
Imagem

Por fim, vá para a seção de intents e ative a chamada do webhook na guia de atendimento.

É isso! Agora volte para a sua página inicial do Google e veja como funciona!

Até a próxima vez, Happy Hacking:)

Recomendado: