Arduino - IFTTT
En este tutorial, vamos a aprender cómo usar Arduino con IFTTT. En detalle, aprenderemos:
- ¿Qué es IFTTT?
- Cómo funcionan Arduino e IFTTT entre sí
- Cómo los servicios externos (Google Assistant, Alexa ...) controlan Arduino a través de IFTTT
- Cómo Arduino activa y envía datos a servicios externos (correo electrónico, SMS, llamada de voz, ...) a través de IFTTT
IFTTT hace posible Arduino:
- Arduino envía la notificación a tu teléfono inteligente
- Arduino envía el correo electrónico
- Arduino envía el mensaje SMS
- Google Assistant controla Arduino
- Amazon Echo (Alexa) controla Arduino
- Configura un horario para Arduino a través de Google Calendar
Y mucho, mucho más que esos.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
¿Qué es IFTTT?
IFTTT es un servicio web gratuito que conecta diferentes servicios web (p. ej., Facebook, correo electrónico, Twitter, Google Assistant, etc.) entre sí. Por ejemplo:
- Si conectas tu Facebook a tu Dropbox a través de IFTTT, cada vez que publiques una foto en Facebook, IFTTT puede guardar automáticamente la foto en Dropbox.
- Si conectas tu Amazon Alex a tu correo electrónico a través de IFTTT, IFTTT puede enviarte automáticamente un correo electrónico cada vez que le preguntes a Alexa qué hay en tu lista de compras.
Hay cuatro conceptos importantes en IFTTT: Applet, servicio, disparador y acción.
- IFTTT está compuesto por Applets.
- El Applet generalmente se compone de dos servicios de IFTTT. Un servicio actúa como un disparador y el otro actúa como una acción. Servicio de IFTTT en un Applet están conectados entre sí.
- Servicio de IFTTT (p. ej. Twitter, Dropbox, Evernote, Facebook, Email, Amazon Alexa y Google Assistant...) hace alguna de las siguientes:
- Recibe la solicitud desde el exterior y luego dispara otros servicios de IFTTT en el mismo Applets (actúan como los disparadores)
- Puede ser activado por otros servicios de IFTTT en el mismo Applets, y luego hacer algo con servicios externos (actúa como la acción)
- Un applet puede estar compuesto por tres o más servicios de IFTTT. Esto está fuera del alcance de este tutorial.
- Por favor, no confunda el servicio de IFTTT con el servicio externo. Pueden tener el mismo nombre. Por ejemplo, Alexa es un servicio de voz creado y propiedad de Amazon; IFTTT también tiene un servicio llamado Alexa que interactúa con Amazon Alexa. Por lo tanto, llamemos al servicio en IFTTT servicio de IFTTT, y el servicio que no es de IFTTT es el servicio externo.
- por la empresa IFTTT: solo necesitas habilitarlo para poder usarlo
- por un tercero: solo necesitas habilitarlo para poder usarlo
- por ti mismo: Puedes crear tu propio Applet, habilitarlo para usarlo. Es muy fácil crear Applets.
※ Nota:
El Applet se crea:
Para trabajar con Arduino, necesitas crear un Applet por ti mismo. No te preocupes, es muy fácil crear un Applet.
IFTTT significa "Si Esto Entonces Eso". Significa que si se activa un servicio, otro servicio de IFTTT toma la acción.
Requisito
Crea una cuenta de IFTTT. Es gratis y completamente sencillo de crear.
Cómo Arduino y IFTTT trabajan juntos
En general, Arduino interactúa con IFTTT; IFTTT interactúa con los servicios externos y viceversa.

Con más detalle, Arduino interactúa con un Applet en IFTTT, el Applet interactúa con servicios externos, y viceversa.
En profundidad, Arduino interactúa con el servicio Webhooks en IFTTT, el servicio Webhooks dispara otro servicio en IFTTT, el otro servicio en IFTTT interactúa con servicios externos, y viceversa. A continuación se muestra un ejemplo de cómo Arduino interactúa con Amazon Echo Dot.

Resumen
| In general | Arduino | ↔ | IFTTT | ↔ | Outside services |
| More detail | Arduino | ↔ | Applet in IFTTT | ↔ | Outside services |
| In depth | Arduino | ↔ | (Webhooks ↔ Other service) in IFTTT | ↔ | Outside services |
Necesitamos crear un Applet de Webhooks y otro servicio. Dependiendo del caso de uso, los Webhooks pueden actuar como el disparador o la acción.
Hay dos categorías de casos de uso:
- Otro servicio controla Arduino vía IFTTT (p. ej. Google Assistant, Amazon Alexa controlan Arduino)
- Arduino envía datos a otro servicio IFTTT vía IFTTT (p. ej. enviar notificaciones a tu teléfono, publicar en Twitter)
Veamos uno por uno en detalle.
Cómo los servicios externos controlan Arduino a través de IFTTT
Como se mencionó anteriormente, los Applets de IFTTT suelen incluir dos servicios de IFTTT: uno actúa como el disparador y el otro actúa como la acción. En este caso, Webhooks actúa como el disparador.
En la interacción entre Arduino y Webhooks, Arduino actúa como servidor web, los Webhooks de IFTTT actúan como cliente web.
El flujo de trabajo:
- Un servicio dispara un evento al servicio correspondiente en IFTTT.
- El servicio correspondiente en IFTTT extrae los datos del evento, si están disponibles.
- El servicio correspondiente en IFTTT dispara Webhooks de IFTTT (incluyendo los datos si están disponibles).
- Los Webhooks de IFTTT realizan la acción haciendo una solicitud HTTP a Arduino (incluyendo datos si están disponibles).
- Arduino extrae los datos de la solicitud HTTP y hace algo.
La imagen de abajo muestra cómo Amazon Echo controla Arduino a través de IFTTT

Cómo usar IFTTT con Arduino
- Inicia sesión en IFTTT
- Crea un Applet, que conecte un servicio (p. ej. Google Assistant, Amazon Alexa, Google Calendar ...) a Webhooks. Webhooks actúan como la acción y otro servicio actúa como el disparador
- Escribe código de Arduino para manejar la solicitud HTTP de Webhooks.
Cuando creas el Applet, la dirección IP de Arduino se introduce en la configuración del Applet. Cuando se activa un evento, IFTTT realiza una solicitud HTTP a Arduino mediante la dirección IP introducida.
Las instrucciones detalladas paso a paso se presentarán en tutoriales específicos.
Ejemplo de código
Las instrucciones paso a paso y los códigos de ejemplo de otro servicio de control de Arduino mediante IFTTT están disponibles en los siguientes tutoriales:
Cómo Arduino activa el envío de datos a un servicio externo a través de IFTTT
Como se mencionó anteriormente, un IFTTT Applets suele incluir dos servicios de IFTTT: uno actúa como el disparador y el otro actúa como la acción. En este caso, Webhooks actúa como la acción.
En la interacción entre Arduino y Webhooks, Arduino actúa como cliente web y Webhooks de IFTTT actúan como servidor web.
El flujo de trabajo:
- Arduino realiza una solicitud HTTP o HTTPS a Webhooks de IFTTT
- Webhooks extraen los datos de la solicitud HTTP si están disponibles
- Webhooks de IFTTT disparan otro servicio de IFTTT (incluyendo los datos si están disponibles).
- Otro servicio de IFTTT ejecuta la acción.
La imagen de abajo muestra cómo Arduino envía un correo electrónico a través de IFTTT.

Cómo
Lo que necesitamos hacer
- Inicia sesión en IFTTT
- Crea un Applet, que conecte Webhooks a un servicio deseado (p. ej. correo electrónico, Twitter, VoIP ...). Webhooks actúa como el disparador y otro servicio actúa como la acción
- Ve a la página de documentación de Webhooks para obtener la clave de Webhooks.
- Escribe código de Arduino para hacer una solicitud HTTP (POST o GET) a Webhooks.
Para aprender cómo hacer una solicitud HTTP con Arduino.
Qué debemos incluir en la solicitud HTTP
- Clave de Webhooks: clave única y secreta para identificar tus Webhooks. Una cuenta tiene solo una clave. Puedes iniciar sesión en tu cuenta y copiarla desde el sitio web de IFTTT.
- Nombre del evento: el nombre para identificar el evento. El nombre del evento lo defines tú cuando creas el applet. Una cuenta puede crear múltiples nombres de eventos.
- (Opcional) datos: puedes enviar los datos del sensor a IFTTT
La clave de Webhooks y el nombre del evento son partes de la URL. Los datos son opcionales y se incluyen en la cadena de consulta. Como se menciona en el tutorial de HTTP, la cadena de consulta es una parte de la URL en la solicitud GET y es el cuerpo HTTP en la solicitud POST.
La cadena de consulta permite un máximo de tres variables con el nombre fijo: value1, value2, value3.
Formato de solicitud HTTP GET:
- Enviar el disparador sin datos: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY
- Enviar el disparador con una variable: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10
- Enviar el disparador con dos variables: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21
- Enviar el disparador con tres variables: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25
Reemplace EVENT-NAME, YOUR-KEY y los valores en el formato anterior.
Cómo enviar datos desde Arduino a IFTTT
Para enviar datos desde Arduino a otros servicios IFTTT (por ejemplo, correo electrónico, Facebook), debemos hacer:
- En Arduino: Incluir datos en la solicitud HTTP
- En Applet: Modificar la configuración para extraer datos de la solicitud HTTP.
Hay 5 variables que podemos usar en la configuración de IFTTT Applet:
| {{EventName}} | Extracted from HTTP request |
|---|---|
| {{OccurredAt}} | System time when event occurs |
| {{Value1}} | Extracted from the variable value1 of query string in HTTP request |
| {{Value2}} | Extracted from the variable value2 of query string in HTTP request |
| {{Value3}} | Extracted from the variable value3 of query string in HTTP request |
La instrucción detallada paso a paso se presentará en tutoriales específicos.
Ejemplo de código
Instrucciones paso a paso y códigos de ejemplo para Arduino para enviar datos a otro servicio de IFTTT mediante IFTTT están disponibles en los siguientes tutoriales:
Conocimientos Adicionales
Cuando Arduino realiza una solicitud HTTP a los Webhooks de IFTTT, ¿cómo distingue IFTTT la solicitud de mi Arduino de la de otro Arduino?
⇒ Tu solicitud HTTP contiene tu clave de Webhooks. Cada cuenta tiene una clave de Webhooks única. IFTTT utiliza la clave de Webhooks para identificarte.
⇒ Puedes crear varias applets. Cada applet corresponde a un disparador.
¿Cómo puede Arduino enviar más de tres variables a IFTTT?
puedes combinar algunos datos en una sola variable de la cadena de consulta con tu delimitador diseñado. Por ejemplo: http://maker.ifttt.com/trigger/EVENT-NAME/with/key/YOUR-KEY?value1=10&value2=21&value3=25-32