Electric Imp Tails son una excelente manera de aprender sobre la creación de dispositivos conectados con la Electric Imp Platform y Ubidots. En esta guía aprenderás cómo usar los Electric Imp Tails y enviar datos a Ubidots a través de HTTP.
Electric Imp Tails: El Tail de (Ambiente)
El Tail de (Ambiente) contiene tres sensores capaces de medir cuatro cualidades de tu entorno: el nivel de luz ambiental, la presión del aire, la temperatura y la humedad.
Usaremos todos estos sensores en una Estación Meteorológica como un proyecto de muestra para entregar mejor el código de ejemplo en el tutorial. También hay un LED que podemos usar para un poco de retroalimentación visual.
Puedes usar El Tail del Sensor de Ambiente con tu Electric Imp001 o Imp002.
Requisitos
Antes de comenzar, te recomendamos que revises nuestra documentación sobre el imp001 y imp002 y cómo estos dispositivos pueden integrarse fácilmente con Ubidots.
Paso a Paso
Configuración de Electric Imp
Configuración de Hardware
Enviando (POST) Datos a Ubidots
Resumen
1. Configuración de Electric Imp
Para comenzar con el Tail de Ambiente de Electric Imp, consulta esta guía que proporcionará una explicación detallada de cómo:
Activar y Conectar tu dispositivo Imp a impCentral
Crear Producto en impCentral
Crear un Grupo de Desarrollo en impCentral
Gestión de código
2. Configuración de Hardware
1. Ensambla el hardware.
3. Enviando (POST) Datos a Ubidots
Siguiendo el código de ejemplo proporcionado a continuación, podrás publicar lecturas proporcionadas por los sensores integrados con el Tail del Sensor de Ambiente.
1. Para comenzar, selecciona el grupo de dispositivos adecuado para aplicar el siguiente código de ejemplo de enviar (Código de Agente y Código de Dispositivo) valores.
2. A continuación, encontrarás los códigos respectivos para las secciones de Agente y Dispositivo en impCentral. Copia y pega en la categoría respectiva asignada dentro del 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-YP65d9ngV6*************")
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
// 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
// Código del Dispositivo#require "Si702x.class.nut:1.0.0"#require "APDS9007.class.nut:1.0.0"#require "LPS25H.class.nut:1.0.0"// Establecer una variable global para contener datos ambientalesdata <- {};data.temp <- 0;data.humid <- 0;data.pressure <- 0;data.day <- true;data.lux <- 0;// Instanciar el Si702x y guardar una referencia en tempHumidSensorhardware.i2c89.configure(CLOCK_SPEED_400_KHZ);local tempHumidSensor = Si702x(hardware.i2c89);// Instanciar el LPS25H y guardar una referencia en pressureSensorlocal pressureSensor = LPS25H(hardware.i2c89);pressureSensor.enable(true);// Instanciar el APDS9007 y guardar una referencia en lightSensorlocal lightOutputPin = hardware.pin5;lightOutputPin.configure(ANALOG_IN);local lightEnablePin = hardware.pin7;lightEnablePin.configure(DIGITAL_OUT, 1);local lightSensor = APDS9007(lightOutputPin, 47000, lightEnablePin);// Configurar el LED (en el pin 2) como salida digital con estado inicial 0local led = hardware.pin2;led.configure(DIGITAL_OUT, 0);// Esta función se llamará regularmente para tomar la temperatura// y registrarla en el agente del dispositivofunction getReadings() { // Parpadear el LED flashLed(); // Obtener el nivel de luz local lux = lightSensor.read(); // ¿Día o noche? if (lux > 300) { data.day = true; } else { data.day = false; } // Obtener la presión. Esta es una llamada asíncrona, así que necesitamos // pasar una función que se llamará solo cuando el sensor // tenga un valor para nosotros. pressureSensor.read(function(pressure) { data.pressure = pressure; // Ahora obtener la temperatura y la humedad. Nuevamente, esta es una // llamada asíncrona: necesitamos pasar una función que se // llamará cuando se hayan devuelto los datos. Esta vez // la función de callback también tiene que agrupar los datos // y enviarlos al agente. Luego pone el dispositivo en // sueño profundo hasta que sea el momento de una nueva lectura. tempHumidSensor.read(function(reading) { data.temp = reading.temperature; data.humid = reading.humidity; // Enviar los datos al agente agent.send("saveValue", data); imp.onidle(function() { server.sleepfor(5); } ); }); });}function flashLed() { led.write(1); // Encender el LED (escribir un valor ALTO) imp.sleep(0.5); // Pausar durante medio segundo led.write(0); // Apagar el LED}getReadings();
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 forzar el código en el módulo imp. Para ejecutar y cargar el código que tienes en el imp, presiona el botón "Construir y Forzar Reinicio".
Una vez que comience el proceso de carga, recibirás los registros del proceso de carga y la carga útil que se está enviando a Ubidots.
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 cambio de íconos.
4. Resumen
Los Electric Imp Env tails son una excelente y fácil manera de implementar un sistema de Monitoreo Ambiental IoT gracias a los múltiples sensores que proporciona.
Electric Imp Tails son placas que permiten a los usuarios entender la conexión entre la Electric Imp Platform (impCentral) y sus módulos para OBTENER & ENVIAR datos hacia y desde la Plataforma de Desarrollo de Aplicaciones IoT de Ubidots. Esta guía te ha preparado para interactuar con Tails, trabajar con impCentral y visualizar tus datos en Ubidots.
Para recursos adicionales y solución rápida de problemas, no olvides consultar el Centro de Ayuda de Ubidots para obtener consejos, trucos y soluciones a problemas comunes experimentados al construir Aplicaciones IoT.
Otros lectores han encontrado útil...