IFTTT en ingles es la abreviación de «If this, then that» y significa, que si sucede una cosa, en automático sucederá otra. Esas cosas pueden ir desde recibir un correo si va a llover hasta encender el wifi cuando llegamos a casa, la combinación de applets es bastante amplia así como las empresas que cuentan con sus «recetas» para que puedas utilizar distintos servicios que te proporcionan. En este tutorial trabajaremos la interefaz con Arduino y como hacer la conexión a servicios de notificaciones push.
Para empezar necesitamos crear una cuenta en IFTTT, puedes iniciar sesión con facebook o con tu cuenta de gmail, te tomara unos segundos.
Materiales:
- Node MCU ESP8266
- Sensor de movimiento
- Cables dupont
1.Crear nuevo applet
Un applet es una «receta» de automatización que ejecutará una acción, en nuestra cuenta damos clic en my applets, posteriormente en new applet.

La primera opción es configurar el trigger o disparador, en nuestro caso será nuestro Arduino cuando el sensor de movimiento se active. Al dar clic en this , se nos abre la siguiente opción de servicio, buscamos webhooks.

Esto es básicamente un webservice que se ejecuta en los servidores de IFTTT, posteriormente configuramos el nombre del evento a «sensor_movimiento»

2. Configurar la acción
Nuestra acción será una notificación

Buscamos nuestro servicio de acción: notifications

Modificamos el mensaje que llevara la push. «EventName» es el nombre que configuramos en el paso uno, se pone entre doble llave y comillas doble.

3. Programando el ESP8266
En este punto se supone que ya tienes tu modulo configurado con el IDE de arduino.
Realiza las siguientes conexiones:

Revisa en tu cuenta tu configuración de url para acceder a iftt

Copia la URL en tu navegador para probar el servicio de push, debes tener instalada la aplicación IFTTT en tu smartphone.

Cambia el nombre del evento a «sensor_movimiento» y prueba el servicio, en ese instante te debe llegar una notificación a tu teléfono.
Identifica tu key, ya que la necesitaras en el siguiente paso:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
const char* ssid = "tuSSID";
const char* password = "tuPASSWORD";
const int sensor = 5;
const char* host = "maker.ifttt.com";
const int httpsPort = 80;
String key = "tustringKEY";
String evento = "sensor_movimiento";
WiFiClient client;
void setup() {
pinMode(sensor,INPUT);
Serial.begin(115200);
Serial.println();
Serial.print("Conectando wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado!");
Serial.println("IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
if(digitalRead(sensor))
{
Serial.println("Sensor activado");
Serial.print("Conectando a: ");
Serial.println(host);
if (!client.connect(host, httpsPort)) {
Serial.println("conexion fallida");
return;
}
String url = "/trigger/"+evento+"/with/key/"+key;
Serial.print("requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"User-Agent: Arduino\r\n" +
"Connection: close\r\n\r\n");
Serial.println("request sent");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("headers received");
break;
}
}
String line = client.readStringUntil('\n');
Serial.println("reply was:");
Serial.println("==========");
Serial.println(line);
Serial.println("==========");
Serial.println("closing connection");
delay(10000);
}
}

Para concluir
IFTTT nos ofrece distintos servicios para conectar aplicaciones y hardware, seguiremos explorando las posibilidades en próximos tutoriales.