Cómo Conectar Un ESP8266 a IBM IoT Platform

Introduction: Cómo Conectar Un ESP8266 a IBM IoT Platform

About: -Mi nombre es Bernal Rojas soy estudiante de Ingenieria en Ciencias de Datos, LEAD University, Costa Rica. -Soy maestro maker en Inventoria LEAD (Maker Space) -Maker de corazon, por hobby, por trabajo, 10...

Actualmente existen muchas plataformas para hacer internet de las cosas, algunas open source, otras no tanto... Sin embargo existe una gran variedad de donde escoger. En este caso vamos a utilizar la que nos pone a disposición IBM.

Anteriormente he trabajado con esta plataforma y Watson en raspberry pi, la documentación es poca y desactualizada, pero existe... Para ESP8266 no hay documentación, por ello traigo este instructable, vamos a conectarnos al IoT Platform y vamos a desplegar el valor de un sensor en un Dashboard.

Espero se de provecho para ustedes...

¡A ensuciarnos las manos!

Step 1: Preparando Lo Que Necesitamos

  1. Lo primero que vamos a hacer es dirigirnos a IBM Cloud y nos vamos a registrar o loguear, en caso de que ya tengamos cuenta.
  2. Una vez dentro, vamos a oprimir el Botón azul "Crear Recurso".
  3. Dentro vamos a ir a la barra de buscador y escribimos "internet de las cosas", nos va salir una opción que dice "Internet Of Things Platform" le damos click y esperamos.
  4. Ahora en "Nombre de la app:" vamos a escribir un nombre, el que ustedes deseen, recuerden que este debe ser único. Y le damos a crear.
  5. Por último le damos "Lanzar" y ya estaría creado nuestro y servicio y workspace.

Step 2: Configurando La Seguridad

  1. Vamos al menú en la izquierda y damos click en "Seguridad"
  2. Ubicamos donde dice "Seguridad de conexión" y le damos al lápiz para editar.
  3. Buscamos donde dice "Nivel de seguridad", por default dirá "TLS con autentificación de señal", vamos a cambiarlo por "TLS Opcional". Esto nos dará una advertencia, le damos aceptar.
  4. Por último arriba a la derecha le damos "Guardar".

Step 3: Creando API

  1. En el menú vamos a buscar aplicaciones y entramos.
  2. Arriba a la derecha vamos a darle al botón que dice Generar Clave de API
  3. Agregaremos una descripción del API, para ayudarnos a recordar en el futuro para qué lo creamos. Y le damos a Siguiente.
  4. Ahora en Rol dependerá de qué aplicación quieras realizar, yo usaré Aplicación Estándar. Y le damos al botón Generar Clave de API.
  5. Ahora podremos observar que nos generó la Clave de API y Señal de autenticación.
    POR FAVOR, GUARDEN MUY BIEN ESTAS DOS, LAS VAN A NECESITAR LUEGO.

Step 4: Conectado ESP8266

Recapitulemos qué hemos hecho:

  • Creamos los Servicios
  • Configuramos la seguridad
  • Generamos un API

El último paso es conectar el dispositivo. Para ello:

  1. En menú, vamos a dispositivos
  2. Arriba a la derecha, le damos al botón Añadir dispositivo
  3. En IoT podemos conectar múltiples dispositivos que necesitamos identificar, para ello nos salen 2 cuadros de dialogo:
    1. Tipo de dispositivo: Es una característica para recordarlo, en este caso vamos a crear uno para el ESP8266:
      1. Buscamos la pestaña que dice Tipos de dispositivos.
      2. Arriba a la derecha, le damos al botón Añadir tipo de dispositivo.
      3. Ahora le ponemos el nombre del dispositivo, yo usaré ESP8266. Y le damos a siguiente.
      4. En información del dispositivo, me lo saltaré.
      5. Y le daré a listo.
      6. Vamos de vuelta Examinar y le damos de nuevo al botón Añadir dispositivo.
      7. Observamos que ahora en Tipo de dispositivo, podemos ver el tipo ESP8266.
    2. ID del dispositivo: Cualquier nombre, yo usaré Instructable1
  4. Le damos a siguiente.
  5. La información del dispositivo, me la saltaré.
  6. Le daremos siguiente hasta que nos pida la Señal de autenticación. Aquí pegamos la que obtuvimos en el Step anterior. Y finalmente le damos a Listo.

Step 5: Código En Arduino

Para esto vamos a ir a mi Repositorio en GitHub y abrimos el código con Arduino IDE

  1. Vamos a ir a buscar la parque que dice Variables customizables y vamos a cambiar algunos parametros.
  • ssid = Nombre de la red de internet
  • password = La contraseña de la red de internet
  • ORG = Este nombre es asignado por Bluemix, verlo Arriba de todo a la Derecha como ID:(ORG), lo que está dentro de esos paréntesis se debe copiar y pegar en este parámetro en su código.

  • DEVICE_TYPE = El tipo de dispositivo que crearon, el mio es ESP8266.

  • DEVICE_ID = El ID que le dieron, el mio es Instructables1.

  • TOKEN = Es la señal de autenticación que utilizamos anteriormente y obtuvimos cuando generamos el API. 2. Guardamos los cambios y cargamos el códigO.
    3.El dispositivo ESTÁ CONECTADO, puedes comprobarlos viendo la bolita turquesa que aparece en la ventana de dispositivos.

Partes críticas del código a entender

La función de envío de datos la es la siguiente:

//-------- Función para publicar datos en el IBM IoT Platform --------
void publishData() { 
 int sensorValue = analogRead(A0); //Sustituir por el valor que desea enviar  
 String payload = "{\"d\":{\"adc\":"; 
 payload += String(sensorValue, DEC); 
 payload += "}}";
 Serial.print("Sending payload: "); 
 Serial.println(payload); 
 if (client.publish(eventTopic, (char*) payload.c_str())) { 
  Serial.println("Publish OK");
 } 
 else { 
  Serial.println("Publish FAILED"); 
 }
  }

El payload o archivo a enviar debe tener un formato específico tipo Json para que el dashboard lo entienda, debería verse algo así:

{d:
  {adc:
   sensorValue}	
	       }

Donde dentro de d, está adc, que significa convertidor analógico digital.
Dentro de adc, se almacena el valor del sensor, el cuál en el código es la lectura del puerto analógico A0.

Step 6: Desplegar Datos En El Dashboard

Lo primero que vamos a hacer es crear nuestro panel de trabajo:

  1. En menú, damos click en Paneles.
  2. Le damos click al Panel que nos sales con un símbolo +.
  3. Agregamos un nombre al panel y una descripción y le damos Siguente.

Ahora vamos a crear tarjetas para visualización de datos:

  1. Le daremos a añadir tarjeta
  2. Escogemos cuál tarjeta queremos, yo usaré Indicador.
  3. Seleccionamos nuestro dispositivo (Aparecerá con el ID que le asignamos anteriormente)
  4. Click en Conectar nuevo conjunto de datos.
  5. En suceso escribimos status (Este es el nombre que le dimos al topic, en nuestro código de Arduino)
  6. En propiedad y nombre escribimos adc. (Este es el valor que le hemos dado en Json)
  7. Por último en tipo, lo cambiamos a número.
  8. Configurar los colores, tamaños y nombre a tu gusto.
  9. Listo, ahora deberías ver los valores enviados por el esp8266.

Step 7: Nuestro Resultado Y Qué Sigue

Esto es lo que logramos obtener, como ven es la base para adapatar a sus futuros proyectos, ahora deben adapatarlo a sus necesidades, creen soluciones y compártanlas con el mundo.

No duden en contactarme por cualquier cosa! :)

Share

    Recommendations

    • Creative Misuse Contest

      Creative Misuse Contest
    • Fix It! Contest

      Fix It! Contest
    • Tiny Home Contest

      Tiny Home Contest

    Discussions