Crie um Medidor IoT Web com Arduino, Yaler e IFTTT
Componentes e materiais
![]() |
Arduino Yun | × | 1 |
![]() |
Servo (Tower Pro MG996R) | × | 1 |
| Porcas e parafusos M3 | × | 3 | |
| Compensado de 4 mm | × | 1 |
Ferramentas e máquinas necessárias
| Cortadora a laser |
| Pistola de cola quente |
| Smartphone Android ou iOS |
Aplicativos e serviços online
![]() |
Serviço IFTTT Maker |
Sobre este projeto

(Fonte: Instructables)
Como construir um medidor IoT baseado em Arduino, habilitado para Web, com API REST, e conectá-lo à plataforma de mashup IFTTT.com via serviço de relay Yaler.net*.
O que há de empolgante? Com o Canal Maker, o IFTTT suporta Webhooks personalizados para integrar projetos IoT DIY. Esperava por isso desde 2011**.
Inspirado no WhereDial, um clássico DIY de Internet das Coisas, o IoT Gauge mostra a localização atual do seu proprietário. Um pouco como o Relógio dos Weasley em Harry Potter.
O design e código do IoT Gauge são genéricos e podem ser usados para exibir, por exemplo, condições climáticas. A lógica reside na nuvem; o medidor é apenas um servo com uma API.
Saudações, @tamberg
- Downloads (para o Uno)
- Biblioteca Yaler Arduino,
YalerEthernetServer.zip - Código Arduino Uno,
IoTGaugeWebService.ino
- Biblioteca Yaler Arduino,
*) Sou fundador da Yaler.
**) Zapier, outra plataforma de mashup, sempre suportou Webhooks personalizados.
Passo 1: Corte a laser e montagem do IoT Gauge




Produção das peças
- Baixe os arquivos de design do IoT Gauge
- Corte a laser o design em compensado de 4 mm
- Grave os nomes dos locais (ou o que precisar), ou adicione-os com caneta
Montagem do IoT Gauge
- Adicione o Ethernet Shield ao Arduino (para o Uno)
- Parafuse o Arduino na placa base (observe sua orientação)
- Adicione a placa frontal grande ao servo, depois a placa frontal pequena
- Encaixe a placa base em ambas as placas frontais, certificando-se de que tudo alinhe
- Cole os indicadores na placa frontal, garantindo orientação correta
- Use jumpers para conectar o servo ao pino 9, 5V e GND do Arduino (ou shield)
- Adicione o ponteiro do relógio (para calibração posterior)
Passo 2: Carregando o código do serviço Web do IoT Gauge

Serviço Web simples
Controlar o IoT Gauge é simples. Um serviço Web (ou API REST) escuta requisições recebidas e define a posição do servo conforme necessário. O IoT Gauge é apenas um servo "burro". Manter a lógica na nuvem permite trocar o "cérebro" depois, por exemplo, para exibir condições climáticas em vez de localização.
Acesso remoto ao Arduino
Para dar ao serviço em nuvem IFTTT acesso ao IoT Gauge, nossa API REST do Arduino precisa ser acessível e endereçável a partir da Web. Especialistas poderiam adicionar uma exceção no firewall ou roteador. Mas como isso pode ser complicado, usaremos um serviço de relay*.
Instalação no Arduino Uno (para Yun, veja abaixo)
- Instale a biblioteca
YalerEthernetServer.zipconforme mostrado em yaler.net/arduino - Baixe o código Arduino Uno
IoTGaugeWebService.ino - Certifique-se de usar um endereço MAC único
- Substitua RELAY_DOMAIN pelo seu domínio de relay (para obter um domínio de relay, inscreva-se para uma conta de teste gratuita em Yaler.net)
- Carregue o código no seu Arduino Uno
Instalação no Arduino Yun (para Uno, veja acima)
- Instale o YalerTunnel e habilite acesso Web conforme mostrado em yaler.net/arduino-yun
- Baixe o código Arduino Yun
IoTGaugeMailboxApi.ino - Carregue o código no seu Arduino Yun
Por que o código do Yun difere do Uno?
O Yun fornece uma API REST integrada chamada mailbox. Para tornar essa API acessível da Web, usamos o daemon Linux YalerTunnel (que também suporta criptografia SSL, ao contrário do Uno). Aproveitando o que já existe, você simplifica seu código.
Analise ambos os programas e decida por si mesmo. A API mailbox do Yun não é perfeita (e não é estritamente RESTful, pois permite GET para alterar valores), mas é baseada em um script rodando no lado Linux do Yun, que usa menos da preciosa memória do lado Arduino.
*) Se não quiser usar um serviço de relay, apenas remova-o e (para o Uno) descomente o servidor local.
Passo 3: Testando o serviço Web do Arduino com Curl

Instalando a ferramenta de linha de comando Curl
- Baixe e instale o Curl em curl.haxx.se
- Abra um shell no seu computador e teste o Curl com
$ curl -v https://google.com/
Habilitando a API do Arduino Yun (pule para o Uno)
- Alimente o Yun, aguarde um pouco, depois acesse
https://arduino.local/ - Faça login e clique em Configurar
- Role para baixo e defina acesso à API REST como Aberto
- Clique em Configurar & Reiniciar
Testando o IoT Gauge com Curl
- Certifique-se de que o Arduino está alimentado e conectado à Internet
- Defina a posição do servo para 3 (ou qualquer posição de 1 a 5) com:
$ curl -vX POST https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3
(Substitua RELAY_DOMAIN pelo domínio de relay usado antes) - Verifique se o servo moveu o ponteiro para a posição desejada (ajuste o ponteiro se necessário)
- Confirme se recebe algo como < HTTP/1.1 200 OK como resposta
- Se receber < HTTP/1.1 504, o Arduino não está online ou houve erro de digitação
Por que testar sua API com Curl?
O Curl é um cliente HTTP padrão. Seu navegador é ótimo para testar requisições GET, e existem ferramentas online para testar PUT e POST. Mas às vezes o navegador adiciona "mágica", como seguir redirecionamentos. Se você quer garantir que um cliente básico ou chamada de Webhook de terceiros (como a enviada pelo IFTTT) consiga acessar sua API de serviço Web, o Curl é ideal.
*) Para o Uno, POST /mailbox/pos/3 funciona assim como PUT /servo?pos=3 porque o código que analisa a requisição é bastante tolerante.
Passo 4: Conectando o Arduino ao canal Maker do IFTTT



Criando uma nova receita IFTTT (ou pule para adicionar uma existente)
O IFTTT permite criar receitas conectando um gatilho a uma ação.
- Acesse ifttt.com/myrecipes/personal/new (cadastre-se se ainda não o fez)
- Para escolher um canal de gatilho, pesquise por "Android Device" ou "iOS Location" e selecione o ícone do canal
- Escolha um gatilho, ex.: Conecta a uma rede WiFi específica (para Android)
- Digite um nome de rede ou localização
- Ao escolher o canal de ação, pesquise pelo canal Maker e selecione-o
- Selecione a ação Fazer uma requisição web
- Digite a URL
https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3(substitua RELAY_DOMAIN) - No Método, selecione POST
- No Tipo de Conteúdo, selecione application/x-www-form-urlencoded
- O Corpo pode ficar vazio
Adicionando uma receita IFTTT existente
O IFTTT permite que usuários publiquem receitas. Aqui estão duas para controlar seu IoT Gauge:
- Abra a receita "IoT Gauge position from Android WiFi location" aqui
- Ou a receita "IoT Gauge position from iOS location" aqui
- Ou pesquise por receitas "IoT Gauge": ifttt.com/recipes/search?q=IoT+Gauge
- Para adicionar uma instância da receita às suas receitas, clique no botão Adicionar
- Digite um nome de rede WiFi ou localização (ou o que a receita pedir)
- Substitua RELAY_DOMAIN na URL pelo domínio de relay usado antes
- Adapte o parâmetro
posna URL de 1 a 5 para corresponder à sua localização - Adicione outra instância da receita para cada localização
*) Parece que o IFTTT ainda não adiciona receitas do canal Maker aos resultados de busca.
Passo 5: Criando um botão Do do IFTTT para o IoT Gauge

Apps Do do IFTTT
O IFTTT também fornece apps Do para iOS e Android. O app permite acionar ações manualmente. Ótimo para testar suas outras receitas IFTTT.
Diferente das receitas normais, as receitas do app Do não podem (ainda?) ser compartilhadas ou tornadas públicas. Você terá que criá-las do zero.
Criando um novo botão Do do IFTTT
- Baixe o app Do Button para Android ou iPhone em ifttt.com/products/do/button
- Passe pelas telas de introdução (obrigatórias?)
- Use o pequeno ícone no canto inferior direito para abrir a lista de receitas
- Toque no sinal de mais, depois em Canais e pesquise pelo canal Maker
- Selecione a ação Fazer uma requisição web
- Digite a URL
https://RELAY_DOMAIN.try.yaler.io/mailbox/pos/3(substitua RELAY_DOMAIN) - No Método, selecione POST
- No Tipo de Conteúdo, selecione application/x-www-form-urlencoded
- O Corpo pode ficar vazio
- Toque em Adicionar para criar o botão
- Uma vez criado, a receita pode ser editada online em ifttt.com/myrecipes/do
É isso — obrigado por ler, e avise se tiver dúvidas ou sugestões.
Código
Bitbucket
Repositório do projeto disponível no Bitbucket.
Peças personalizadas e gabinetes
Esquemáticos
Processo de manufatura
- Construa um Relógio Retrô Numitron com Arduino: Simples, Confiável e Eficiente
- Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
- Monitoramento de Qualidade da Água IoT e IA Protege Vida Aquática
- MotionSense: Detecção Inteligente de Intrusão com Arduino e ESP8266
- Roda de Medição Precisa DIY com Arduino Nano e Encoder Rotativo
- Levitação Magnética Repulsiva com Arduino: Circuito Simples e Guia DIY
- Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho
- ArduFarmBot Parte 2: Construindo uma Estação de Controle IoT Remota
- Relógio Flip Arduino com Matriz LED 8×8 – Projeto DIY de Relógio em Tempo Real
- Laboratório Avançado de Microcontroladores: ESP32, Arduino, PIC e Módulos de Sensores

