IoT con Micro:bit

Estos contenidos prácticos complementan la parte teórica de los temas 4. Fundamentos de la computación física, 5. Internet de las cosas y 6. Robótica del currículo de Computación y Robótica de 1º ESO.

Tabla de contenidos

1. Objetivo

Como decíamos en el proyecto anterior, existen tarjetas de expansión generalistas, pero también, tarjetas enfocadas a un uso concreto, como la que tenemos en nuestro Smart Agriculture Kit de Electfreaks, o la IoT Smart Home de Keyestudio:

No te dejes engañar por su nombre, porque a pesar de que está orientada para gestionar una instalación agrícola, los componentes que incorpora podemos usarlos en una amplia variedad de aplicaciones IoT. Veamos los componentes que trae:

A la izquierda el cable USB para alimentar al sistema, a la derecha varios cables para conectar componentes. Dentro de la caja, en el centro una pantalla OLED; y en las filas superior e inferior, de izquierda a derecha:

  • Sensor PIR, para detectar presencia humana.
  • Sensor DS18B20, para leer la temperatura en líquidos.
  • Sensor DHT11, detecta cambios de temperatura y humedad en el ambiente.
  • Rainbow LED, un LED multicolor que se caracteriza por operar bajo un voltaje bajo mientras ofrece una alta luminancia y una dispersión angular amplia, lo que significa que puede iluminar de manera eficiente y uniforme sobre un área extensa.
  • Microservo EF92A, un servo motor de 180º.
  • Sensor de humedad, su resistencia entre los dos electrodos nos permite calcular la humedad del suelo.
  • Sensor de nivel de agua, se sumergen las bandas conductoras y es capaz de detectar el nivel.
  • Sonar de ultrasonidos, muy útil para medir la distancia a un objeto en cm y mm.
  • Placa IoT:bit, además de funcionar como expansión para Micro:bit, incorpora otros elementos interesantes como un módulo WiFi.

No solo es compatible con Micro:bit sino que es plenamente funcional para la programación por bloques con Makecode. De la misma manera que necesitamos activar una extensión para trabajar con Bluetooth, también tenemos disponible una específica de este kit. Lo encontrarás así:

Una vez activada la extensión, verás que se han añadido tres nuevas categorías de bloques:

El primero añade todos los bloques relacionados con la comunicación por WiFi, el segundo todo lo relacionado con la pantalla OLED, el tercero todo lo que tiene que ver con fechas y horas, y el último es un compendio de otros bloques sin relación entre ellos pero que nos permiten controlar una cantidad ingente de magnitudes que ofrecen los sensores.

Bueno pues hechas las presentaciones, vamos a hacer un proyecto de ejemplo monitorizando la temperatura.

2. Conexiones para monitorizar la temperatura

El pequeño proyecto que vamos a programar ejemplificará el uso de los componentes midiendo la temperatura del agua contenida en dos vasos. El primero está a temperatura ambiente, y el segundo ha sido calentado hasta el punto de ebullición en un microondas. Además, mostraremos la lectura de la temperatura en la pantalla OLED.

Aunque lo hemos hecho con agua, el mismo sistema funcionará con cualquier líquido que se te ocurra.

🛠 Materiales:

  • 1 x Micro:bit.
  • 1 x IoT:bit.
  • 1 x Sensor DS18B20.
  • 1 x cable terminador metálico.
  • 1 x pantalla OLED.
  • 1 x cable de 3 jumpers.
  • 1 x cable USB.
  • 2 x vaso de agua a distintas temperaturas.

El montaje es muy intuitivo, debemos dejarlo así:

Turno para el código.

3. Programar el sistema

Como ya avanzamos, debes tener instalada la extensión de Makecode: iot environment kit.

Nuestro código va a ser muy sencillo, tanto como esto:

  • Al iniciar, vamos a configurar la pantalla para decirle sus dimensiones de ancho x alto.
  • Luego, el funcionamiento repetido de nuestro programa será: en una variable que debemos crear, llamada TEMP meteremos el valor de la temperatura leída por el sensor. A continuación, borraremos la pantalla y luego escribiremos en ella Temp: y el valor que hayamos guardado en la variable TEMP. Esperamos 5s para realizar una nueva lectura del sensor, y así indefinidamente.

Ahora, como siempre, guarda tu proyecto y descarga el archivo.

Conecta sólo la Micro:bit y carga el archivo dentro de ella.

Desconecta la Micro:bit e insertala en la IoT:bit.

Conecta el cable USB a la IoT:bit y enciéndela con su interruptor.

Así de simple.

Esto podemos extenderlo más para que nuestro sistema active una alerta cuando se supere un umbral de temperatura, o active un calentador para subir la temperatura, o active un servomotor para que entre aire y baje la temperatura, o cualquier otra cosa que necesites.

4. Configurar la plataforma IoT en la nube

Este es el esquema de trabajo que habíamos aplicado hasta ahora, pero como acabamos de ver al inicio de esta sesión, un sistema IoT puro, necesita enviar los datos de procesamiento a alguna plataforma de IoT que consiga visualizar los datos recogidos por los sensores y procesados por la placa controladora.

Para ello, vamos a configurar una de estas plataformas. Se llama Kids’ IoT y nos permite tener un sistema monitorizado en 3 minutos.

Para acceder a ella vamos a Kids’ IoT y nos registramos (no acepta cuentas @g.educaand.es).

ACTUALIZACIÓN Febrero 2025: Kids’ IoT ha cambiado de nombre comercial y ahora se llama Smart IoT. De ahora en adelante siempre que aparezca Kids’ IoT estaremos haciendo referencia a Smart IoT, todo funciona exactamente igual, aunque en las imágenes salga un nombre distinto.

Una vez completado el formulario de registro, debes ir al correo que has indicado y activar tu cuenta:

Cuando pulses el enlace de activación, se te mostrará esta pantalla:

Pulsa sobre el botón Skip now, y luego inicia sesión pulsando en Log in.

Si lo has hecho todo bien, llegarás a esta pantalla:

Fíjate bien porque ahí aparece el dato más importante de todos: el User Token. Se trata de una cadena de caracteres que te identifica en la plataforma. Ese es el token que debes usar en el programa de tu Micro:bit, para conectarla de forma remota a la plataforma de IoT para que tu sistema se identifique en la nube de Kids’ IoT.

Ahora vamos a preparar nuestra nube para que recoja los datos de la temperatura que registra nuestro sistema.

Pulsamos en Create new device, y usando el icono del lápiz le ponemos nombre a nuestro dispositivo:

Si pulsamos en View details, podremos ver el aspecto que tendrá nuestra nube cuando empiece a graficar los datos recibidos por nuestro sistema:

La plataforma está lista.

5. Enviar datos a la nube

Lo único que debemos modificar en este punto es el código de nuestro programa, para que se conecte a la plataforma y envíe los datos.

Los bloques implicados en esta tarea los encontrarás en la categoría verde cuyo icono es el símbolo de la WiFi:

Lo primero que necesitamos hacer es indicarle a nuestro programa algunos datos técnicos de la conexión que va a usar nuestro sistema para hacer uso de la red de comunicaciones. Completamos nuestro bloque inicial, así:

A continuación necesitamos comprobar si nuestro sistema está conectado a Internet, y si no lo está, conectarlo. Para ello, usaremos la WiFi que tengamos disponible. En mi caso usaré la WiFi de mi móvil:

Seguidamente, y antes de enviar un dato, necesitamos comprobar que tenemos acceso a la plataforma de IoT. Esto lo hacemos encadenando otro condicional justo debajo del anterior:

Como puedes ver, ahí debemos indicar nuestro token de usuario y también el número del proyecto que queremos usar de todos los que tenemos en la nube. Nosotros sólo tenemos uno, así que dejamos el 1.

Por último, en caso de que tengamos acceso, simplemente subimos nuestra lectura de la temperatura:

Ya tenemos todo nuestro sistema preparado para pasar a producción.

Primero descargamos el programa y lo escribimos en la Micro:bit, luego insertamos la Micro:bit en el zócalo del IoT:kit y la encendemos. Tras unos segundos en los que está configurándose la conexión, empezará a enviar datos (puedes verlo por los iconos que se muestran en la Micro:bit) y la plataforma Kids’ IoT empezará a graficar resultados.

6 thoughts on “IoT con Micro:bit

  • Marian

    Muchísimas gracias por esta aplicación tan detallada e interesante es un trabajo fantástico.
    La plataforma de Kids’ IoT me parece mucho más sencilla que por ejemplo ThingSpeak, pero no encuentro la página del cambio de nombre Smart IoT, ¿podrías compartir el enlace por favor?

    • Lope

      Hola Marian,
      muchas gracias por tu comentario.
      Si te fijas cuando aparece por primera vez en el texto Kids IoT en azul, ya está enlazado a su nueva URL, pero te la dejo por aquí también: https://www.smartiot.space/
      Es cierto que es más sencilla, esta se usa para los más pequeños y la otra para los más mayores, pero todo dependerá del nivel de cada grupo, claro.
      Si necesitas cualquier otra cosa no dudes en escribir.
      Saludos.

  • Marian

    Muchísimas gracias Lope!

  • Sebastián Gragera

    Buenos días Lope, gracias por tu trabajo. no consigo cargar la extensión IOT dentro de Makecode, ¿conoces la solución? ¿alguien más ha tenido el mismo problema? Un saludo.

    • Lope

      Hola Sebastián,
      acabo de comprobarlo por si la hubieran retirado o cambiado su funcionalidad, pero no, me sigue funcionando todo correctamente. Se añaden sin problemas las nuevas categorías de bloques.
      No, tampoco conozco a nadie (alumnos ni profesores) que haya tenido este problema.
      Saludos.

  • Ángel

    Muchas gracias por el tutorial!

    A día 21 de mayo de 2025, los servidores de MATLAB llevan unos días caídos, por lo ThinkSpeak no funciona, pero también tengo problemas con SmartIoT. Igual está relacionado.

    ¿A alguien más le pasa?

    Muchas gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *