El Intel Edison es una pequeña computadora en módulo ofrecida por Intel como un sistema de desarrollo para el Internet de las Cosas (IoT). Cuenta con un CPU Intel Quark x86 de doble núcleo a 400 MHz que se comunica a través de Bluetooth y Wi-Fi.
El Intel Edison ofrece un KIT de Arduino que proporciona el pinout Arduino 1.0 y conectores estándar. Diseñado para ser compatible con hardware y software de cualquier escudo Arduino Uno R3.
En esta guía paso a paso aprenderás a:
Ensamblar y conectar cables a tu placa Intel® Edison.
Ejecutar las herramientas de configuración para instalar los controladores USB y flashear el firmware de tu placa Intel® Edison.
Establecer una contraseña de dispositivo y conectar tu placa de desarrollo a Wi-Fi.
Recoger, analizar y organizar tu panel de control de Ubidots para la gestión de dispositivos y datos.
Requisitos
El módulo de computación Intel® Edison está destinado a ser utilizado con una placa de expansión y generalmente se compra junto con un kit que contiene el módulo de computación y una placa de expansión.
Módulo de computación Intel® Edison
Placa de expansión Arduino*
Cables Micro-B USB a USB estándar (x 2)
Fuente de alimentación de corriente continua (DC) (ver especificaciones)
Paso a Paso
Configurando el Intel Edison
Configurando el IDE de Arduino
Enviando (POST) datos a Ubidots
Resumen
1. Configurando el Intel Edison
1. Ensambla la placa Intel Edison. Haz clic aquí para obtener soporte adicional si no estás familiarizado con el ensamblaje de la placa.
2. Descarga la última herramienta de configuración basada en tu sistema para acceder a las características en la versión actual del Kit de Desarrollo Intel® IoT.
3. Sigue paso a paso las instrucciones de la herramienta de configuración para preparar tu placa.
4. Instala los controladores USB.
NOTA IMPORTANTE: Los controladores permiten que tu computadora reconozca las placas como dispositivos. Por esta razón, asegúrate de que todos los controladores se hayan instalado correctamente.
5. Descarga el último firmware y flashea a tu Intel Edison. Por favor, ten paciencia ya que esto tomará unos minutos.
6. Una vez finalizado, aparecerá la pantalla a continuación. Asegúrate de que tu placa esté correctamente conectada a tu PC y a la unidad de alimentación para permitir el flasheo y reinicio.
7. Establece un nombre de dispositivo y una contraseña para habilitar SHH, si deseas usar esto. (Para esto, no se necesita una guía).
8. Conecta tu placa a Wi-Fi. Escaneará las redes disponibles, selecciona la señal y seguridad correctas para la red, e ingresa la contraseña de Wi-Fi. Si cambias alguna configuración de Wi-Fi, no olvides anotarlas para la próxima vez.
9. Una vez que tu dispositivo se conecte a la red, verás la dirección IP.
10. Asegúrate de que todas las configuraciones ya estén verificadas. Haz clic en el botón “Finalizar” una vez confirmado.
2. Configurando el IDE de Arduino
1. Abre el IDE de Arduino, si no lo tienes, descárgalo aquí.
2. Para poder trabajar con la plataforma Intel en el IDE de Arduino, necesitarás instalar la plataforma Intel utilizando el Administrador de Placas preconfigurado de Arduino. Si no estás familiarizado con agregar una placa en el IDE de Arduino, consulta este artículo para obtener orientación adicional.
Plataforma Intel a instalar: Placas Intel i868 - Edison
3. Con la plataforma Intel instalada, selecciona el dispositivo Intel con el que estás trabajando. En este caso, estamos trabajando con un “Intel Edison”. Para seleccionar tu placa desde el IDE de Arduino, selecciona Herramientas > Placa “Intel Edison”. Luego, selecciona la placa y elige el puerto COM asignado a la placa.
3. Enviando (POST) Datos a Ubidots
Con el siguiente código de ejemplo podrás publicar las lecturas tomadas de los pines ANALOG A0 y A1 del Kit de Arduino Intel Edison.
1. Para publicar tu primer valor en Ubidots, abre el IDE de Arduino y pega el ejemplo código a continuación. Una vez que hayas pegado el código, necesitarás asignar tu único TOKEN de Ubidots, SSID (Nombre de WiFi) y Contraseña de la red disponible.
/************************************************************************************************* * Este ejemplo envía datos codificados a Ubidots y sirve como ejemplo para usuarios que * desean construir una solicitud HTTP a la API de Ubidots con cualquier dispositivo. Por favor, consulta el enlace a continuación * para encontrar más información al respecto - Referencia de la API REST de Ubidots - https://ubidots.com/docs/api/ * * Encontrarás una guía de ayuda para este código en el enlace a continuación: * http://help.ubidots.com/connect-your-devices/connect-your-intel-edison-to-ubidots-using-arduino-over-http * * Este ejemplo se proporciona TAL CUAL sin ninguna garantía. * * Hecho por María Carlina Hernández. *************************************************************************************************//******************************** * Bibliotecas incluidas *******************************/#include <WiFi.h>#include <SPI.h>/******************************** * Constantes y objetos *******************************//* Asigna los parámetros de la red */char* WIFI_SSID = "Asigna_tu_WIFI_SSID_aquí"; // tu red WIFI_SSID (nombre)char* WIFI_PASSWORD = "Asigna_tu_WIFI_PASSWORD_aquí"; // tu contraseña de red/* Asigna los parámetros de Ubidots */char const * TOKEN = "Asigna_tu_Ubidots_TOKEN_aquí"; // Asigna tu TOKEN de Ubidotschar const * DEVICE_LABEL = "edison"; // Asigna la etiqueta única del dispositivo char const * VARIABLE_LABEL_1 = "temperature"; // Asigna la etiqueta única de la variable para publicar datos en Ubidots (1) char const * VARIABLE_LABEL_2 = "humidity"; // Asigna la etiqueta única de la variable para publicar datos en Ubidots (2)/* Parámetros necesarios para las solicitudes */char const * USER_AGENT = "EDISON";char const * VERSION = "1.0";char const * SERVER = "industrial.api.ubidots.com";int PORT = 80;char topic[700];char payload[300];/* inicializa la instancia de la biblioteca */WiFiClient client;/******************************** * Funciones Auxiliares *******************************/void SendToUbidots(char* payload) { int i = strlen(payload); /* Construye la solicitud POST - Por favor, consulta este enlace para conocer todas las estructuras de la solicitud https://ubidots.com/docs/api/ */ sprintf(topic, "POST /api/v1.6/devices/%s/?force=true HTTP/1.1\r\n", DEVICE_LABEL); sprintf(topic, "%sHost: industrial.api.ubidots.com\r\n", topic); sprintf(topic, "%sUser-Agent: %s/%s\r\n", topic, USER_AGENT, VERSION); sprintf(topic, "%sX-Auth-Token: %s\r\n", topic, TOKEN); sprintf(topic, "%sConnection: close\r\n", topic); sprintf(topic, "%sContent-Type: application/json\r\n", topic); sprintf(topic, "%sContent-Length: %d\r\n\r\n", topic, i); sprintf(topic, "%s%s\r\n", topic, payload); /* Conectando el cliente */ client.connect(SERVER, PORT); if (client.connected()) { /* Envía la solicitud al cliente */ client.print(topic); Serial.println("Conectado a Ubidots - POST"); } else { Serial.println("Conexión fallida a ubidots - Intenta de nuevo"); } /* Lee la respuesta del servidor */ while (client.available()) { char c = client.read(); //Serial.print(c); // Descomenta esta línea para visualizar la respuesta en el Monitor Serial } /* Desconectando el cliente */ client.stop();}/******************************** * Funciones Principales *******************************/ void setup() { Serial.begin(115200); Serial.print("Conectando a "); Serial.println(WIFI_SSID); /* Conecta al AP */ WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(F("WiFi conectado")); Serial.println(F("Dirección IP: ")); Serial.println(WiFi.localIP());}void loop() { /* Lee los valores de los sensores */ float temperature = analogRead(A0); float humidity = analogRead(A1); /* Construye el payload - {"temperature":25.00,"humidity":50.00} */ sprintf(payload, "{\""); sprintf(payload, "%s%s\":%f", payload, VARIABLE_LABEL_1, temperature); sprintf(payload, "%s,\"%s\":%f", payload, VARIABLE_LABEL_2, humidity); sprintf(payload, "%s}", payload); /* Llama a la función Ubidots POST */ SendToUbidots(payload); /* Imprime los datos publicados en el Monitor Serial */ Serial.println("Publicando datos en Ubidots"); Serial.print("Temperatura: "); Serial.println(temperature); Serial.print("Humedad: "); Serial.println(humidity); delay(5000); }
2. Verifica tu código dentro del IDE de Arduino. Para hacer esto, en la esquina superior izquierda de nuestro IDE de Arduino verás el ícono de "Marca de Verificación"; presiónalo para verificar tu código.
3. Sube el código a tu “Intel Edison”. Para hacer esto, elige el ícono de "flecha derecha" al lado del ícono de "marca de verificación".
4. Para verificar la conectividad del dispositivo y los datos enviados, abre el monitor serial seleccionando el ícono de "lupa" en la esquina superior derecha del IDE de Arduino para ver los registros de conectividad.
5. Confirma tus datos en Ubidots. Ahora deberías ver los datos publicados en tu cuenta de Ubidots, ubicados en el dispositivo llamado "edison".
Abre el dispositivo llamado "edison" y encontrarás las variables que asignaste en el código, humedad y temperatura:
4. Resumen
Con este simple tutorial puedes PUBLICAR datos en Ubidots con la facilidad del IDE de Arduino y un Intel Edison. Si deseas manejar valores de contexto o timestamp en tu solicitud, consulta la API REST de Ubidots y modifica la solicitud construida en el código de ejemplo proporcionado. Además, consulta la documentación de GET para comenzar a controlar tus dispositivos de forma remota con Ubidots!
¡Ahora es el momento de crear Paneles de Ubidots para visualizar tus datos y desplegar tu solución IoT! ¡Feliz Hackeo! :)
Otros lectores también han encontrado útil...