Arduino - IFTTT

Neste tutorial, vamos aprender a usar o Arduino com o IFTTT. Em detalhes, vamos aprender:

O IFTTT permite que o Arduino:

E muito, muito mais do que isso.

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)

    ※ Nota:

    • 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.

    O Applet é criado:

    • 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.

    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.

Como o IFTTT funciona com o Arduino

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.

Como o IFTTT funciona com a Alexa

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:

  1. Um serviço dispara um evento para o serviço correspondente no IFTTT
  2. O serviço correspondente no IFTTT extrai os dados do evento, se houver
  3. O serviço correspondente no IFTTT aciona o Webhooks do IFTTT (incluindo os dados, se houver)
  4. O Webhooks do IFTTT executa a ação fazendo uma requisição HTTP ao Arduino (incluindo os dados, se houver)
  5. 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 o IFTTT controla o Arduino

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:

  1. O Arduino faz uma requisição HTTP ou HTTPS ao Webhooks do IFTTT
  2. O Webhooks extrai os dados da requisição HTTP, se houver
  3. O Webhooks do IFTTT aciona outro serviço do IFTTT (incluindo os dados, se houver).
  4. O outro serviço do IFTTT executa a ação

A imagem abaixo mostra como o Arduino envia um email via IFTTT

Como o Arduino funciona com o 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

Quando o Arduino faz uma requisição HTTP ao Webhooks do IFTTT, como o IFTTT distingue se a requisição vem do meu Arduino ou do Arduino de outra pessoa?

⇒ 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ê.

Como o meu Arduino pode disparar vários eventos?

⇒ Você pode criar vários applets. Cada applet corresponde a um gatilho.

Como o Arduino pode enviar mais de 3 variáveis para o IFTTT?

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

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!