- Material requintado:
- Parte 1: Configurando o Raspberry Pi com SSH e VNC
- Parte 2: Configure sua conta de desenvolvedor Amazon e configure Alexa Voice Services no Raspberry Pi:
- Parte 3: Configurando PubNub e IFTTT para Alexa Pi Home Automation :
- Parte 3-2: Configurando o IFTTT para o Amazon Alexa Service:
- Parte 4: Conexões de hardware e diagrama de circuito:
- Parte 5: Código Python para controlar o LED:
Já pensou em um alto-falante que possa ser controlado por sua voz !!! E se pudermos controlar nossos eletrodomésticos dessa maneira e torná-los mais inteligentes? Assistentes de voz estão se tornando mais populares à medida que caminhamos em direção a uma era de sistemas baseados em IA e IoT. Você já ouviu falar sobre o Google Assistant, Apple Siri e Amazon Alexa . Todos esses são sistemas de IA baseados em voz, o que os torna diferentes uns dos outros são seus ecossistemas, e é aqui que o Amazon Alexa mais se destaca. Google, Apple e Amazon, todas essas empresas já lançaram seus alto-falantes inteligentes, mas a Amazon foi a primeira a lançar alto-falantes inteligentes. Amazon echo, Echo Dot Spot, etc. são os alto-falantes inteligentes que estão disponíveis no mercado.
A Amazon fornece a API para usar seu serviço de voz muito popular, Alexa. É open source e está disponível no Github. Além disso, você pode instalar ou integrar o Alexa em dispositivos personalizados como o Raspberry Pi e obter a funcionalidade completa do Amazon Echo nesse dispositivo.
Usando o serviço de voz Alexa, podemos tocar música, obter informações sobre o tempo, reservar ingressos e muito mais. Tudo que você precisa fazer é 'perguntar'. Neste tutorial, veremos como podemos controlar o Raspberry Pi GPIO usando os serviços Alexa Voice para acender um LED.
Material requintado:
Requisitos de hardware:
- Raspberry Pi 3 ou Raspberry Pi 2 Modelo B e cartão SD (8 GB ou mais)
- Alto-falante externo com cabo AUX de 3,5 mm
- Qualquer webcam ou microfone USB 2.0
- Módulo de relé
- CONDUZIU
Observação: a webcam possui um microfone embutido, portanto, vamos usá-lo no lugar do microfone USB 2.0.
Aplicativos de software e requisitos da Web:
- Registre uma conta com Alexa Voice Services
- Registre uma conta no PubNub
- Registre uma conta com IFTTT
Também presumimos que o seu Raspberry pi já esteja configurado com um sistema operacional Raspbian e conectado à Internet. Com eles no lugar, vamos prosseguir com o tutorial. Se você for novo no Raspberry Pi, leia Primeiros passos com o Raspberry Pi.
Todo o tutorial é dividido principalmente em 5 partes, que são as seguintes:
- Se você não tem monitor, então temos que configurar o Raspberry Pi com SSH e VNC, também verifique a conectividade do microfone USB.
- Configure seu desenvolvedor Amazon e instale Alexa no Raspberry Pi
- Configurando PubNub e IFTTT para Alexa Home Automation
- Conexão de hardware
- Código Python para Alexa Pi GPIO Control
Se você simplesmente deseja controlar um LED com sua voz, verifique também nosso projeto de LED controlado por voz baseado em Bluetooth.
Parte 1: Configurando o Raspberry Pi com SSH e VNC
Primeiro, conectaremos o Raspberry Pi com SSH e VNC. Para seguir os tutoriais no site oficial do Raspberry Pi, os links são fornecidos abaixo.
Para SSH: link SSh
Para VNC: link VNC
Se você tiver o Monitor, poderá sair desta etapa e ir diretamente para a etapa 2, que é Configurando o Alexa Voice Service (Avs). Antes disso, temos que verificar a conectividade do microfone.
Verificando o microfone da webcam com Raspberry Pi:
1. Abra o terminal Raspberry Pi e digite o comando arecord -l. Isso exibirá os dispositivos de hardware que estão conectados ao Raspberry Pi conforme mostrado abaixo:
O cartão 1 é o microfone da sua webcam que vamos usar. Se não for exibido, sua webcam pode estar com defeito.
2. Agora, verifique se o microfone está funcionando, executando o comando de gravação de áudio como:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Para reproduzir o áudio gravado, digite este comando:
omxplayer -p -o local /home/pi/Desktop/test.wav
Se você conectou o Raspberry Pi ao monitor usando um cabo HDMI, por padrão, a saída de áudio é feita pelo alto-falante do monitor (se houver um alto-falante embutido). Portanto, para alterá-lo para 3,5 mm você deve digitar o seguinte comando:
sudo raspi-config e vá para a opção Avançar.
Selecione Áudio da lista -> selecione Força 3,5 mm -> selecione Ok e reinicie o Raspberry Pi.
Agora, você deve ouvir o som do conector de 3,5 mm.
NOTA: Se você quiser aumentar ou diminuir o volume da voz de entrada para o microfone, use o tipo alsamixer no terminal. Selecione a placa de som do terminal pressionando F6.
Pressione F4 para alterar o ganho de dB do microfone e defina-o como desejar.
Se você tiver um microfone USB 2.0, as etapas seguidas são as mesmas para verificar o microfone. Aqui usamos a webcam para o microcphone USB.
Parte 2: Configure sua conta de desenvolvedor Amazon e configure Alexa Voice Services no Raspberry Pi:
Já explicamos isso em detalhes em nosso tutorial anterior, onde construímos um alto-falante inteligente Amazon Echo. Aqui, estamos nos concentrando no controle do Raspberry Pi GPIO com o Alexa, então não vamos explicar todo o processo novamente, então leia o artigo anterior e prepare seu alto-falante com os serviços de voz Alexa instalados no seu Raspberry pi.
Para testar Alexa, basta acordá-la dizendo o nome dela! Confira o vídeo de demonstração fornecido no final do tutorial.
Você pode perguntar a ela sobre a temperatura da sua cidade para verificar se está funcionando ou não.
Parte 3: Configurando PubNub e IFTTT para Alexa Pi Home Automation :
Para controlar Raspberry Pi GPIO usando este Alexa Pi, precisamos da ajuda do PubNub python SDK e IFTTT. Daremos comandos ao IFTTT por meio do Alexa, e o PubNub dará um sinal ao RPi para ligar / desligar o LED. Portanto, primeiro instalaremos o PubNub no Raspberry Pi.
Parte 3-1: Instalação do PubNub Python SDK:
PubNub fornece uma API de mensagens para publicar / assinar qualquer mensagem em sua rede global. Aqui, estamos usando IFTTT e Alexa para publicar a mensagem no PubNub, para tornar Raspberry Pi GPIO baixo / alto. Esta mensagem é recebida por Raspberry Pi e Pi irá ligar ou desligar o LED de acordo. Siga as etapas abaixo para configurar o PubNub no Raspberry Pi:
Etapa 1: Abra o terminal em seu RPi e execute o seguinte comando para instalar o SDK:
sudo pip install pubnub == 3.9.0
Instale apenas a versão 3.9.0, outra versão não funcionará com o script python que iremos executar na última.
Etapa 2: agora, acesse PubNub e faça login com suas credenciais.
Passo 3:. Obtenha as chaves de publicação e assinatura que usaremos mais tarde.
Parte 3-2: Configurando o IFTTT para o Amazon Alexa Service:
IFTTT é um serviço gratuito baseado na web que permite aos usuários criar cadeias de declarações condicionais simples, chamadas de “receitas”, que são acionadas com base em alterações em outros serviços da web, como Gmail, Facebook, Instagram e. IFTTT é uma abreviatura de “If This Then That”.
Para este projeto, o IFTTT é usado para tornar o GPIO do Raspberry Pi LOW / HIGH baseado no comando de voz recebido pelo serviço Alexa em execução no RPi.
Siga estas etapas para fazer um miniaplicativo:
Passo 1: - Faça login no IFTTT com suas credenciais ou cadastre - se se você não tiver uma conta nele.
Etapa 2: - Em Meus miniaplicativos, clique em Novo miniaplicativo
Etapa 3: - Clique em + this
Passo 4: - Pesquise Amazon Alexa e clique nele, entre com os detalhes da sua conta de desenvolvedor Amazon.
Etapa 5: - Escolha o gatilho, diga uma frase específica
Passo 6: - Forneça “ acender a luz” como a frase, clique em Create Trigger.
Etapa 7: - Clique em + isso
Etapa 8: - Pesquise Webhooks, clique nele e selecione Fazer uma Solicitação da Web
Etapa 9: - Webhooks fornece a solicitação REST WEB, use as chaves Publicar e Assinar obtidas no PubNub e modifique a seguinte URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Etapa 10: - Cole o URL modificado na caixa de texto do URL.
Passo 11: - Defina o Método como GET, Conteúdo como aplicativo / json e clique em salvar.
Etapa 12: - Siga as mesmas etapas para criar o gatilho para “ desligar a luz ” e modificar o URL para o seguinte.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Etapa 13: - Agora estamos prontos com todos os componentes da web para a demonstração.
Parte 4: Conexões de hardware e diagrama de circuito:
Para este projeto, precisamos de um LED simples para fins de teste. Abaixo está o diagrama de circuito e conexões de hardware para controlar Raspberry Pi GPIO com Amazon Alexa.
Usaremos GPIO18 em nosso script python, portanto, conecte o relé seu LED 18. Você pode alterar isso no script python.
Parte 5: Código Python para controlar o LED:
Encontre o script Python completo no final deste tutorial.
Você precisa editar a chave Pub e Sub com suas chaves pubnub no código Python.
# Inicialize as chaves Pubnub pub_key = "****************************" sub_key = "************* ************* "
Agora execute o Script
python alexaRpi.py
Agora que está tudo pronto para a demonstração, certifique-se de executar todos os três serviços da Parte 1 (os três terminais) antes de continuar.
Para dar qualquer comando, você precisa ativar o serviço Alexa chamando “Alexa” cada vez que quiser enviar um comando. Você ouvirá um som de bipe. Depois de ouvir o bipe, diga “ Alexa Trigger, ligue a luz. ”Você pode ver que a luz se acende em um momento. E então se você disser “ Alexa Trigger, desligue a luz ”, a luz deve desligar.
É isso aí…. Você pode ainda adicionar um relé para controlar o aparelho AC, mesmo que você possa controlar muitos aparelhos usando mais relés e mais pinos GPIO de Raspberry pi.
Verifique o código completo e o vídeo de demonstração abaixo. Verifique também todos os nossos Projetos de Domótica aqui.