Criando dispositivos inteligentes para Alexa (Amazon)

Introdução

Se você é fanático por automação residencial ou até mesmo quer levar esta comodidade para sua casa, provavelmente já deu uma olhada em alguns produtos e viu o alto custo para automatizar um único cômodo. Pensando nisso, será trazido neste tutorial um projeto de automação através da Amazon Alexa e da plataforma Sinric Pro. 

Com os conhecimentos adquiridos neste post, você será capaz de criar diversas aplicações que enviam dados de sensores aos assistentes virtuais compatíveis com Sinric Pro.

Agregar novas funções para os assistentes virtuais é algo fascinante, ainda mais quando colocamos em prática nossas próprias ideias.

Iremos desenvolver um interruptor touch screen que poderá ser programado para executar qualquer função dentro da aplicativo alexa e também um sensor de umidade e temperatura ambiente, que irá enviar dados ao aplicativo. Tudo isso com um único ESP01, o que reduz o custo e deuxa o projeto mais viável.

Requisitos

Para isso, será necessário que tenha:

    • Conta no aplicativo Alexa para Android ou IOS;
    • Conta na plataforma Sinric Pro.
    • Biblioteca ESP8266, Sinric Pro e DHT instaladas na IDE Arduino.

Aprenda a instalar a biblioteca do Esp8266 e gravar códigos rapidamente no tutorial Módulos Wifi na IDE Arduino.

Se você ainda não tem conta no aplicativo Alexa ou na plataforma Sinric Pro, aprenda a criá-las e configurá-las de forma simples no tutorial Automação Residencial com Alexa (Amazon) e NodeMCU.

Materiais

Entendendo o projeto

Interruptor touch screen

Ao acionar o botão touch, o estado do sensor será alterado, este sinal é enviado para o aplicativo e executa a função programada. A partir disso é possível criar rotinas como acender uma lâmpada, dizer alguma frase ou executar uma cena de aplicativo de terceiros.

Sensor de Temperatura

O sensor DHT11 lê a temperatura do ambiente e envia estes dados ao aplicativo a cada 60 segundos, com isso é possível observar esta temperatura no aplicativo, dar comandos de voz para que o assistente informe a temperatura do cômodo, e até mesmo ligar o sensor em horários programados.

ESP8266 – 01

É um micro-controlador compacto com acesso WIFI de baixo custo e baixo consumo de energia. Por ser compatível com Arduino IDE, podemos programá-lo do mesmo modo que uma placa Arduino convencional.

Para saber mais sobre o ESP01, acesse outro tutorial do nosso blog clicando aqui. 

Amazon Alexa

Se tornou muito conhecida como assistente pessoal desde o seu lançamento em 2014, para rivalizar com outras assistentes do mercado. Graças ao investimento da Amazon em dispositivos de automação residencial, a Alexa se tornou cada vez mais presente nesse segmento. Há diversos aparelhos domésticos que já vem com a possibilidade de integração com a Alexa nativamente, como TVs, ar condicionados, etc, que poderão ser usados neste projeto.

A Alexa funciona através de comandos de voz, onde você pode gerenciar desde alarmes, lembretes, agenda, bem como perguntar informações gerais como clima, notícias, etc.

O mais importante a se citar é que ela consegue identificar de forma automática dispositivos conectados a ela, através da rede ou de “skills”, que são basicamente a conexão dela a serviços de terceiros, que usaremos neste projeto.

Sinric Pro

O Sinric Pro é um serviço de Cloud (nuvem) para dispositivos inteligentes, onde ele suporta uma série de dispositivos inteligentes que podemos criar e integrar a ele.

A principal vantagem de se usar o serviço da Sinric é que não necessitamos de um dispositivo especial para integrar aos dispositivos, como um Echo Dot. O Sinric faz esse serviço sem a necessidade de ter um dispositivo adicional, só precisando do aplicativo.

De forma gratuita podemos hospedar até 5 dispositivos, e acessar os registros de uso de até 3 dias! Com isso, podemos hospedar nossos dispositivos criados, e quando a Alexa receber um comando, ela irá requisitar a esse serviço e fazer a alteração no estado de um dispositivo.

Executando o projeto

Lembrando que se você ainda não tem conta no aplicativo Alexa ou na plataforma Sinric Pro, aprenda a criá-las e configurá-las neste outro tutorial do nosso blog: Automação Residencial com Alexa (Amazon) e NodeMCU.

Após criar suas contas nas duas plataformas, vamos adicionar um novo dispositivo ao Sinric Pro.

Faça login no site da Sinric Pro para entrar na página inicial.

Clique em “Dispositivos” para ver todos os seus dispositivos.

Após entrar na aba de dispositivos, clique em “Adicionar dispositivos” para integrarmos o ESP na plataforma.

Nos campos em vermelho digite o nome do dispositivo ( este nome aparecerá no aplicativo Alexa). Insira uma descrição para identificar o dispositivo, e por último escolha na lista o tipo do dispositivo, escolha “Contact Sensor” para integrar o interruptor touch screen.

Avance em “Next” até o passo 3, após isso, clique em salvar.

Repita este processo adicionando um dispositivo “Temperature Sensor” para integrar o sensor de temperatura DHT11.

Crie seus dispositivos, lembrando que a plataforma permite ser criado até 5 dispositivos de forma gratuita.

Observe que abaixo do nome do dispositivo tem o ID dele, esse ID será importante no futuro, e pode ser facilmente copiado somente apertando o botão “copiar”.

Acesse a guia Credenciais, para ter acesso a “chave do app” e a “senha do app” devemos declarar estas informações no programa a ser enviado na Arduino IDE ao seu ESP8266.

Importante: Esses dados são únicos, não devem ser enviados para ninguém.

Copie os dados da “chave do app” e a “senha do app” clicando em “copiar” ao lado de cada uma.

Já inserimos o dispositivo na nuvem Sinric Pro, mas ainda não terminamos, vamos à programação para dar continuidade ao projeto.

Instalando bibliotecas

O primeiro passo é instalar a biblioteca ESP8266 de acordo com o post Módulos Wifi na IDE Arduino. Baixe as demais bibliotecas clicando aqui. Após baixar, abra a IDE Arduino e clique em Sketch > Incluir biblioteca > Biblioteca Zip.

Vá na pasta onde salvou as bibliotecas e selecione a biblioteca Sinric Pro.

No menu ferramentas, abra o gerenciador de bibliotecas.

Pesquise por Sinric, e a seguir instale a biblioteca caso não tenha sido instalada automaticamente.

Repita este passo para a biblioteca DHT.

Código

Os códigos originais foram retirados do Git Hub do Sinric Pro, você pode ver mais códigos como este clicando aqui.

Neste tutorial usaremos a junção de dois códigos, “Contact Sensor” e “Temperature Sensor” com leves modificações.

No código abaixo apenas faça modificações nas linhas 37 a 41, veja abaixo:

Linha 21: digite o nome da sua rede wifi no lugar de  “YOUR-WIFI-SSID”.

Linha 22: digite o nome da senha da sua rede wifi no lugar de  “YOUR-WIFI-PASSWORD”.

Linha 23: digite a chave do app contida na aba de credenciais do Sinric Pro no lugar de  “YOUR-APP-KEY”.

Linha 24: digite a senha do app contida na aba de credenciais do Sinric Pro no lugar de “YOUR-APP-SECRET”.

Linha 25: copie ID do sensor touch e cole no lugar de  “YOUR_CONTACT_ID”.

Linha 26: copie ID do sensor dht11 e cole no lugar de  “YOUR_TEMP_ID”.

Mantenha os códigos entre aspas para que a IDE Arduino entenda como texto.

Gravando código no ESP01

Para carregar o código no ESP01, utilize um conversor USB Serial e o circuito ensinado no tutorial Módulos WIFI na IDE Arduino. Não se esqueça de ligar o ESP01 em 3.3v do conversor, além de TX de ESP01 o RX do conversor e RX do ESP01 em TX do conversor.

Após gravar o código, abra o monitor serial e selecione o Baud Rate de 9600 e então pressione reset no circuito de gravação.

Verifique se a conexão com a internet foi bem sucedida como demonstra a imagem a seguir.

Caso apareça erro de leitura, não se preocupe, basta apenas conectar o ESP01 no circuito e ativar os sensores no app Alexa ou no site Sinric Pro.

Caso tenha sido bem sucedida, desconecte o ESP01 do conversor USB Serial.

Montagem do circuito

Este circuito é bem simples, vamos utilizar uma fonte para protoboard pois ela já possui saídas de 5V e 3.3V. 

Note que o VCC do sensor touch vai conectado em 5V, e o VCC do sensor de temperatura e do ESP01 em 3.3V. 

O pino de sinal do sensor touch é ligado em um divisor de tensão com resistores, transformando o sinal 5V em 3.3V. 

O GPIO0 do ESP01 vai ligado na saída do divisor de tensão, e o GPIO2 vai ligado no pino de sinal do sensor de temperatura.

Com o ESP01 ainda é possível conectar mais dois interruptores touch em GPIO1 e GPIO3, mas para isso é necessário alterar o código e adicionar mais dispositivos na plataforma Sinric Pro.

Após conectá-lo e energizar o circuito, espere alguns segundos até que o ESP01 seja conectado à internet novamente.

Vá no tutorial Automação Residencial com Alexa e NodeMCU e desça a página até o passo “Integrando Alexa ao projeto” para aprender a sincronizar seu dispositivo para que funcione corretamente. Basta ativar a Skill Sinric Pro e buscar por dispositivos.

Testes

Após conectado, abra o dispositivo no aplicativo e toque no sensor para verificar a mudança de estado. Repare que ao tocar no sensor, o led do ESP01 pisca, sinalizando que o estado foi alterado. 

O sensor de temperatura atualiza e envia dados ao aplicativo a cada 60 segundos abra o dispositivo no aplicativo e no site Sinric Pro e veja a mudança de temperatura no gráfico da página inicial. No aplicativo Alexa, crie um grupo com o nome do cômodo onde estão os sensores e os adicione ao grupo. Quando adicionados tente dizer “Alexa, qual a temperatura do (nome do cômodo)”, ela te responderá com os dados recebidos do sensor.

Veja o vídeo de demonstração:

Você pode confeccionar uma PCB a partir deste circuito e implementar em algum cômodo de sua casa e instalá-lo

Conclusão

Chegamos ao final de mais um tutorial sobre automação residencial, veja os outros tutoriais que abordam este assunto aqui. Lembre-se que o lazer aliado ao estudo é a maneira mais fácil de aprender, então tente mudar o código, utilizar outros sensores e implementar mais dispositivos. Com este código, pode utilizar qualquer sensor que tenha sinal digital (0 ou 1), para alterar estados na Alexa.

Esperamos que tenha gostado e entendido nosso tutorial, compartilhe com amigos e nos marque nas redes sociais a cada novo projeto que fizer.

 

Avaliação: 5.0/5. De 3 votos.
Espere por favor...
Enzo Morelli
Enzo Morelli
Técnico em Eletrônica pelo SENAI, cursando Engenharia da Computação, Militar, hobbysta nas áreas de eletrônica, automação, inteligência artificial e domótica.
Acesse nossa loja