Está en la página 1de 4

19/2/2018 5.

ThingSpeak: Internet of Things · jaimelaborda/Planta-Twittera Wiki · GitHub

jaimelaborda / Planta-Twittera

5. ThingSpeak: Internet of Things


Jaime Laborda edited this page on 2 May 2017 · 4 revisions

A continuación, veremos como conectarnos al servidor de ThingSpeak a través de su API para Pages 10
mandarle los datos recibidos desde los sensores.
Home

1. ¿Qué es ThingSpeak? 1. Introducción al ESP8266 y


NodeMCU

"ThingSpeak is an open source Internet of Things (IoT) application and API to store and 2. Programación en Arduino
retrieve data from things using the HTTP protocol over the Internet or via a Local Area
3. Servidor Web control de un
Network. ThingSpeak enables the creation of sensor logging applications, location tracking
LED
applications, and a social network of things with status updates".
4. Lectura de sensores
Es un conjunto de servidor web, más una base de datos y una API que nos permite almacenar y
5. ThingSpeak: Internet of
transmitir datos usando el protocolo HTTP. Al ser de código abierto nos permite bajarnos dicho
Things
código y hacer una instancia de ThingSpeak en nuestro propio servidor o incluso realizar
modificaciones en su API para atender a nuestras necesidades. 6. Enviando datos a ThingSpeak

7. Mi primer tweet desde


Lo que caracteriza e ThingSpeak es su sencillez, y es que nos permite desarrollar una aplicación Arduino
visual para mostrar nuestros datos en pocos minutos y así centrarnos en la parte Hardware.
8. Planta Twittera
Además ThingSpeak, al estar desarrollada por Mathworks, ofrece total integración con el
Bibliografía
archiconocido por todos: Matlab.

Hay muchas otras plataformas de desarrollo del estilo de ThingSpeak que ofrecen sus APIs Clone this wiki locally
preparadas para desarrollar proyectos de IoT, pero en este taller usaremos ThingSpeak por ser una
https://github.com/jaimelab
de las más sencillas, conocidas y fáciles de usar, además de cumplir con los requisitos necesarios
para el taller. Clone in Desktop

2. Creación de una cuenta en ThingSpeak


El primer paso para empezar a utilizar esta potente herramienta, será registrarnos en su servicio
web. Nos iremos a su web https://thingspeak.com/ y registraremos una cuenta en el apartado de
Sign Up. Será necesario disponer de una cuenta de email válida.

Una vez registrados, nos logueamos y vamos al apartado de Channels

En ThingSpeak cada uno de nuestros proyectos irá en un canal, donde podremos poner hasta 8
variables distintas. ThingSpeak también permite la creación de un canal mediante su API, pero esta
vez lo haremos a través de la web.

https://github.com/jaimelaborda/Planta-Twittera/wiki/5.-ThingSpeak:-Internet-of-Things 1/4
19/2/2018 5. ThingSpeak: Internet of Things · jaimelaborda/Planta-Twittera Wiki · GitHub

Nos pedirá un Nombre para el canal, así como una descripción y algunos datos más. Es importante
que definamos los campos que vamos a usar para almacenar las variables, y anotemos el orden de
estos para que saber que variable de nuestro proyecto, irá a que campo.

Por ahora introduciremos los siguientes campos como se ven en la imagen adjunta:

Field1: Temperatura: Corresponde con la variable temperatura que obtenemos del sensor
DHT11
Field2: Humedad relativa: También recogida por el sensor DHT11
Field3: Humedad suelo: Será la variable humedad de suelo después de ser procesada.

Si no hemos equivocado o queremos hacer cambios, podremos editar toda esta configuración
desde el apartado de Channel Settings.

En Private View o Public View si hemos marcado la opción Public podremos ver las gráficas
que se irá actualizando en tiempo real según vayamos enviando datos.

3. Obtención de la API KEY


El siguiente paso será obtener una API Key con la que poder conectarnos a ThingSpeak. La API Key
es una contraseña que nos permite que solo podamos enviar datos a la web si disponemos de este
pass ya que no queremos que nadie pueda falsear los datos de nuestra planta, ¿verdad?.

Existe una APIKey para leer y otra para escribir. En nuestro caso queremos leer, pero ThingSpeak
también dispone de métodos en su API para leer a través de un GET.

Será importante anotar nuestra Write API Key para conectarnos posteriormente.

Adicionalmente, se muestra a la derecha del panel de la contraseña información relativa a las


funciones de la API para crear, actualizar o borrar un canal. Eso no nos interesa por el momento.

4. ¿Qué es una API?


La abreviatura viene del término en inglés Application Programming Interfaces (Interfaces de
programación de aplicaciones) y según explica el científico en computación Benjy Weinberger
en su blog, una API es una especificación formal sobre cómo un módulo de un software se
comunica o interactúa con otro.

En otras palabras, las API son un conjunto de comandos, funciones y protocolos informáticos
que permiten a los desarrolladores crear programas específicos para ciertos sistemas
operativos. Las API simplifican en gran medida el trabajo de un creador de programas, ya que
no tiene que «escribir» códigos desde cero. Estas permiten al informático usar funciones
predefinidas para interactuar con el sistema operativo o con otro programa.

https://github.com/jaimelaborda/Planta-Twittera/wiki/5.-ThingSpeak:-Internet-of-Things 2/4
19/2/2018 5. ThingSpeak: Internet of Things · jaimelaborda/Planta-Twittera Wiki · GitHub

Las funciones que nos interesan son las de escritura, las cuales se basan en una llamada HTTP a
una petición POST. No entraremos en detalle sobre lo que esto significa, pero a grandes rasgos
conviene saber que:

GET: Pedir al servidor un servicio


POST: Actualizar una variable creando un nuevo registro
PUT: Modificar un valor de un registro
DELETE: Borrar un valor de un registro

Para consultar la forma de utilizar la API de ThingSpeak, nos vamos a la pestaña de Data
Import/Export dentro de nuestro Channel. Observamos que a parte de permitirnos exportar e
importar valores desde un archivo local separado por comas (CSV), también nos indica a la derecha
la comunicación con la API para realizar API Request o peticiones, ya sean POST para escribir o GET
para leer.

Nos interesa el POST:

POST https://api.thingspeak.com/update.json
api_key=XXXXXXXXXXXXXXXX
field1=73

donde la api_key será nuestra contraseña y field1 será el valor que queremos actualizar.

5. ThingTweet: Vamos a Twittear un rato


Ya era hora, ¿no?. Efectivamente: El siguiente paso es conectarnos con Twitter y dejarlo todo
preparado para poder twittear desde nuestro dispositivo ESP8266.

Para este cometido, usamos ThingTweet, también de ThingSpeak (¿veis por que no era casualidad
la elección de esta plataforma?. Podríamos conectarnos directamente con la API de Twitter (se lo
que estáis pensando, todo el mundo tiene una API hoy en día), pero ThingTweet facilita las cosas
enormemente.

Nos dirigimos a la pestaña de Apps dentro de ThingSpeak y, junto con un montón de aplicaciones
de gran utilidad que te recomiendo que investigues, encontramos ThingTweet. Nos pedirá que
enlacemos nuestra cuenta de Twitter, no deberíamos tener demasiados problemas para ello.
Simplemente loguearnos a nuestra cuenta (si no tienes, ya estás tardando en creartela) y autorizar
a ThingSpeak a conectarse con ella.

Hecho esto nos generará una API Key (si, otra), que utilizaremos para realizar POST y poner Tweets
de esta manera:

POST https://api.thingspeak.com/apps/thingtweet/1/statuses/update
api_key=XXXXXXXXXXXXXXXX
status=I just posted this from my thing!

En vez de ThingTweet podríamos haber utilizado la aplicación de React la cual nos permite
reaccionar a un valor de un campo de uno de los canales que tengamos para realizar una acción
que elijamos. Nosotros esta reacción la vamos a hacer desde Arduino por aquello de decir: "¡He
enviado un tweet con un Arduino!".

https://github.com/jaimelaborda/Planta-Twittera/wiki/5.-ThingSpeak:-Internet-of-Things 3/4
19/2/2018 5. ThingSpeak: Internet of Things · jaimelaborda/Planta-Twittera Wiki · GitHub

Planta Twittera con ESP8266 - Jaime Laborda Macario

MakersUPV.com

https://github.com/jaimelaborda/Planta-Twittera/wiki/5.-ThingSpeak:-Internet-of-Things 4/4