Hologram.io es una plataforma de conexión celular que está cambiando el juego de la conexión de datos con tarjetas SIM gratuitas y 1 MB de datos por mes (de por vida) a través de su plan de desarrollador. Hologram está abriendo camino, por decir lo menos, y su plataforma te permite interactuar fácilmente con los dispositivos para enrutar mensajes entrantes y salientes, todo a través de una API segura y escalable. Combinar Hologram con Ubidots desbloquea miles de soluciones IoT a precios extremadamente asequibles (si no gratuitos).
Para más información sobre la Plataforma Hologram y su historia, consulta: "Konekt ahora es Hologram - Una Plataforma Celular para el Internet de las Cosas"
Con esta guía, una solución IoT en mente y el Dash de Hologram en mano, aprenderás cómo configurar una integración de nube a nube utilizando las características y herramientas proporcionadas por Hologram y Ubidots!
Requisitos
Arduino UNO
Módulo SIMCOM; familia SIM800 o SIM900
1. Configuración de Hardware
1.- Primero, activa la tarjeta SIM global para conectarte a la red celular de Hologram. Si no sabes cómo activar la tarjeta SIM global, consulta este enlace, sigue todos los pasos y regresa a este artículo.
2. Una vez que la tarjeta SIM esté activada, inserta la tarjeta SIM y conecta la antena al módulo SIMCOM.
3. Conecta el módulo SIMCOM con el Arduino UNO. Consulta la tabla a continuación para las conexiones:
NOTA: Antes de ejecutar nuestros ejemplos, por favor, descarga la biblioteca Adafruit_FONA y ejecuta el ejemplo FONAtest para verificar la conectividad del módulo.
2. Configuración de Hologram
Cada vez que el módulo SIMCOM envía un mensaje a través de la red celular, su primer destino es la Nube de Hologram, ¡pero el viaje del mensaje no tiene que terminar ahí! Usando el Router de Servicios en la Nube (CSR) puedes reenviar tus datos a Ubidots a través de HTTP para análisis y visualización adicionales para tu solución IoT.
Rutas en la plataforma Hologram proporcionan métodos convenientes para activar acciones (Almacenamiento de datos, Correo electrónico, SMS, Webhooks, etc.) por la presencia o incluso ausencia del tema del mensaje de un dispositivo. En este caso, vamos a activar una acción de Webhook para reenviar los mensajes del módulo a Ubidots para una visualización simple.
1.- Ve a la sección Rutas desde el Dashboard de Hologram y haz clic en el botón "Agregar nueva ruta".
2.- A continuación, debes asignar los componentes de la ruta como los temas y la acción. Asigna "Ruta Ubidots" como el apodo para la ruta; este será el identificador de esta ruta en tu lista de rutas:
3.- A continuación, selecciona temas sobre los que la ruta actuará. En este caso, selecciona el tema asignado a tu dispositivo "_DEVICE_{Device-ID}_":
4.- Luego, selecciona la Aplicación de Acción llamada "Constructor de Webhook Avanzado (Tu Propia Aplicación)" para integrarla con Ubidots:
Construyendo tu Webhook
Ahora, debes establecer la configuración requerida para manejar la solicitud. Por favor, asigna los parámetros a continuación a los campos específicos:
URL de destino:
https://industrial.api.ubidots.com/api/v1.6/devices/<<device_id>>/?token={Asigna_tu_TOKEN_de_Ubidots}
Carga útil para POST:
<<decdata>>
Una vez que hayas ingresado los parámetros, consulta la imagen a continuación para verificar.
NOTA: Para saber más sobre las variables disponibles para POST y las estructuras, consulta esta guía.
4.- Para finalizar, presiona "Agregar ruta":
Una vez que la ruta se haya agregado, la verás en la lista de rutas:
3. Enviando mensajes
Ahora que has configurado tu webhook de Hologram a Ubidots y conectado el módulo SIMCOM con el Arduino UNO, ¡es hora de codificar! :)
1.- Descarga el Arduino IDE si aún no lo tienes.
2.- Selecciona tu Arduino UNO desde el menú Herramientas > Placa.
3.- Además, necesitamos poder comunicarnos con el Arduino, así que asegúrate de seleccionar el puerto COM correcto en tu computadora.
Ve a Herramientas > Puerto > Selecciona el PUERTO apropiado para tu dispositivo. También, para mantener todo funcionando rápido y sin problemas, asegúrate de que la velocidad de carga esté optimizada a 19200. Ve a Herramientas > Velocidad de carga > 19200:
4.- A continuación, ve al repositorio de la biblioteca para descargar la biblioteca Hologram SIMCOM. Para descargar la biblioteca, haz clic en el botón verde, "Clonar o descargar," y selecciona "Descargar ZIP".
5.- Ahora, de vuelta en el Arduino IDE, haz clic en Sketch -> Incluir biblioteca -> Agregar biblioteca .ZIP
6.- Selecciona el archivo .ZIP que acabas de descargar y luego “Aceptar” o “Elegir”. Si es exitoso, recibirás el mensaje a continuación en el Arduino IDE:
7.- Copia y pega el código a continuación en el Arduino IDE:
/******************************** * Bibliotecas incluidas *******************************/#include <HologramSIMCOM.h>/******************************** * Constantes y objetos *******************************/#define RX_PIN 2 // SIM800 RX conectado al pin D8#define TX_PIN 3 // SIM800 TX conectado al pin D7#define RESET_PIN 4 // SIM800 reinicio conectado al pin D10#define HOLO_KEY "********" // Reemplaza con tu clave SIM/* Pon aquí las etiquetas de tus variables*/String VARIABLE_LABEL_1 = "temperatura";String VARIABLE_LABEL_2 = "humedad";/**************************************** * Inicializa constructores para objetos ****************************************/HologramSIMCOM Hologram(TX_PIN, RX_PIN, RESET_PIN, HOLO_KEY); // Instancia Hologram/**************************************** * Funciones principales ****************************************/void setup() { Serial.begin(19200); while(!Serial); /* begin(baud, serverPort) inicia el módem, sincroniza la velocidad y abre el puerto entrante begin(baud) iniciaría el módem pero no abriría un puerto de servidor entrante */ Hologram.begin(19200, 8888);}void loop() { /* debug() te permite enviar comandos directamente al módulo y ver respuestas */ Hologram.debug(); /* Leyendo los valores de los sensores */ float sensor_1 = analogRead(A0); float sensor_2 = analogRead(A1); /* Transforma los valores de los sensores a String */ String sensor1_value = String(sensor_1); String sensor2_value = String(sensor_2); /* Construye la carga útil con la estructura: {"temperatura":25.00,"humedad":50.00} */ String payload = "{\"" + VARIABLE_LABEL_1 + "\":" + String(sensor1_value) + ", \"" + VARIABLE_LABEL_2 + "\":" + String(sensor2_value) + "}"; /* Envía datos JSON a la Nube de Hologram */ Hologram.send(payload); /* Retraso de 10 segundos */ delay(10000);}
8. Una vez que hayas pegado el código, debes asignar la clave SIM en los parámetros requeridos:
Para obtener la clave SIM, ve a los detalles del dispositivo en el portal de Hologram y selecciona la pestaña Configuración:
Desplázate hacia abajo hasta que veas la sección "Router de servicio en la nube", luego presiona "+ Mostrar credenciales del router":
Para generar la clave, simplemente presiona "Generar nueva clave CSR". Una vez que se genere la clave, asígnala en el código donde se requiera.
9.- Una vez que hayas pegado el código y actualizado la clave del dispositivo, debes Verificar esto dentro del Arduino IDE. Para hacer esto, en la esquina superior izquierda de nuestro Arduino IDE verás los íconos a continuación. Elige el ícono de "marca de verificación" para verificar cualquier código.
Una vez que el código esté verificado, recibirás un mensaje de "Compilación completada" a continuación en el Arduino IDE.
A continuación, debes cargar el código en tu Arduino UNO. Para hacer esto, elige el ícono de flecha derecha al lado del ícono de marca de verificación.
Una vez que el código esté cargado, recibirás un mensaje de "Carga completada" a continuación en el Arduino IDE.
10.- Abre el Monitor Serial para visualizar la respuesta del módulo SIMCOM y los datos enviados a la nube de hologramas. Para hacer esto, en la esquina superior derecha de nuestro Arduino IDE selecciona el ícono de "lupa" para mostrar un monitor serial.
NOTA: Espera un par de momentos hasta que el dispositivo inicialice la conexión y envíe el mensaje a la Nube de Hologram.
13.- Puedes verificar el mensaje con la "Ruta Ubidots" previamente configurada. Ve a tu cuenta de Ubidots, ingresa a la sección Dispositivos y encuentra tus mensajes entrantes:
El dispositivo se crea con el ID de tu dispositivo; si lo deseas, puedes modificar el nombre del dispositivo por uno más amigable, como el de abajo, consulta el artículo a continuación:
12.- Para completar tu trabajo, ve a la pestaña Consola del portal de Hologram y confirma que el mensaje ha sido recibido:
4. Resultado
En solo unos minutos has construido una integración de nube a nube entre la conectividad celular de Hologram y Ubidots para tu solución IoT. Ahora es el momento de crear un dashboard para controlar y gestionar las variables de tu(s) nuevo(s) dispositivo(s). Para aprender más sobre los widgets y eventos de Ubidots, consulta estos tutoriales en video.