Saltar la navegación

4.4. Dale vida a tu sistema IoT

Diccionario

Velocidad de símbolo

La imagen muestra a un router conectado de forma inalámbrica a un móvil que intercambian una señal

Definición

Conocida también como baud rate, frecuencia o tasa de símbolo y medida en baudios, es el número de señales que se transmiten por segundo a lo largo de una determinada conexión digital. Esas señales se llaman símbolos y pueden estar codificados en más de un bit.

Ejemplo

La velocidad de símbolo de mi placa es de 115200 baudios.

WLAN

La imagen muestra bajo la palabra WLAN a un router que está conectado a un portátil y a un móvil de forma inalámbrica

Definición

Es una red de tipo local cuyos equipos no necesitan estar vinculados a través de cables para conectarse. Las siglas significan Wireless Local Area Network (red de área local inalámbrica).

Ejemplo

Con mi móvil y mi portátil puedo crear una wlan en mi casa.

Rétor dice

Hasta ahora no has hecho otra cosa que preparar la base de lo que verdaderamente tienes que hacer.

A estas alturas estarás impaciente por cumplir con tu reto de disponer de valores de variables meteorológicas captados por sensores desde la estación de tu Centro y que queden almacenados automáticamente en la nube para que los puedas consultar a través de Internet cada vez que quieras revisarlos.

Sin embargo, aún no has visto qué aparatos necesitas, cómo se interconectan y de qué manera se pueden comunicar con la nube.

Pues estás de suerte, porque es, precisamente, lo último que vas a tener que ver antes de pasar definitivamente a la acción para superar tu reto.

1. ¿Qué componentes hay que conectar?

A continuación vas a ver una serie de componentes físicos necesarios para crear un sistema IoT con conexión a la nube para establecer un flujo de lecturas de datos analógicos que puedan ser almacenadas y tratadas adecuadamente.

IoT:bit

Entre las características de la placa Micro:bit no figura la conectividad de tipo WIFI, por lo que no es posible conectarla a Internet directamente.

Para solucionar el problema se puede recurrir a microcontroladores específicos para este fin como el ESP8266.

Por tanto, con un adaptador para Micro:bit que incluya este módulo, se podrá realizar una conexión WIFI que permitirá el acceso a Internet y el desarrollo de dispositivos IoT con conexión a la nube.

Un ejemplo de este tipo de adaptadores es la placa de expansión denominada IoT:bit que se muestra en la imagen.

La imagen muestra el adaptador WIFI ESP8266 para Micro:bit denominado IoT:bit

Este adaptador incorpora diversos elementos, pero debes centrarte en el módulo ESP8266 que va a permitir la conexión WIFI.

Además, para facilitar la plena integración con Micro:bit, también se le ha desarrollado una extensión con bloques de programación para el entorno MakeCode, de la cual se va a hablar un poco más adelante.

Sensores y actuadores

El hecho de que Micro:bit se tenga que conectar a Internet no evita que los dispositivos IoT deban hacer uso de sensores para captar datos y de actuadores para desarrollar respuestas.

Lo único que cambia es que la comunicación entre ellos será algo diferente y, sobre todo, que, de esta forma, se posibilita el almacenamiento de todos los datos captados. Esto, a su vez, permite su tratamiento de diversas formas para elaborar respuestas acordes a su resultado, tanto de forma diferida como en tiempo real.

Puedes ver varios ejemplos de esto en el siguiente vídeo:

Dado que tu reto se centra en la comunicación de una serie de sensores analógicos con la nube para almacenar sus datos, es conveniente que te centres en el uso de los mismos, dejando de lado, por el momento, los digitales (dado que el almacenamiento de sus valores tiene menos sentido) y los actuadores (ya que no se persigue, por ahora, crear ninguna respuesta).

Sensores analógicos hay de muchos tipos, pero verás que muchos de ellos tienen patillas de conexión muy similares. Valgan como ejemplo los que puedes ver a continuación.

La imagen muestra distintos sensores analógicos integrados en placa con el nombre de cada uno

Conexionado

Al igual que un adaptador de pines convencional, permite utilizar todos los contactos de Micro:bit, el adaptador WIFI, también lo hace. Para ello ofrece una serie de patillas de tensión (V), de tierra (G) y de señal (S) para dichos contactos. En esas patillas se podrán conectar, mediante cables, tanto los sensores como los posibles actuadores para desarrollar el cometido previsto.

Por tanto, sigue siendo apropiado la realización de esquemas de conexión entre los diferentes elementos para mostrar de forma detallada como van a unirse entre sí.

Aquí tienes un ejemplo de cómo se conectarían las tres patillas (tensión, tierra y señal) de un sensor tipo, que, como has podido ver en el punto anterior, son muy variados a pesar de que su conexión se haga de la misma forma.

La imagen muestra la conexión de un sensor analógico a la placa de extensión para IoT y la inserción de Micro:bit en la misma

2. Es como unir piezas, pero sin el "como"

La imagen muestra un sensor de rotación analógico y un sensor de luz ambos integrados en su correspondiente placa.

En primer lugar, poneros en pareja.

Vais a hacer vuestro primer diseño de componentes necesarios para iniciar la creación de un sistema IoT que conecte a la nube dos sensores, uno de luz y otro de rotación, como los que tienes en la imagen.

Para ello, haced un dibujo en el que se indique el nombre de todos los elementos que tengáis que emplear y que muestre cómo quedan conectados. Prestad especial atención a la unión de las patillas de cada elemento.

Después, conectad todos los elementos entre sí siguiendo el esquema que habéis preparado.

3. Programación de la conexión a la nube

Una de las principales caracterísiticas del IoT, es que se puedan comunicar las cosas entre sí.

Como hay diversas formas de conseguirlo, en esta ocasión, te progongo que utilices el modelo de conexión de dispositivo a la nube, mediante el acceso de los dispositivos a Internet, que es lo que le da todo el sentido a la denominación de Internet de las cosas.

A continuación puedes ver cómo se hace el programa que necesitas cargar en la placa Micro:bit para que el dispositivo recoja los datos y los suba a la nube.

SSID

Un SSID (Service Set Identifier o, en español, identificador de red) es el nombre público de una red de área local inalámbrica (WLAN, Wireless Local Area Network) que sirve para diferenciarla de otras redes inalámbricas en la zona.

Para que te quede más claro, es el nombre de la red que se muestra en la lista de redes disponibles que aparecen cuando quieres conectarte con tu dispositivo móvil a Internet por WIFI.

De hecho, todos los dispositivos inalámbricos que se conectan a una red determinada deben utilizar el mismo SSID que es el que identifica la red. De esto se deduce que, cuando se quiere impedir que un dispositivo inalámbrico desconocido se conecte a una red, una primera medida es ocultar la presencia de la red inalámbrica mediante la inhabilitación de la difusión del SSID. Esto se puede hacer entrando en la configuración del router.

La imagen muestra una lista de redes WIFI identificadas por su SSID

Cargar extensión en MakeCode

Para acceder a los bloques de programación de determinados dispositivos, a veces es necesario disponer de bloques adicionales a los que contempla por defecto MakeCode. Es por ello, que en el apartado "avanzado" de las categorías de bloques, aparece la opción de cargar extensiones.

Para Internet de las cosas, necesitarás cargar la extensión "Environment and Science IoT Kit for Micro:bit" que te sumará bloques para la configuración de la conexión a Internet, el acceso a algunas plataformas IoT y para la lectura de varios sensores. Además, también incorpora bloques para gestionar el reloj de la placa y una pantalla de visualización.

Puedes ver todo el proceso seguido en la siguiente imagen.

La imagen muestra el proceso que hay que seguir para cargar la extensión de bloques de MakeCode para la gestión de los dispostivos IoT

Bloques para conectarse a Internet

Dentro de las categorías de bloques adicionales cargados para gestionar la programación de los dispositivos IoT conectados a la nube, hay una primera, llamada ESP8266_IoT, que permite definir la conexión a Internet del sistema.

La imagen muestra los bloques de la extensión de MakeCode para programar la conexión a Internet a través del módulo Esp8266 para IoT

Con los bloques que se muestran en la imagen anterior se define a qué red se va a realizar la conexión inalámbrica, tal como puedes ver en la siguiente imagen.

La imagen muestra la combinación de los bloques de la categoría ESP8266_IoT de la extensión de MakeCode para conectarse a Internet y verificar que se ha conseguido cuando se pulsa el botón A de la placa Micro:bit

Te explico:

Con el evento "al iniciar" se definen en primer lugar los pines de recepción (RX) y de transmisión (TX) y la velocidad de símbolo (o baud rate), medida en baudios. Estos parámetros vienen establecidos por defecto para la placa IoT:bit que has visto antes.

Después se coloca el bloque que determina a qué red se va a realizar la conexión inalámbrica, por lo que hay que poner el SSID de la red y la "contraseña de la WIFI".

Adicionalmente, si se quiere comprobar que existe conexión, se puede definir un evento (por ejemplo, al presionar el botón A de la placa Micro:bit) que compare si la WIFI está o no conectada, para lo que se configura que muestre una imagen en la matriz de leds para cada caso.

Bloques para conectarse a ThingSpeak

Una vez en Internet, hay que conectarse con la plataforma del IoT ThingSpeak para poder transmitir los datos al campo que le corresponda.

Para ello hay una categoría de bloques específica dentro de la categoría de bloques "ESP8266_IoT" cargada anteriormente desde las extensiones disponibles en MakeCode, cuyo contenido puedes ver a continuación en la imagen.

La imagen muestra los bloques de MakeCode necesarios para configurar la conexión con la plataforma de IoT llamada ThingSpeak

Como puedes observar, los bloques disponibles están ordenados para configurar el vínculo en tres pasos, normalmente dentro de un bucle "por siempre" (para que no se interrumpa el flujo de datos):

  1. Conectar con ThingSpeak.
  2. Escribir la clave de escritura que se obtiene de la pestaña de las "claves API" del canal creado en la plataforma y seleccionar el número de campos necesarios para almacenar las lecturas. Se pueden configurar hasta ocho solo con clicar en el signo "más" que aparece en el bloque. Inicialmente estará a cero, pero se les puede introducir un bloque de lectura del sensor definido, tal como se explica en la siguiente página.
  3. Subir los valores de los campos configurados a la plataforma para que queden registrados.

Finalmente hay otro bloque que, al igual que en el caso anterior, permitiría, por ejemplo, programar una condición para conocer si existe o no conexión con la plataforma.

Bloques de lectura del sensor

Los sensores utilizados suelen ser analógicos y estarán conectados a un puerto que permita la lectura de ese tipo de valores.

A la hora de programar el registro de esos valores en la plataforma IoT, será necesario tomar el bloque que permita la escritura analógica de los mismos.

En la extensión de bloques de MakeCode añadida para la programación del sistema IoT hay una categoría específica, llamada "octopus", para la lectura de algunos tipos de sensores. Estos bloques deberán ser introducidos en el hueco del campo correspondiente.

La imagen muestra parte de los bloques disponibles en la categoría octopus de la extensión de MakeCode para el IoT

En caso de no encontrar el bloque del sensor empleado, siempre se puede recurrir a un bloque genérico de escritura en el pin analógico que aparecerá en la categoría avanzada de MakeCode llamada "pines".

La imagen muestra los bloques disponibles en la categoría pines de MakeCode con la escritura en un pin analógico destacada por su especial utilidad

Ejemplo

A continuación puedes ver, en la imagen, un ejemplo de la programación de la conexión a la nube de un sensor de ruido conectado al pin número uno de la placa de expansión IoT para Micro:bit, de forma que suba sus datos al campo uno del canal llamado "ruido" de la plataforma ThingSpeak. Además el botón A de Micro:bit comprueba el estado de conexión WIFI y el botón B el de conexión a ThingSpeak.

La imagen muestra la combinación de bloques de MakeCode para conectar un sensor de ruido a la nube utilizando la plataforma de IoT ThingSpeak

La imagen muestra bajo la palabra WLAN a un router que está conectado a un portátil y a un móvil de forma inalámbrica

Definición

Es una red de tipo local cuyos equipos no necesitan estar vinculados a través de cables para conectarse. Las siglas significan Wireless Local Area Network (red de área local inalámbrica).

Ejemplo

Con mi móvil y mi portátil puedo crear una wlan en mi casa.

La imagen muestra a un router conectado de forma inalámbrica a un móvil que intercambian una señal

Definición

Conocida también como baud rate, frecuencia o tasa de símbolo y medida en baudios, es el número de señales que se transmiten por segundo a lo largo de una determinada conexión digital. Esas señales se llaman símbolos y pueden estar codificados en más de un bit.

Ejemplo

La velocidad de símbolo de mi placa es de 115200 baudios.

Motus dice ¿Has estado atento?

¿Has prestado la atención necesario o "algo" te ha distraído?

Seguro que eres consciente de que en este punto se explican un montón de cosas muy importantes que debes aprender para seguir adelante. Sin embargo, a veces, ocurre algo que te hace parar o te desconcentra. Puede que alguien pegase a la puerta, que el profe haya hablado con alguien, que hayas oído un ruido en la calle, que te hayas acordado de algo que hiciste ayer, que alguiente te haya preguntado algo…

Cuando aprendes estás rodeado de cosas que te pueden distraer y al volver a la actividad te cuesta más trabajo centrarte.

Por eso es importante que aprendas a controlar tus distracciones. Te doy algunos consejos:

  • Concéntrate bien en la actividad que tienes que realizar.
  • Si tiene muchos pasos o es muy difícil, haz paradas cortas para descansar.
  • Si te molesta lo que hay a tu alrededor trata de ver si puedes reducirlo: cierra las ventanas, pide silencio.
  • Piensa que si te distraes tardarás más tiempo en terminar.

4. Adivina dónde falla

Trabajando en pareja, observad detenidamente el siguiente programa de MakeCode para conectar a la nube un sensor que detecte el nivel de agua de un depósito que será registrado en la plataforma ThingSpeak.

Podéis incluso cargarlo en Micro:bit y montar el sistema, pero ya os adelando que no funciona. De hecho, vuestra labor va a ser buscar donde está el fallo.

Cuando lo hayáis localizado, corregidlo y explicad detenidadmente, por escrito, qué hace cada instrucción del programa. Podéis usar el cuaderno, algún programa informático en ordenador o tablet... Usad aquello que os parezca más adecuado.

La imagen muestra un programa con fallos de MakeCode que pretende registrar en ThingSpeak los datos tomados por un sensor de nivel de agua

Lumen dice ¿No veis nada raro?

Si no conseguís ver ningún error podéis repasar el ejemplo del apartado 5. programación de la conexión a la nube.

Clavis dice Localización de puntos críticos

Para conseguir alcanzar una meta es importante que seas un buen o buena estratega. Es decir, tener métodos, técnicas, “trucos” para llegar antes o de forma más fácil donde tú quieres.

Ahora te voy a enseñar una estrategia, ¡Aprovéchala para alcanzar tu reto!

El nombre de la estrategia es localización de puntos críticos. Cuando estás desarrollando una tarea es normal que encuentres puntos que te resulten complicados y que puedan llegar a bloquearte si no sabes tratarlos adecuadamente. En esta estrategia vas a aprender a detectar los puntos difíciles y a enfrentarte a ellos aplicando algunos cosejos básicos que te sugieran cómo actuar en cada caso para superar la dificultad.

Podrás encontrar todo lo que necesitas sobre esta estrategia en el siguiente enlace a la guía de la competencia de aprender a aprender.

Tómate el tiempo que necesites y recuerda que siempre puedes preguntarle al docente o a algún compañero o compañera cuando no entiendas algo.

¡Ánimo, seguro que lo haces genial!

5. Sin programa no hay sistema IoT

Prepara un programa para conectar a la nube un sensor de luz, que no sea el que viene integrado en Micro:bit, de forma que se almacenen sus datos en un canal de ThingSpeak llamado "nivel de luz".

Tienes dos opciones distintas con dificultad creciente. Escoge la que creas que mejor se adapta a tus conocimientos.

Opción A: Ordena

Ordena los siguientes pasos para programar la placa Micro:bit para que comunique con la nube un sensor de luz externo ya conectado previamente.

  • Abrir MakeCode y crear un programa nuevo.
  • Cargar la extensión de bloques para la programación del dispositivo IoT
  • Arrastrar al área de programación, dentro del evento "al iniciar", el bloque que configura los pines de recepción (RX) y transmisión (TX) del adpatador para IoT.
  • Arrastrar al área de programación, dentro del evento "al iniciar", el bloque que configura la red WIFI a la que se conectará el dispositivo IoT y se rellenará el SSID y la contraseña de la WIFI.
  • Arrastrar al área de programación, dentro del bucle "por siempre", el bloque que conecta con la plataforma IoT llamada ThingSpeak.
  • Arrastrar al área de programación, dentro del bucle "por siempre", el bloque que establece el envío de los datos a ThingSpeak y, a continuación copiar la clave de escritura del canal creado para almacenar las lecturas.
  • Añadir al campo del bloque que establece el envío de datos a ThingSpeak el bloque que permite la escritura analógica en el pin donde se ha conectado el sensor de luz.
  • Arrastrar al área de programación, dentro del bucle "por siempre", el bloque que sube los datos a ThingSpeak.
  • Conectar la placa Micro:bit al puerto USB del ordenador y cargarle el programa creado.
  • Insertar la placa Micro:bit en la ranura del adaptador para conexión WIFI y cambiar a ésta el cable USB.
  • Entrar en el canal de ThingSpeak para consultar los datos subidos por el sistema IoT.

Comprobar

¡Correcto!

No es correcto... Respuesta correcta:

Opción B: Diseña y programa

Poneros en pareja y programad en el entorno MakeCode la conexión de un sensor de luz (distinto al que viene integrado en Micro:bit) a la nube utilizando la plataforma ThingSpeak.

Una vez que hayáis concluido el programa, cargadlo en el sistema y comprobad que llegan los datos al canal de ThingSpeak que habéis creado y haced una captura de pantalla para dejar evidencia de lo que habéis logrado.

6. Reviso lo que aprendo

Reflexiona un momento sobre todo lo que has aprendido hasta llegar aquí y completa el PASO 3 (Reviso lo aprendido) de tu Diario de aprendizaje.

Recuerda:

  1. Pregunta a tu profesor o profesora si lo vas a rellenar en papel o en el ordenador.
  2. Si lo rellenas en el ordenador, no te olvides de guardarlo en una carpeta que más tarde puedas localizar.

¡Ánimo, que lo harás genial!