Electric Imp es una Plataforma de Seguridad IoT cuya asociación con Ubidots no puede pasarse por alto. La serie Imp ofrece quizás la forma más sencilla de habilitar cualquier objeto físico para estar conectado a Internet gracias a su módulo “Imp001” (en la imagen de arriba), una poderosa pieza de hardware que se conecta sin esfuerzo a una red WiFi disponible con una tarjeta de factor de forma 802.11. Además, este pequeño ahorrador de tiempo desbloqueará tu placa para detectar su entorno y enviar datos a la plataforma impCentral donde pueden ser recopilados y luego retransmitidos a Ubidots para ser utilizados inteligentemente en tus Aplicaciones Empresariales.
El módulo imp001 necesita estar conectado a la Placa de Desarrollo April para poder programarlo.
En esta guía aprenderás cómo leer una entrada analógica de tu Electric Imp, enviar su valor a Ubidots y controlar el dispositivo directamente desde Ubidots.
Requisitos
Paso a Paso
Configuración de Electric Imp
Enviando (POST) Datos a Ubidots
Recibiendo (GET) Datos de Ubidots
Resumen
1. Configuración de Electric Imp
Para comenzar con el Entorno de Electric Imp, consulta esta guía que proporcionará una explicación detallada de cómo:
Activar y Conectar tu Dispositivo Imp
Crear Producto en impCentral
Crear un Grupo de Desarrollo en impCentral
Gestión de código
NOTA IMPORTANTE: Si ya has completado los puntos mencionados anteriormente, siéntete libre de continuar con la guía :)
2. Enviando (POST) Datos a Ubidots
Siguiendo el código proporcionado a continuación, podrás publicar las lecturas analógicas tomadas de los Pines #5, #8 y #9
1. Para comenzar, selecciona el grupo de dispositivos adecuado para usar el código de muestra de enviar valores.
2. A continuación, encontrarás los códigos respectivos para las secciones de Agente y Dispositivo. Copia y pega en la categoría respectiva asignada en el IDE de impCentral.
Una vez que hayas pegado el código del Agente, necesitas asignar tu token de Ubidots dentro del constructor del cliente. Esto se verá algo así:
Ubidots <- Ubidots.Client("BBFF-YTP65d9ngV6*******************")
CONSEJO PROFESIONAL: La biblioteca de Ubidots toma el ID del Dispositivo y crea un nuevo dispositivo en tu cuenta de Ubidots la primera vez que se envía un dot. Si lo deseas, puedes cambiar esta configuración predeterminada utilizando el método setDeviceLabel("Nuevo-Nombre-Dispositivo")
como se muestra en el código a continuación.
Código del Agente
#require "Ubidots.agent.lib.nut:1.0.0"Ubidots <- Ubidots.Client("YOUR_TOKEN");//Ubidots.setDeviceLabel("electric-imp"); // para establecer el nombre del dispositivodevice.on("saveValue", function(data){ Ubidots.sendToDevice(data); server.log("Enviando datos a Ubidots"); server.log(http.jsonencode(data));});
Código del Dispositivo
data <- {};data.temp <- 0;data.humid <- 0;data.pressure <- 0;TempSensor <- hardware.pin9;TempSensor.configure(ANALOG_IN);HumSensor <- hardware.pin8;HumSensor.configure(ANALOG_IN);PressureSensor <- hardware.pin5;PressureSensor.configure(ANALOG_IN);function mainLoop() { data.temp = TempSensor.read(); data.humid = HumSensor.read(); data.pressure = PressureSensor.read(); agent.send("saveValue", data); imp.wakeup(10.0, mainLoop);}mainLoop();
Con ambos códigos correctamente pegados en el impCentral, deberías tener algo similar a esta imagen a continuación:
3. En este punto, necesitas verificar si los códigos incluidos están en el formato correcto. Para verificar el código, simplemente presiona el botón "Verificar".
4. Con el código verificado, es hora de ejecutar el código en el módulo imp. Para ejecutar y descargar el código, debes presionar el botón "Construir y Forzar Reinicio"
Una vez que comience el proceso de descarga, recibirás los registros del proceso de descarga y la carga útil que se está enviando a Ubidots.
NOTA: Los valores tomados de los pines analógicos del módulo imp no están conectados a ningún sensor, por esta razón los valores mostrados arriba no están relacionados con un ejemplo de la vida real.
5. Ve a la sección "Dispositivo" de tu Ubidots para ver los valores que están siendo reportados por el módulo imp utilizado:
6. [OPCIONAL] Si deseas cambiar el nombre del dispositivo a uno más amigable, consulta esta guía. Además, la modificación del ícono del dispositivo también te dará un identificador rápido. Para aprender más, consulta esta guía rápida sobre cambiar el ícono.
3. Recibiendo (GET) Datos de Ubidots
Con el siguiente código de muestra podrás obtener un valor de Ubidots para comenzar a controlar cualquier activo que desees.
1. Para comenzar, selecciona el grupo de dispositivos adecuado para usar el código de muestra de obtener valor .
2. A continuación, encontrarás los códigos respectivos para las secciones de Agente y Dispositivo. Copia y pega en la categoría respectiva asignada en el IDE de impCentral.
Una vez que pegues el código del Agente, necesitas asignar tu token de Ubidots dentro del constructor del cliente; teniendo como resultado algo como esto:
Ubidots <- Ubidots.Client("BBFF-YTP65d9ngV65uiaSm97************")
Además, necesitas asignar los siguientes parámetros donde se indica en los códigos de muestra a continuación:
Etiqueta del Dispositivo del dispositivo que contiene la variable deseada a obtener
Etiqueta de la Variable de la variable deseada a obtener
Código del Agente
#require "Ubidots.agent.lib.nut:1.0.0"Ubidots <- Ubidots.Client("YOUR_TOKEN");local DEV_LABEL = "Asignar_Etiqueta_Dispositivo";local VAR_LABEL = "Asignar_Etiqueta_Variable";device.on("get", function(data){ Ubidots.getLastValue(DEV_LABEL, VAR_LABEL, function(v){ device.send("get", v); });});
Código del Dispositivo
function mainLoop() { agent.send("get", "Asignar_Etiqueta_Variable"); imp.wakeup(10.0, mainLoop);}mainLoop();agent.on("get", function(data) { server.log(data);});
Con ambos códigos correctamente pegados en el impCentral, deberías tener algo similar a esta imagen a continuación:
3. Verifica & Descarga los códigos en la placa siguiendo los mismos pasos proporcionados en el paso POST anterior.
4. En este punto, deberías poder recibir el último valor de la variable asignada en el código de muestra previamente descargado:
Como puedes ver en la consola anterior, los valores recibidos de la variable en el código de muestra de Ubidots son "1" y "0"; estos valores están siendo asignados utilizando el widget de Control de Ubidots en forma de Encendido y Apagado, respectivamente.
Ahora es tu momento de tomar los valores recibidos de Ubidots en tu placa imp para comenzar a controlar lo que necesites.
4. Resumen
Con este simple tutorial puedes POST & GET datos a/de Ubidots con la facilidad del impCentral y un imp001. Si deseas encontrar más ejemplos para manejar valores de timestamp en tu solicitud, consulta la documentación de Ubidots con las placas de Electric Imp haciendo clic aquí.
Ahora es el momento de crear Tableros de Ubidots para visualizar tus datos y desplegar tu solución IoT! ¡Feliz Hackeo! :)
Otros lectores también han encontrado útil...