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 appletsposteriormente en new applet.

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.

webhooks

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

event.PNG

2. Configurar la acción

Nuestra acción será una notificación

thath

Buscamos nuestro servicio de acción: notifications

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.

notifications-config

3. Programando el ESP8266

En este punto se supone que ya tienes tu modulo configurado con el IDE de arduino.

Realiza las siguientes conexiones:

sensor_movimiento_nodemuc (2)

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

url-webhooks

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

url-webhooks-test

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);
 }
}

push-android

Para concluir

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