La aplicación IFTTT (de las siglas de IFTTT significan “IF This, Then That”, lo que traducido al español significaría “Si esto, entonces aquello”) permite interconectar aplicaciones diferentes entre sí, así como con dispositivos del Internet de las Cosas.

Puedes dirigirte a estos links si quieres saber más sobre esta aplicación:

https://www.xataka.com/basics/que-ifttt-como-puedes-utilizar-para-crear-automatismos-tus-aplicaciones

https://www.ticbeat.com/tecnologias/guia-ifttt-que-es-como-funciona-15-recetas-utiles/

En este documento yo me voy a centrar en dos de los posibles usos de esta aplicación para conectar sistemas de medida construidos con dispositivos Arduino y/o Arduino WIFI.

En cuanto que tengas instalada la aplicación IFTTT en tu móvil y estés registrado en ella, ya podrás crear las “Applets” que serán las encargadas de ejecutar las conexiones que te interesen.

La primera rutina que describiré será una Applet que reenviará el contenido de todos los SMS que recibas procedentes de un teléfono móvil concreto (o también el contenido de cualquier SMS que recibas) a un HOJA de CÁLCULO de GOOGLE. Este tipo de servicio nos permitiría, por ejemplo, archivar los datos medidos por nuestro Barómetro SMS ( http://blog.e-ao.org/#post15 ) en la nube de Google, o de cualquier dispositivo Arduino que cuente con una tarjeta SIM y pueda enviar mensajes a nuestro móvil.

Si nuestro dispositivo Arduino estuviera programado para enviar un SMS cada cierto tiempo, o tuviéramos varios dispositivos enviándonos SMSs, crearíamos una base de datos, que tras las suficientes medidas constituiría un archivo de datos en la nube que podría ser consultado en tiempo real de manera compartida.

Para generar esta Applet simplemente seguiremos la secuencia de acciones de la figura 1 en la pantalla de nuestro móvil.


Figura 1. Secuencia de pantallas a seguir para crear la Applet IFTTT que rellena una Hoja de Cálculo GOOGLE con el contenido de los mensaje SMS recibidos desde un teléfono ( desde cualquier teléfono si no indicamos uno de referencia)

Es decir:

a) Creamos nueva Applet (icono abajo a la derecha de la primera pantalla de la aplicación IFFT) y luego arriba a la derecha el símbolo (+) de crear nueva Applet.

b) Pulsamos el IF THIS de la siguiente pantalla

c) Buscamos el servicio que nos interesa (que es en nuestro caso es la recepción de un SMS desde un teléfono concreto).

d) Pulsamos CREAR TRIGGER

e) En la siguiente pantalla pulsamos THEN THAT

f) Elegimos de nuevo el servicio (Google Sheets)

g) Seleccionamos que se añada una fila nueva (ADD ROW TO…)

h) Terminamos la creación de la subrutina selección CREATE ACTION

Con este simple proceso, ya queda programado el jecjo de que cada vez que recibamos en nuestro móvil un SMS, el día, la hora, el nº de teléfono que lo envía y el contenido del mismo (cuarta columna), se añada a una fila de nuestra hoja de cálculo tal como se puede ver en la figura 2.


Figura 2. Hoja de cálculo con los datos enviados por el Barómetro SMS. Esa hoja GOOGLE recibe como nombre el nombre de contacto de tu agenda con su número de teléfono correspondiente. En la primera fila se apunta el día y hora del envío, y en la cuarta columna el contenido del SMS.

Si en vez de una conexión telefónica, tuviéramos una conexión WIFI o 4G-INTERNET, otro procedimiento para realizar este tipo de creación de bases de datos de observación con IFTTT, sería el uso del servicio WEBHOOK ( https://es.wikipedia.org/wiki/Webhook ) que te ofrece IFTTT.

El procedimiento a seguir sería similar al que hemos seguido para los SMSs, pero esta vez elegiríamos el Servicio WEBHOOK como TRIGGER de nuestra Applet (figura 3).

Figura 3. Secuencia a seguir para crear el Applet con un Webhook

Lo que haremos es:

– Ir a nuestras Applets y pulsar (+) para crear una nueva

– Elegir el Servicio Webhook tras pulsar “IF THIS”

– Nombrar el evento disparador y pulsar “CREATE TRIGGER”

– Pulsar “THEN THAT”

– Elegir de nuevo un “GOOGLE SHEETS”

– Nombrar la hoja de cálculo que queremos crear, definir el número de celdas que queremos crear (máximo 5, con tres celdas de valores y dos iniciales que serán día-hora y una segunda con el nombre del evento). Tras esto pulsaremos “CREATE ACTION”

Y ya en la pantalla final

– Pulsar “FINISH”

Ahora es importante entender que hace el WebHook y en que consiste el TRIGGER
Para ello, vamos de nuevo a nuestros Applets en la aplicación IFTTT y buscamos arriba a la derecha de la pantalla Servicios, luego pulsamos WEBHOOK y después DOCUMENTATION (figura 4) para así obtener la pantalla copiada en la parte inferior de esa misma figura 4.


Figura 4. Documentación sobre el SERVICIO WEBHOOK

Esta documentación nos explica que el WEBHOOH es un servicio que lanza una petición POST o GET (ambas son similares) a una URL concreta que queda identificada por una llave KEY que es personal para cada usuario de IFTTT. Los métodos POST y GET (https://diego.com.es/get-y-post-en-php) son procedimientos que permiten enviar datos a un servidor desde un ordenador cliente.

Un ejemplo del método POST lo tenéis en este link (http://e-ao.org/Apuntes/BT-BMP_f12.txt). Este software escrito para un teléfono Android en el lenguaje RFO BASIC¡ permite al teléfono, tras leer vía BT los datos medidos por el Barómetro descrito en este blog (http://blog.e-ao.org/#post3), conectarse a un servidor para enviar los datos leídos a dicho servidor donde una script PHP (http://e-ao.org/Apuntes/posted.txt) los procesa creando un fichero de datos.

Para mejor entender este tipo de transferencias de datos simplemente hay que saber que cuando escribimos una cierta dirección en nuestro navegador, en realidad estamos haciendo una petición GET a un servidor concreto y a un archivo concreto. Si este archivo es un script de algún tipo, el script en el servidor se activará y ejecutará su proceso.

En el caso que nos ocupa, ya que estamos enviando datos, simplemente hay que recordar que es preciso añadir una estructura particular a esa petición al servidor y que consiste en colocar al final de la dirección URL lo siguiente:

? Value1=<secuencia de caracteres de lo que queramos enviar>

Ya que en nuestro hemos seleccionado que sólo se enviará 1 dato a la HOJA DE CALCULO GOOGLE.

En forma más clara. Si en “cualquier navegador” escribimos en la línea que nos permite conectar con cierta URL

https://maker.ifttt.com/trigger/prueba_readings/with/KEY/nXSXc…?value1=25 (1)

Donde:

– “prueba_readings” es el nombre del <EVENT> que hemos seleccionado al crear el TRIGGER (figura3)

– “NXSXc.. “es la KEY personal que aparecerá en nuestra aplicación IFTTT cuando miramos en la documentación del servicio WEBHOOK (figura 4)

– “value1=25” indica que añadiremos 25 a la tercera celda de la hoja de cálculo que estamos generando tal como hemos seleccionado durante la creación de la APPLET.

Entonces al ejecutar la expresión (1) en el navegador, el servidor correspondiente nos responderá indicando que la petición se ha procesado y casi inmediatamente la GOOGLE SHEET creada por IFTTT recibirá una nueva fila donde las dos primeras columnas presentan el día y la hora de la petición, la segunda el nombre del evento y la tercera el valor de 25 o la secuencia de caracteres que se hubiera enviado. Un ejemplo de este tipo de conexión a la nube de GOOGLE lo tenemos en la figura 5 donde los valores que se envían son la (longitud)_(latitud)_(Intensidad luminosa en luxes medida por un teléfono móvil). Esta misma petición al servidor, puede ser realizada con cualquier dispositivo Arduino que esté conectado a una red WIFI o de manera general a INTERNET


Figura 5. WEBHOOK ejemplo de la GOOGLE SHEET creada con los datos en la tercera celda de longitud_latitud_IntensidadLuminosa.

El ejemplo de la figura 5 se ha desarrollado escribiéndolo con BASIC MINTORIS para ser utilizado en un teléfono móvil SAMSUNG ANDROID. En el programa, que se presenta continuación, la instrucción HtmlLoadUrl ejecuta la petición GET a la dirección URL indicada, recargando los datos presentes en af$

====================================================
rem PROGRAMA RED MEDIDAS
rem ILUMINACION
====================================================
ao$=”https:”
a1$=”//maker.ifttt.com/trigger/prueba_readings/with/key/”
a2$=”nXSXc……?value1=”
sensors on
luz = GetLight()
luz$=str$(luz)
gps on
Latitude = GetLatitude()
Longitude = GetLongitude()
lon$=str$(Longitude)
lat$=str$(Latitude)
a3$=lon$+”_”+lat$+”_”+luz$
af$=ao$+a1$+a2$+a3$
HtmlBrowser On
HtmlLoadUrl af$
Wait 1000
HtmlBrowser Off
sensors off
gps off
print “ejecutado”
wait 1000
cls
=====================================================