Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Registro de Temperatura y Humedad con Spark Core y Ubidots
Registro de Temperatura y Humedad con Spark Core y Ubidots

En este tutorial de Spark Core, conectaremos el Spark Core a Ubidots, registrando las variables de temperatura y humedad en la nube.

David Sepúlveda avatar
Escrito por David Sepúlveda
Actualizado hace más de 3 meses

El Spark Core es una plataforma de desarrollo de código abierto impulsada por la nube. Es pequeño pero potente, y es fácil de programar porque es compatible con Arduino.

En este tutorial de Spark Core, conectaremos el Spark Core a Ubidots, registrando variables de temperatura y humedad en la nube.

1. Materiales

  • Resistor de 10k

  • Algunos cables de puente

2. Cableado

Sigue el diagrama a continuación para configurar el hardware.

3. Programación

  • Primero que nada, como usuario registrado en Ubidots, crea una Fuente de Datos llamada "Spark Core" y añade dos nuevas variables (temperatura y humedad) a ella. Toma nota de tu token y el id de las variables.

  • Crea una nueva aplicación llamada "send-value-ubidots" en el IDE de Spark Build.

  • Haz clic en el ícono de “Bibliotecas” en la esquina inferior izquierda y busca una biblioteca HTTP llamada “HTTPCLIENT”:

  • Haz clic en la biblioteca “HTTPCLIENT” y luego haz clic en “INCLUIR EN LA APLICACIÓN”

  • Haz clic nuevamente en el ícono de Bibliotecas. Esta vez busca una biblioteca llamada "Adafruit_dht"

  • Haz clic en la biblioteca “ADAFRUIT_DHT” y luego haz clic en “INCLUIR EN LA APLICACIÓN”

  • Ahora copia y pega el siguiente código en tu aplicación “send-value-ubidots” (no olvides reemplazar el TOKEN y el ID DE VARIABLES con los de tu cuenta de Ubidots):

//Esta declaración #include fue añadida automáticamente por el IDE de Spark.#include "Adafruit_DHT/Adafruit_DHT.h"// Esta declaración #include fue añadida automáticamente por el IDE de Spark.#include "HttpClient/HttpClient.h"HttpClient http;#define VARIABLE_ID "53f6caea76254277ef8837cd"#define VARIABLE_ID2 "53f63fa576254235bec59148"#define TOKEN "cfaI5R1bcr7wlwf58hAnNZNNvfSoUk"int lightLevel = 0;#define DHTPIN 2 // a qué pin estamos conectados// Descomenta el tipo que estés usando!#define DHTTYPE DHT11		//DHT 11 DHT dht(DHTPIN, DHTTYPE);// Leer temperatura o humedad toma aproximadamente 250 milisegundos!// Las lecturas del sensor también pueden estar hasta 2 segundos 'antiguas' (es un // sensor muy lento)// Leer temperatura en Celsius// Los encabezados actualmente deben establecerse en la inicialización, útil para claves API, etc.http_header_t headers[] = ##{{ "Content-Type", "application/json" }, { "X-Auth-Token" , TOKEN }, { NULL, NULL }};// NOTA: Siempre termina los encabezados con NULL};http_request_t request;http_response_t response;void setup() {     request.hostname = "industrial.api.ubidots.com";     request.port = 80;     Serial.begin(9600);    dht.begin();}void loop() {	    float h = dht.getHumidity();    float t = dht.getTempCelcius();     request.path = "/api/v1.6/variables/"VARIABLE_ID"/values";    request.body = "{\"value\":" + String(t) + "}";    http.post(request, response, headers);     Serial.println(response.body);    request.path = "/api/v1.6/variables/"VARIABLE_ID2"/values";     request.body = "{\"value\":" + String(h) + "}";    http.post(request, response, headers);    Serial.println(response.body);     Serial.print("la temperatura es: ");    Serial.println(t);    Serial.print("la humedad relativa es: ");    Serial.println(h);    delay(2000);}

ver rawtempSpark.ino alojado con ❤ por GitHub

4. Crear widgets en vivo para mostrar los datos

  • En tu panel, haz clic en "Agregar nuevo widget".

  • Agrega dos gráficos de líneas, eligiendo temperatura y humedad como variables.

  • Haz clic en el ícono de compartir y selecciona el código de inserción, luego copia la etiqueta iframe. ¡Puedes pegar esto en tu propia página web!

  • Así es como se ve en una página web local que acabo de crear:

5. Crear nuevos datos usando una fórmula matemática

Una de las cosas buenas de Ubidots es lo fácil que es crear fórmulas matemáticas para transformar los datos originales en otras variables.

Por ejemplo, vamos a convertir entre grados Celsius y Fahrenheit. Para hacer esto, solo crea una nueva variable y marca la casilla "Esta es una variable derivada", luego ingresa tu fórmula:

Consejo Pro: Esta función es bastante útil al calibrar tu sensor para una adición o sustracción de offset dada y recalibración según sea necesario.

6. Conclusión

En esta publicación aprendimos cómo conectar un Spark Core a Ubidots, medir variables físicas y compartir tus resultados. Ahora puedes probar otros widgets como "métrico", "indicador" y "gráfico de múltiples líneas". En solo unos pocos pasos, puedes agregar gráficos bonitos y limpios a tus proyectos.

No olvides revisar algunas de nuestras publicaciones más recientes:

Si eres nuevo en Ubidots, haz clic a continuación para comenzar:

Contenido publicado originalmente en el blog de Ubidots el 8 de agosto de 2014.

¿Ha quedado contestada tu pregunta?