Arduino - IFTTT
Neste tutorial, vamos aprender a usar o Arduino com o IFTTT. Em detalhes, vamos aprender:
- O que é IFTTT?
- Como o Arduino e o IFTTT funcionam juntos
- Como serviços externos (Google Assistant, Alexa ...) controlam o Arduino via IFTTT
- Como o Arduino aciona/envia dados para serviços externos (email, SMS, chamada de voz ...) via IFTTT
O IFTTT permite que o Arduino:
- Envie notificações para o seu smartphone
- Envie emails
- Envie mensagens SMS
- Seja controlado pelo Google Assistant
- Seja controlado pelo Amazon Echo (Alexa)
- Tenha agendamentos definidos pelo Google Calendar
E muito, muito mais do que isso.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
O que é IFTTT?
O IFTTT é um serviço web gratuito que conecta diferentes serviços web (por exemplo, Facebook, Email, Twitter, Google Assistant ...) entre si. Por exemplo:
- Se você conectar o seu Facebook ao seu Dropbox via IFTTT, sempre que você publicar uma foto no Facebook, o IFTTT pode salvar automaticamente a foto no Dropbox.
- Se você conectar a sua Amazon Alexa ao seu Email via IFTTT, o IFTTT pode enviar automaticamente um email para você sempre que você perguntar à Alexa o que está na sua lista de compras
Existem quatro conceitos importantes no IFTTT: Applet, serviço, gatilho (trigger) e ação.
- O IFTTT é composto por Applets.
- O Applet normalmente é composto por dois serviços IFTTT. Um serviço atua como gatilho e o outro atua como ação. Os serviços IFTTT em um Applet são conectados entre si.
- Um serviço IFTTT (ex.: Twitter, Dropbox, Evernote, Facebook, Email, Amazon Alexa e Google Assistant...) faz uma destas coisas:
- Recebe a requisição de fora e então aciona outro serviço IFTTT no mesmo Applet (atua como gatilho)
- É acionado por outro serviço IFTTT no mesmo Applet e então faz algo com serviços externos (atua como ação)
- Um Applet pode ser composto por três ou mais serviços IFTTT. Isso está fora do escopo deste tutorial.
- Não confunda o serviço no IFTTT com um serviço externo. Eles podem ter o mesmo nome. Por exemplo, a Alexa é um serviço de voz criado e mantido pela Amazon, e o IFTTT tem um serviço também chamado Alexa que interage com a Amazon Alexa. Por isso, vamos chamar o serviço dentro do IFTTT de serviço IFTTT, e o serviço fora do IFTTT de serviço externo.
- pela empresa IFTTT: você só precisa ativá-lo para usar
- por terceiros: você só precisa ativá-lo para usar
- por você mesmo: você pode criar o seu próprio Applet e ativá-lo para usar. É muito fácil criar Applets.
※ Nota:
O Applet é criado:
Para funcionar com o Arduino, você precisa criar um Applet por conta própria. Não se preocupe, é muito simples criar um Applet.
IFTTT significa "If This Then That" (Se Isto Então Aquilo). Ou seja, se um serviço for acionado, outro serviço IFTTT executa a ação
Pré-requisitos
Crie uma conta no IFTTT. É gratuito e muito simples de criar.
Como o Arduino e o IFTTT funcionam juntos
De modo geral, o Arduino interage com o IFTTT, o IFTTT interage com os serviços externos, e vice-versa.

Com mais detalhes, o Arduino interage com um Applet no IFTTT, o Applet interage com os serviços externos, e vice-versa.
Mais a fundo, o Arduino interage com o serviço Webhooks no IFTTT, o serviço Webhooks aciona outro serviço no IFTTT, e esse outro serviço no IFTTT interage com os serviços externos, e vice-versa. Abaixo está um exemplo de como o Arduino interage com o Amazon Echo Dot.

Resumo
| De modo geral | Arduino | ↔ | IFTTT | ↔ | Serviços externos |
| Com mais detalhes | Arduino | ↔ | Applet no IFTTT | ↔ | Serviços externos |
| Mais a fundo | Arduino | ↔ | (Webhooks ↔ Outro serviço) no IFTTT | ↔ | Serviços externos |
Precisamos criar um Applet com o Webhooks e outro serviço. Dependendo do caso de uso, o Webhooks pode atuar como gatilho ou como ação.
Existem duas categorias de casos de uso:
- Outro serviço controla o Arduino via IFTTT (por exemplo, Google Assistant ou Amazon Alexa controlando o Arduino)
- O Arduino envia dados para outro serviço IFTTT via IFTTT (por exemplo, enviar uma notificação para o seu celular ou publicar no Twitter)
Vamos ver cada uma em detalhes.
Como serviços externos controlam o Arduino via IFTTT
Como mencionado acima, um Applet do IFTTT normalmente inclui dois serviços IFTTT: um atua como gatilho e o outro atua como ação. Neste caso, o Webhooks atua como gatilho.
Na interação entre o Arduino e o Webhooks, o Arduino atua como servidor web e o Webhooks do IFTTT atua como cliente web.
O fluxo de trabalho:
- Um serviço dispara um evento para o serviço correspondente no IFTTT
- O serviço correspondente no IFTTT extrai os dados do evento, se houver
- O serviço correspondente no IFTTT aciona o Webhooks do IFTTT (incluindo os dados, se houver)
- O Webhooks do IFTTT executa a ação fazendo uma requisição HTTP ao Arduino (incluindo os dados, se houver)
- O Arduino extrai os dados da requisição HTTP e faz alguma coisa.
A imagem abaixo mostra como o Amazon Echo controla o Arduino via IFTTT

Como Usar o IFTTT com o Arduino
- Faça login no IFTTT
- Crie um Applet que conecte o serviço desejado (por exemplo, Google Assistant, Amazon Alexa, Google Calendar ...) ao Webhooks. O Webhooks atua como ação e o outro serviço atua como gatilho
- Escreva o código Arduino para tratar a requisição HTTP vinda do Webhooks.
Ao criar o Applet, o endereço IP do Arduino é informado nas configurações do Applet. Quando um evento é disparado, o IFTTT faz uma requisição HTTP ao Arduino por meio do endereço IP informado.
As instruções detalhadas passo a passo serão apresentadas em tutoriais específicos.
Código de Exemplo
Instruções passo a passo e códigos de exemplo de outro serviço controlando o Arduino via IFTTT estão disponíveis nos seguintes tutoriais:
Como o Arduino aciona/envia dados para um serviço externo via IFTTT
Como mencionado acima, um Applet do IFTTT normalmente inclui dois serviços IFTTT: um atua como gatilho e o outro atua como ação. Neste caso, o Webhooks atua como ação.
Na interação entre o Arduino e o Webhooks, o Arduino atua como cliente web e o Webhooks do IFTTT atua como servidor web.
O fluxo de trabalho:
- O Arduino faz uma requisição HTTP ou HTTPS ao Webhooks do IFTTT
- O Webhooks extrai os dados da requisição HTTP, se houver
- O Webhooks do IFTTT aciona outro serviço do IFTTT (incluindo os dados, se houver).
- O outro serviço do IFTTT executa a ação
A imagem abaixo mostra como o Arduino envia um email via IFTTT

Como Fazer
O que precisamos fazer
- Faça login no IFTTT
- Crie um Applet que conecte o Webhooks ao serviço desejado (por exemplo, Email, Twitter, VoIP ...). O Webhooks atua como gatilho e o outro serviço atua como ação
- Vá até a página de documentação do Webhooks para obter a chave do Webhooks.
- Escreva o código Arduino para fazer uma requisição HTTP (POST ou GET) ao Webhooks.
Para aprender como fazer requisições HTTP usando o Arduino.
O que precisamos incluir na requisição HTTP
- Chave do Webhooks: chave única e secreta que identifica o seu Webhooks. Cada conta tem apenas uma chave. Você pode entrar na sua conta e copiá-la no site do IFTTT
- Nome do evento: o nome que identifica o evento. Você define o nome do evento ao criar o applet. Uma conta pode criar vários nomes de evento.
- (Opcional) dados: você pode enviar os dados do sensor para o IFTTT
A chave do Webhooks e o nome do evento fazem parte da URL. Os dados são opcionais e são incluídos na query string. Como mencionado no tutorial de HTTP, a query string faz parte da URL na requisição GET e é o corpo HTTP na requisição POST.
A query string permite no máximo 3 variáveis com nomes fixos: value1, value2, value3.
Formato da requisição HTTP GET:
- Enviar o gatilho sem dados: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY
- Enviar o gatilho com uma variável: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10
- Enviar o gatilho com duas variáveis: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21
- Enviar o gatilho com três variáveis: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25
Substitua EVENT-NAME, YOUR-KEY e os valores no formato acima.
Como enviar dados do Arduino para o IFTTT
Para enviar dados do Arduino para outro serviço IFTTT (por exemplo, Email, Facebook), precisamos:
- No Arduino: incluir os dados na requisição HTTP
- No Applet: modificar as configurações para extrair os dados da requisição HTTP.
Existem 5 variáveis que podemos usar nas configurações do Applet do IFTTT:
| {{EventName}} | Extraído da requisição HTTP |
|---|---|
| {{OccurredAt}} | Hora do sistema em que o evento ocorre |
| {{Value1}} | Extraído da variável value1 da query string na requisição HTTP |
| {{Value2}} | Extraído da variável value2 da query string na requisição HTTP |
| {{Value3}} | Extraído da variável value3 da query string na requisição HTTP |
As instruções detalhadas passo a passo serão apresentadas em tutoriais específicos.
Código de Exemplo
Instruções passo a passo e códigos de exemplo do Arduino enviando dados para outro serviço IFTTT via IFTTT estão disponíveis nos seguintes tutoriais:
Conhecimentos Adicionais
⇒ A sua requisição HTTP contém a sua chave do Webhooks. Cada conta tem uma chave do Webhooks única. O IFTTT usa a chave do Webhooks para identificar você.
⇒ Você pode criar vários applets. Cada applet corresponde a um gatilho.
você pode combinar alguns dados em uma única variável da query string com um delimitador definido por você. Por exemplo: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25-32