O experimento em questão tem o propósito de implementar um serviço de assistente pessoal, como o Amazon Alexa Voice, usando componentes comuns a soluções IoT, como NodeMCU e Raspberry PI.

Itens utilizados:

  • módulo relé;
  • NodeMCU;
  • Raspberry PI;
  • microfone;
  • caixa de som;
  • ventilador;

topologia alexa voice

O sistema se baseia no serviço Amazon Alexa Voice, o qual está instalado no Raspberry. Através de um script, o Raspberry pede autorização ao site da Amazon (por meio do protocolo OAuth 2.0) para executar o serviço em questão.
Feito isso, o Raspberry deve executar um servidor web em Node.js, que se comunica com o AVS (Alexa Voice Service) localizado na nuvem da Amazon. O servidor citado recebe dados de um cliente Java (também executado dentro do Raspberry), cuja entrada vem de um microfone.

Paralelamente, o NodeMCU se comporta como um subscriber MQTT, aguardando um comando a ser aplicado em sua saída (módulo relé). O publisher é o serviço Adafruit. Toda esta comunicação é feita por wi-fi, inerente ao NodeMCU.

O serviço IFTTT serve como um vínculo entre dois ou mais serviços. Neste caso, o IFTTT conecta o AVS com o Adafruit. Este último pode então enviar o comando por MQTT, a ser recebido pelo NodeMCU e interpretado por sua lógica.
O vínculo segue a condicional If This Then That (IFTTT) e a aplica aos serviços vinculados. Então, para o experimento, tem-se If “trigger de calor no comando de voz da Amazon” Then “envia comando ON ao feed do Adafruit”, em que feed equivale a tópico MQTT. Esta condicional, no IFTTT é chamada Applet e, para a demonstração são necessárias dois desse, sendo o segundo, If “trigger de frio no comando de voz da Amazon” Then “envia comando OFF ao feed do Adafruit”, o que faz desligar o ventilador.

 

O sistema pode ser implementado a partir de outras combinações como, por exemplo, servidor web rodando em Windows ou Mac, ao invés de Raspberry; cliente executado em Python, ao invés de Java; lógica feita por Arduino, pelo próprio Raspberry ou por outra placa similar.
Sua utilidade varia do auxílio a pessoas com deficiência motora, dependentes de aplicativos de comando de voz; ao acionamento de dispositivos remotos, uma vez que o AVS instalado em um servidor não precisa estar no mesmo local do relé.