Botão IoT com Raspberry Pi Zero W e IFTTT 6

Você já deve saber que IoT significa Internet das Coisas, onde os objetos, sejam eles eletrodomésticos, máquinas ou sensores geram dados que são enviados e processados na nuvem. Com esses dados podemos tomar decisões de controle, gerar estatísticas e até mesmo interligar serviços da nuvem. Um exemplo bem interessante dessa rede de dispositivos é o Amazon Dash Button.  Basicamente é um botão IoT que, quando apertado, se conecta ao site da Amazon e realiza uma compra online de determinado produto que então é entregue na sua casa. Tudo isso sem a necessidade de ligar o computador, navegar na Web, procurar o produto, digitar o número do cartão de crédito e etc. Cada botão funciona com um determinado produto, por exemplo, sabão em pó. Basta colocar o botão perto da máquina de lavar e apertá-lo quando o sabão em pó estiver acabando. Então a compra e entrega são realizados automaticamente.

Demostração Amazon Dash button

Amazon Dash button IoT

Neste tutorial iremos mostrar como você pode criar seu próprio Botão IoT com uma Raspberry Pi Zero Wireless e poucos componentes adicionais. Mostraremos como integrar o botão a serviços de nuvem usando o IFTTT. No final do tutorial você será capaz de enviar e-mails, SMS e muito mais apenas apertando um botão!   

Construção do botão IoT

O Botão IoT consiste basicamente de um push button e um LED para indicar os estados, ambos conectados a uma Raspberry Pi Zero Wireless. Para montagem você precisará dos seguintes componentes:

A montagem do circuito do Botão IoT é indicada no esquemático abaixo:

Circuito Botão IoT

É possível ir além e customizar essa montagem com alguns componentes adicionais. Aqui na FILIPEFLOP nós desenvolvemos um pequeno Hat (shield para Raspberry Pi) já com as conexões necessárias e colocamos tudo dentro de uma caixa plástica ABS. Para fazer o Hat utilizamos uma placa fenolite perfurada dupla face que já tem o tamanho ideal de 3x7cm.

HAT Botão IoT para Raspberry Pi Zero

HAT Botão IoT na caixa

Projeto Botão IoT na caixa

Um pouco sobre a plataforma IFTTT

IFTTT é um acrônimo para “If This, Then That”, que na tradução para o potuguẽs seria, “Se Isso, Aquilo”. Com IFTTT é possível interconectar dois serviços da Web para realizar tarefas determinadas pelo usuário. Veja os exemplos abaixo:

“Se receber um e-mail no Gmail, enviar um SMS com o assunto do e-mail”
“Se postar uma foto no instagram, postar a mesma foto no facebook”
“Se tem previsão de chuva para o dia, enviar uma notificação”
“Se sair de casa, desligar o WiFi do celular”

Ou você pode controlar dispositivos IoT como lâmpadas inteligentes usando algo do tipo:

“Se o sol se por, desligar lâmpadas da casa”
“Se o portão da garagem abrir, ligar lâmpada da garagem”

As interconexões vistas acima são chamadas de “Applets”. Basta acessar http://ifttt.com e criar uma conta para criar seus próprios Applets. Clique em Get started e escolha sua conta do Facebook ou Gmail.

IFTTT - Criando conta

Explore os serviços do IFTTT e tente criar um Applet da seguinte maneira:

“Se receber um e-mail no Gmail, enviar um SMS com o assunto do e-mail”

O serviço Webhooks do IFTTT

O IFTTT tem um serviço chamado Webhooks que nos possibilita trabalhar com protocolo HTTP. Sendo assim poderíamos criar um Applet da seguinte maneira:

“Se houver requisição Web HTTP, faça alguma coisa”

Vamos começar criando um novo Applet. Clique em seu nome de usuário e New Applet.

IFTTT - Novo Applet

Em +this colocaremos um Webhook que recebe uma requisição HTTP e em +that colocaremos envio de SMS.

Clique em +this. Pesquise e selecione o serviço Webhooks. Escolha o evento Receive a Web Request. Configure o nome do evento como button_pressed e então clique em Create Trigger.

IFTTT - Novo Applet Webhooks

Para configurar o restante do Applet clique em +that. Pesquise e selecione o serviço Android SMS. Escolha o evento Send an SMS. Coloque o número para o qual o SMS será enviado e também a mensagem do SMS e clique em Create action.

IFTTT - Novo Applet Android SMS

Se você ainda não possui o aplicativo IFTTT instalado em seu smartphone, pode baixá-lo aqui (versão Android). Ele é necessário para que o envio de SMS funcione. O SMS será enviado do celular onde o aplicativo IFTTT está instalado para o número indicado acima.

Agora nosso Applet está ativado e pronto para receber requisições HTTP. Podemos fazer um teste entrando na documentação do Webhooks. Para isso procure pelo serviço Webhooks no campo de pesquisa e clique no botão Documentation.

IFTTT - Documentação Webhooks

Você será levado a uma página contendo sua chave de segurança(TOKEN), um campo para colocar o nome do evento e um botão para testar o evento. O nome do evento deve ser o mesmo que configuramos anteriormente, button_pressed.

IFTTT - Teste Requisição HTTP Webhooks

É possível também utilizar o Curl pela linha de comando para realizar a requisição HTTP, lembrando de inserir seu TOKEN do IFTTT.

Ao clicar no botão teste ou executar o Curl, você deve receber um SMS com a mensagem configurada anteriormente, “Botão pressionado!”.

Programando o Botão IoT

Agora que nosso Applet do IFTTT está funcionando corretamente, é hora de programar o botão IoT para fazer a requisição HTTP automaticamente.

Utilizaremos a linguagem Shell Script que é usada para manipular comandos da linha de comando automaticamente.

Crie um arquivo chamado botao-iot.sh em qualquer pasta do sistema da Raspberry Pi. Dentro dele coloque o seguinte conteúdo, lembrando de colocar seu Token do IFTTT Webhooks:

O script acima basicamente fica esperando o botão ser pressionado. Quando o botão é pressionado o comando curl é executado realizando a requisição HTTP. O LED também irá piscar. Logo após, um SMS deve ser recebido no celular.

Para executar o script, é necessário torná-lo executável com chmod e iniciá-lo com “./”

Veja abaixo o sistema do Botão IoT em ação.

Projeto Botão IoT em Ação

Agora você pode criar outros Applets como por exemplo, enviar um e-mail ao pressionar o botão, postar um tweet, enviar mensagem no Telegram e etc. São muitas possibilidades!

Gostou do Botão IoT com Raspberry Pi Zero W? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

6 Comentários

  1. Giovanni

    Um equipamento um pouco mais prático e versátil que eu veria utilidade seria um RPI Zero ligado junto a um painel numérico e um leitor de código de barras. Você teria ele fixado em algum lugar da sua casa e iria fazendo a leitura dos códigos de barra dos produtos que você gostaria de comprar. No fim é só confirmar a compra, assim não precisaria ter um dispositivo por produto. O que acha?

    1. Olá Marcos! Obrigado pela leitura do post!

      Acho uma ótima ideia!

  2. Bom dia, como foi feita a furação da caixa para ligar a fonte de energia?

    1. Olá Bruno!
      Utilizei uma Dremel com broca pequena. Fiz dois furos com uma distância entre eles do tamanho de um conector micro USB. Depois utilizei uma pequena lima pra fazer ajuste fino.

  3. Parabéns, ótimo artigo, ajudou muito e muito bem detalhado.
    Tenho uma dúvida, por que usar um raspberry e não um Esp8266? Não ficaria mais em conta?

    1. Poderia ser usado um ESP8266 também! Mas com Raspberry Pi você tem mais versatilidade e possibilidades de trabalhar com redes por usar sistema Linux.

      Abraço!