Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conecta tu dispositivo Particle a Ubidots usando Webhooks de Particle
Conecta tu dispositivo Particle a Ubidots usando Webhooks de Particle

Publica/obtén datos en/de la nube de Particle con un webhook a/de Ubidots y permite que tus datos impulsen decisiones y resuelvan problemas.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 2 meses

Los dispositivos Particle son kits de desarrollo de hardware compactos y fáciles de programar que proporcionan todo lo que necesitas para construir soluciones conectadas a la nube. Combinan un microcontrolador ARM, un chip de comunicación (WiFi, GPRS o 3G) y un IDE web con toneladas de ejemplos y bibliotecas de la comunidad para comenzar rápidamente.

Para integrar los datos de tu dispositivo Particle en tu aplicación Powered by Ubidots, se utilizará un webhook para conectar la nube de Particle con Ubidots.

Los webhooks permiten que un dispositivo genere un evento basado en una condición o valores de variables. Por ejemplo, puedes conectar un sensor de movimiento a un dispositivo y hacer que los datos registrados desencadenen un evento cada vez que se detecte movimiento. O como dice Particle: "Los webhooks cierran la brecha entre el mundo físico y el digital, ayudándote a llevar tus datos donde los necesitas".

En este tutorial explicaremos cómo interactuar con la API REST de Ubidots utilizando la nube de Particle y los webhooks. Para obtener detalles adicionales sobre cómo conectar tus dispositivos Particle a Ubidots, asegúrate de consultar Conectar un dispositivo Particle a Ubidots.

Requisitos

Tabla de Contenidos

  1. Crear un Webhook de Particle a Ubidots

  2. Crear una Nueva App y Agregar Biblioteca de Ubidots

  3. Código de ejemplo de Webhook1: Enviar Múltiples Variables a Ubidots

  4. Código de ejemplo de Webhook2: Enviar Variable de Posición que contiene LAT y LNG Geocoordenadas

  5. Crear un Webhook de Ubidots a Particle para Controlar Cosas

  6. Solución de Problemas & Consejos Profesionales
    – Accediendo a los Registros de Particle

Materiales y detalles adicionales del equipo de Particle

1. Crear un Webhook de Particle a Ubidots


Si no estás familiarizado con Particle y su función de Webhook, puedes aprender rápidamente más sobre este método de comunicación aquí.

Para comenzar tu conexión Particle - Ubidots, primero necesitarás configurar tu dispositivo Particle (Photon, Core o Electron) dentro de tu cuenta de Particle. Haz clic aquí para ver pasos simples para configurar tu dispositivo con la plataforma de dispositivos de Particle.

Después de reclamar tus dispositivos en la nube de Particle, continúa con los siguientes pasos:

Paso 1: Ve a tu cuenta de Particle, inicia sesión y crea una "Nueva Integración"
Paso 2: Ve a tu consola de Particle y elige Integraciones
Paso 3: Selecciona "Nueva Integración"
Paso 4: Selecciona "Webhook"
Paso 5: Nombra el nuevo Webhook
Paso 6: Agrega la URL de ejemplo a continuación
Webhook URL:

https://industrial.api.ubidots.com/api/v1.6/devices/##{#{{PARTICLE_DEVICE_ID}}}

NOTA IMPORTANTE: Vamos a llamar y asignar automáticamente el ID del Dispositivo de Particle para asegurar que la etiqueta del dispositivo en Ubidots permanezca única. Para hacer esto, vamos a usar la clave predefinida disponible de Particle:##{#{{PARTICLE_DEVICE_ID}}} Esta llamada asignará automáticamente a la URL el ID del dispositivo que activó el webhook.

Paso 7: Selecciona el método "POST"
Paso 8: Selecciona el formato de solicitud "Cuerpo Personalizado"
Paso 9: Haz que el Webhook esté disponible para TODOS los dispositivos de tu cuenta eligiendo "Cualquiera"

Paso 10: Selecciona CONFIGURACIÓN AVANZADA

  • Completa el editor de texto como se muestra a continuación:

##{#{{PARTICLE_EVENT_VALUE}}}
  • En las opciones de Encabezados HTTP de la configuración, completa como se ve a continuación:

X-Auth-Token | YOUR_UBIDOTS_TOKEN_HERE
Content-Type | application/json

Para encontrar tu TOKEN de Ubidots, consulta aquí.

Paso 11: CREA WEBHOOK y verifica que los datos se estén transmitiendo a Ubidots.

2. Crear una Nueva App y Agregar Biblioteca de Ubidots

Después de configurar el webhook en tu cuenta de Particle, ve al IDE Web de Particle y "Crear Nueva App." Para obtener detalles adicionales sobre cómo "Crear Nueva App," simplemente haz clic aquí y sigue el sencillo proceso de 3 pasos.

Paso 1: Crea una Nueva APP en Particle IDE
Paso 2: Asigna un Nombre a la App
Paso 3: Agrega la biblioteca de Ubidots al proyecto "Myapp":

  • Ve a la opción de Bibliotecas en el panel lateral derecho.

  • Busca "Ubidots".

  • Selecciona la Biblioteca de Ubidots.NOTA: Ten cuidado de no elegir la Biblioteca UbidotsMQTT.

  • Haz clic en "INCLUIR EN EL PROYECTO".

  • Selecciona el proyecto para incluir la biblioteca. En este caso "Myapp".

  • Haz clic en "CONFIRMAR".

NOTA IMPORTANTE: En las secciones a continuación necesitarás seguir estos pasos nuevamente para crear una Nueva App y agregar la biblioteca de Ubidots a ella.

3. Código de ejemplo de Webhook 1: Enviar Múltiples Variables a Ubidots

Ahora que el Webhook está configurado, la Nueva App creada y la biblioteca de Ubidots agregada de las bibliotecas disponibles, ¡es hora de codificar! :)

Paso 1: Copia y Pega el código a continuación
Paso 2: Verifica el Código
Paso 3: Flashea el Código

// Este ejemplo envía datos a una variable a// Ubidots usando Webhooks de Particle./****************************************        Incluir Bibliotecas***************************************/#include "Ubidots.h"/****************************************      Definir Instancias y Constantes***************************************/const char *WEBHOOK_NAME = "Ubidots";Ubidots ubidots("webhook", UBI_PARTICLE);/****************************************          Funciones Auxiliares***************************************///Pon aquí tus funciones auxiliares/****************************************             Funciones Principales***************************************/void setup(){    Serial.begin(115200);    //ubidots.setDebug(true); // Descomenta esta línea para imprimir mensajes de depuración}void loop(){    float value1 = analogRead(A0);    float value2 = analogRead(A1);    float value3 = analogRead(A2);    ubidots.add("Variable_Name_One", value1); // Cambia por el nombre de tu variable    ubidots.add("Variable_Name_Two", value2);    ubidots.add("Variable_Name_Three", value3);    bool bufferSent = false;    bufferSent = ubidots.send(WEBHOOK_NAME, PUBLIC); // Usará webhooks de particle para enviar datos    if (bufferSent)    {        // Haz algo si los valores fueron enviados correctamente        Serial.println("Valores enviados por el dispositivo");    }    delay(5000);}

4. Código de ejemplo de Webhook 2: Enviar Variable de Posición que contiene Geocoordenadas LAT y LNG

Ahora que el Webhook está configurado, la Nueva App creada y la Biblioteca de Ubidots agregada, ¡es hora de codificar! :)
NOTA IMPORTANTE: No olvides seguir los pasos en la Sección 2.

Paso 1: Copia y Pega el código a continuación
Paso 2: Verifica el Código
Paso 3: Flashea el Código

// Este ejemplo envía datos a una variable junto con coordenadas GPS codificadas// a Ubidots usando Webhooks de Particle./****************************************           Incluir Bibliotecas***************************************/#include "Ubidots.h"/****************************************      Definir Instancias y Constantes***************************************/const char *WEBHOOK_NAME = "Ubidots";Ubidots ubidots("webhook", UBI_PARTICLE);/****************************************           Funciones Auxiliares***************************************///Pon aquí tus funciones auxiliares/****************************************            Funciones Principales***************************************/void setup(){    Serial.begin(115200);    ubidots.setDebug(true); // Descomenta esta línea para imprimir mensajes de depuración}void loop(){    float value = analogRead(A0);    /* Coordenadas codificadas */    float latitude = 37.773;    float longitude = -6.2345;    /* Reserva 10 bytes de memoria para almacenar los valores de las claves de contexto, agrega tanto como necesites */    char *str_lat = (char *)malloc(sizeof(char) * 10);    char *str_lng = (char *)malloc(sizeof(char) * 10);    /* Guarda las coordenadas como char*/    sprintf(str_lat, "%f", latitude);    sprintf(str_lng, "%f", longitude);    /* Reserva memoria para almacenar el array de contexto */    char *context = (char *)malloc(sizeof(char) * 50);    /* Agrega pares clave-valor de contexto */    ubidots.addContext("lat", str_lat);    ubidots.addContext("lng", str_lng);    /* Construye el contexto con las coordenadas para enviar a Ubidots */    ubidots.getContext(context);    /* Envía la posición */    ubidots.add("position", value, context); // Cambia por el nombre de tu variable    bool bufferSent = false;    bufferSent = ubidots.send(WEBHOOK_NAME, PUBLIC); // Usará webhooks de particle para enviar datos    if (bufferSent)    {        // Haz algo si los valores fueron enviados correctamente        Serial.println("Valores enviados por el dispositivo");    }    /* libera memoria */    free(str_lat);    free(str_lng);    free(context);    delay(5000);}

5. Crear Webhook de Ubidots a Particle para Controlar Cosas

El código de ejemplo proporcionado en este artículo utiliza el LED del PIN D7. Al utilizar este código de ejemplo, el LED se encenderá y apagará usando un Widget de Interruptor.

Paso 1: Crea una Nueva APP en Particle IDE
Paso 2: Asigna un Nombre a la App
Paso 3: Copia y Pega el código a continuación
Paso 4: Verifica el Código
Paso 5: Flashea el Código

int switchBuiltinLed(String command);int led = D7; // LED incorporado/***************************************** Funciones Auxiliares****************************************/int switchBuiltinLed(String command) {// busca el argumento coincidente "ON"    if (command == "ON") {        digitalWrite(led, HIGH);        return 1;    }    // busca el argumento coincidente "OFF"    else if (command == "OFF") {        digitalWrite(led, LOW);        return 1;    }    return -1;}/***************************************** Funciones Principales****************************************/void setup() {    Particle.function("Switch", switchBuiltinLed);    pinMode(led, OUTPUT);}void loop() {}

NOTA: Un proceso de devolución de llamada de función necesita devolver lo más rápido posible, de lo contrario, la llamada a la nube se agotará.

Paso 6: Regresa a tu Cuenta de Ubidots
Paso 7: Crea una Variable Raw llamada "Control" directamente desde la interfaz web de Ubidots.

Paso 8: Crea un nuevo "Evento" y configura la lógica del Evento utilizando los operadores “Y” / “O” de Ubidots.
NOTA: Para obtener detalles adicionales sobre cómo configurar disparadores de Eventos condicionales y complejos, consulta nuestra guía de usuario sobre Creación de Eventos Condicionales y Alertas.


Paso 5: Configura la Variable "Control" del dispositivo Particle para que sea igual a 1 durante 0 segundos

Paso 9: Selecciona la Función de Particle
Paso 10: Completa los campos relacionados con particle:
Token de Acceso: Consulta este artículo de Ubidots para saber cómo crear y obtener tu Token de Particle.
ID del Dispositivo Particle: El ID del dispositivo Particle que será activado. Normalmente, es mejor ingresar el marcador de "Etiqueta del Dispositivo"
Clave de Función de Particle: La funcKey de Particle en el código. En el ejemplo aquí usamos “Switch”

Paso 11: Completa los campos relacionados con los mensajes:
Disparador activo: mensaje a enviar. Debe comenzar con “args=”. En el caso aquí usamos “args=ON”
Volver a la normalidad: mensaje a enviar cuando la condición no es verdadera. Aquí usamos “args=OFF”


NOTAS:
– Se configura una función en la nube para tomar un argumento del tipo de dato String. La longitud de este argumento está limitada a un máximo de 63 caracteres (antes de la versión del firmware v0.8.0 de Particle) o 622 caracteres (desde la versión del firmware v0.8.0 de Particle). El String está codificado en UTF-8.
– Solo usa letras, números, guiones bajos y guiones en los nombres de funciones. Los espacios y caracteres especiales pueden ser escapados por diferentes herramientas y bibliotecas, causando resultados inesperados.

Paso 12: Habilita, o deja deshabilitados, los eventos de Repetición. Más información aquí.
Paso 13: Continúa hasta el final, Nombra el evento y Establece los días y horas activos. Guárdalo.

Paso 14: Crea un Widget de Interruptor en tu Dashboard de Ubidots y vincula la Variable de Control creada recientemente en el Paso 7. aprende más

Paso 10: Prueba y confirma que el LED D7 esté activo/inactivo


Ahora tendrás un interruptor que se muestra en el Dashboard de Ubidots que está controlando un dispositivo Particle. Para confirmar el control de tu dispositivo, cambia el estado del botón de interruptor y verifica que los datos publicados se pueden encontrar en la consola de registros del IDE de Particle

6. Solución de Problemas & Consejos Profesionales

  • Accediendo a los Registros de Particle

Para confirmar que los datos se están enviando correctamente de Particle a Ubidots, simplemente verifica los Registros de Webhook de Particle. Localiza el webhook y desplázate hasta la parte inferior de la página para encontrar los Registros. Selecciona un evento particular para encontrar los códigos de respuesta.

Si todos los pasos se han completado correctamente, recibirás la respuesta de confirmación 201 de Ubidots en la sección Registro de los registros de Webhook –> {"temperature": [{"status_code": 201}]} .

Personaliza la Visualización con Ubidots

Ahora que puedes publicar y suscribirte a datos desde/hacia Ubidots con tu dispositivo Particle, es hora de crear tus Dashboards de Ubidots personalizados para visualizar, analizar y interactuar con tus datos.

Otros usuarios también encontraron útil...

¿Ha quedado contestada tu pregunta?