# Escuela 4.0 SMART AGRICULTURE KIT PARA MICROBIT para CRIE

El kit de agricultura inteligente micro:bit tiene una buena selección de IoT:bit, sensor de temperatura DS18B20, sensor de humedad del suelo, sensor de nivel de agua, sensor PIR, servos, etc.

Podríamos usarlo para crear temas como el repelente inteligente de insectos máquina, el invernadero ecológico, el dispositivo de monitoreo del nivel de agua del estanque de peces y más, de los cuales podemos aprender la agricultura moderna y programar y explorar más posibilidades para aplicar la tecnología de la información en la agricultura.

# Escuela 4.0 STEAM

# Escuela 4.0 STEAM

{{@14433}}

# Pensamiento computacional y currículo

{{@14865}}

# Introducción

# ¿Qué es Smart Agriculture Kit para micro:bit ?

Es un kit que [por menos de 100€](https://robotopia.es/kits-educativos/244-55-smart-agriculture-kit.html) tenemos muchas posibilidades :

- **Sensores y actuadores** pensados en una domótica en un entorno de agricultura 
    - Detectores de presencia
    - Detectores ambientales de temperatura y humedad
    - Detectores de suelo
    - Detectores sumergibles de temperatura y nivel de agua
    - Actuadores: Servo y luces
    - Además de los propios sensores y actuadores de la micro:bit
- **Visualización y registro de los datos** 
    - Pantalla OLED
    - ESP32 que permite conexión a Internet, por lo tanto visualización de datos utilizando las técnicas más modernas de IoT

<p class="callout warning">[Instrucciones de seguridad (extraido de la Wiki de Elecfreaks)](https://translate.google.com/translate?u=https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/safety_instructions.html&sl=auto&tl=es)  
Antes de utilizar el Kit de Agricultura Inteligente, lea atentamente las siguientes precauciones. Los usuarios deben seguir estrictamente todas las precauciones y asegurarse de que el Kit de Agricultura Inteligente esté correctamente ensamblado y en buen estado de funcionamiento. Por favor, siga estos principios de funcionamiento:  
-El Kit de Agricultura Inteligente es un dispositivo electrónico. No derrame agua ni otros líquidos sobre el Kit de Agricultura Inteligente  
-No modifique ni dañe la estructura de sus componentes electrónicos de ninguna manera.  
-No doble, toque ni presione los pasadores de la fila de pasadores.  
-No coloque el kit de agricultura inteligente en un lugar donde pueda caerse.  
-Después de cada uso del Kit de Agricultura Inteligente, guarde los componentes electrónicos correspondientes en una caja seca y ordenada.</p>

[![2026-02-06 15&#95;38&#95;40-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-15-38-40-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-15-38-40-whatsapp.png)  
Fuente Robotopia.es

Se suministran los elementos por separado

[![2026-02-08 16&#95;29&#95;37-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-16-29-37-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-16-29-37-greenshot.png)*Fuente Robotopia.es*

Opcionalmente se puede conseguir una maqueta de cartón, para ambientar educativamente todo el conjunto, [las instrucciones las tienes aquí](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-13.html) (no hagas caso de las conexiones)

[![2026-02-08 16&#95;30&#95;47-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-16-30-47-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-16-30-47-greenshot.png)  
*Fuente Robotopia.es*

# Conexiones

La maqueta es fácil de montar, pero las conexiones requieren destreza. Las conexiones a la placa micro:bit que proponemos son las siguientes:

<table border="1" id="bkmrk-elemento-conexi%C3%B3n-ob" style="border-collapse: collapse; width: 100.002%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><thead><tr><td>Elemento</td><td>Conexión</td><td>Observación</td></tr></thead><tbody><tr><td>[Termómetro sumergible DS18B20](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-05.html?highlight=ds18b20)</td><td>P1</td><td>Analógico</td></tr><tr><td>Sensor de nivel de agua</td><td>P2</td><td>Analógico</td></tr><tr><td>[Led Neopixel](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-03.html)</td><td>P14</td><td>Datos</td></tr><tr><td>Sensor humedad del suelo</td><td>P4</td><td>Analógico</td></tr><tr><td>Servo</td><td>P9</td><td>Pulsos digitales</td></tr><tr><td>Sensor movimiento PIR</td><td>P3</td><td>Analógico</td></tr><tr><td>[Sensor distancia ultrasonidos](https://www.elecfreaks.com/learn-en/microbitOctopus/sensor/sonar_bit.html)</td><td>P13</td><td>Pulsos digitales</td></tr><tr><td>[Sensor DHT11](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-02.html)</td><td>P15</td><td>Datos digitales</td></tr></tbody></table>

<p class="callout info">El Pin3 es compartido con la matriz de leds con la columna vertical.   
Como el sensor PIR es pull up ([ver sensores](https://libros.catedu.es/books/escuela-40-smart-agriculture-kit-para-microbit-para-crie/page/sensores)) cuando no detecta es un 1, **por lo tanto se enciende la columna vertical de la matriz de leds de la micro:bit** cuando no detecta movimiento.</p>

<p class="callout info">**Ojo**, el fabricante [propone otra configuración](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-13.html) que no estamos de acuerdo pues hay que respetar que algunos sensores son analógicos por lo tanto tienen que estar en los pines analógicos de la micro:bit que son P1, P2, P3, P4 y P10.</p>

[![2026-02-07 22&#95;51&#95;43-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-51-43-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-51-43-whatsapp.png)

Las conexiones hay que respetar la polaridad:

- El cable negro a masa, también marcado como **G** Ground
- El rojo el del medio que es la alimentación **V** Voltios
- El amarillo los datos, también marcado como **S** salida

[![2026-02-08 16&#95;35&#95;42-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-16-35-42-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-16-35-42-whatsapp.png)

La polaridad también se tiene que respetar en los diferentes elementos, pero es dificil equivocarse pues tiene una pestaña que impide su conexión al revés :

[![2026-02-08 16&#95;37&#95;30-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-16-37-30-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-16-37-30-whatsapp.png)

Los diferentes elementos se pueden unir a la maqueta de cartón con bridas, tornillos o alambres forrados:

[![2026-02-08 16&#95;40&#95;15-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-16-40-15-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-16-40-15-whatsapp.png)

# Sensores

{{@7009}}

# Actuadores

{{@11506}}

# Objetivos y contenidos

#### <span style="color: rgb(22, 145, 121);">**Objetivos**</span>

- Capacidad de desarrollar retos **STEAM** con un amplio nivel educativo: primaria hasta secundaria 
    - Retos **STEAM** de nivel principiante con manejo de **sensores y actuadores** con lenguaje de bloques.
    - Retos **STEAM** de nivel medio medio/avanzado en las comunicaciones **Bluetooth**.
    - Retos **STEAM** de nivel medio/avanzado con proyectos **IoT** (Internet de las cosas)

#### <span style="color: rgb(22, 145, 121);">**Contenidos**</span>

- ¿Qué es Smart Acriculture para micro:bit?
- Introducción sobre lenguajes, actuadores y sensores
- Jugando sólo **con la placa micro:bit** con lenguaje por **bloques Makecode**
- Jugando con la **maqueta** y lenguaje por **bloques Makecode**
- Jugando con **Bluetooth**
- Jugando con **IoT**

# Programas básicos con Smart Agriculture Kit

# OLED

> Un OLED (Organic light-emitting diode) es un tipo de LED en el que la capa emisiva es está formada por un compuesto orgánico que emite luz en respuesta a la electricidad...  
> ...Las pantallas OLED tienen la ventaja de tener un consumo muy bajo, en torno a 20mA, dado que solo se enciende el pixel necesario y no requieren de backlight. Esto es especialmente interesante en aplicaciones que funcionan con baterías. Además, tienen una mejor visibilidad en ambientes luminosos, como bajo el sol. Aunque el pequeño tamaño de estas pantallas OLED de 0.96” pueden ser un problema para su correcta visualización.  
> Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/conectar-arduino-a-una-pantalla-oled-de-0-96/](https://www.luisllamas.es/conectar-arduino-a-una-pantalla-oled-de-0-96/)

La pantalla OLED nos permitirá visualizar variables y mensajes muy fácilmente :

Para tener las instrucciones OLED instalaremos la extensión de ELECFREAKS

[![2026-02-06 18&#95;06&#95;21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

E instala estas instrucciones

[![2026-02-08 00&#95;24&#95;01-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-24-01-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-24-01-whatsapp.png)

En este programa visualiza el nivel de luz (el sensor esta integrado en la placa microbit) en el OLED:

1. Inicializa la pantalla OLED como 128x64 pixeles
2. limpia de anteriores mensajes
3. Enseña la frase (con salto de línea)
4. Enseña frase sin salto de línea
5. Enseña número con salto de línea

[![2026-02-07 23&#95;46&#95;39-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-23-46-39-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-23-46-39-greenshot.png)

El resultado:

[![2026-02-07 23&#95;48&#95;52-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-23-48-52-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-23-48-52-whatsapp.png)

[https://makecode.microbit.org/S69148-73800-11713-89082](https://makecode.microbit.org/S69148-73800-11713-89082)

<div id="bkmrk--4" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S69148-73800-11713-89082" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# DHT11

La lectura de este sensor que es doble, lleva un protocolo que lo hemos visto en el apartado de **sensores** por lo que utilizaremos alguna función definida de alguna extensión.

La extensión recomendada es la que instala el fabricante ELECFREAKS en la extensión Environment

[![2026-02-06 18&#95;06&#95;21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

La instrucción esta un poco escondida

[![2026-02-07 22&#95;11&#95;14-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-11-14-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-11-14-greenshot.png)

Para ver su funcionamiento, vamos a visualizar su valor en la pantalla OLED :

[![2026-02-07 22&#95;13&#95;43-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-13-43-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-13-43-greenshot.png)

[https://makecode.microbit.org/S31229-07212-54331-00904](https://makecode.microbit.org/S31229-07212-54331-00904)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S31229-07212-54331-00904" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>El resultado

[![2026-02-07 22&#95;16&#95;10-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-16-10-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-16-10-whatsapp.png)

<p class="callout success">**RETO** que el OLED indique la ZONA DE CONFORT en el que te encuentras:  
  
[![2026-09-30 15&#95;10&#95;10-Microsoft PowerPoint - &#91;Presentación1&#93;.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-30-15-10-10-microsoft-powerpoint-presentacion1.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-30-15-10-10-microsoft-powerpoint-presentacion1.png)  
*Fuente Federico Coca [https://fgcoca.github.io/Guia-de-trabajo-para-microbit/conceptos/dhtxx/](https://fgcoca.github.io/Guia-de-trabajo-para-microbit/conceptos/dhtxx/)*</p>

# Sonda sumergible DS18B20

> El sensor DS18B20 es un sensor barato y, sin embargo, bastante avanzado. Dispone de un rango amplio de medición de -55ºC a +125ºC y una precisión superior a ±0.5°C en el rango –10°C de +85°C.  
> Una de las ventajas del DS18B20 es que se comercializa tanto en un integrado TO-92 como en forma de sonda impermeable, lo que permite realizar mediciones de temperatura en líquidos y gases.
> 
> *Luis LLamas CC-BY-NC-SA [https://www.luisllamas.es/temperatura-liquidos-arduino-ds18b20/](https://www.luisllamas.es/temperatura-liquidos-arduino-ds18b20/)*

Esto nos permite hacer mediciones en agua incluso hirviendo.

Recomendamos usar una extensión específica para esta sonda, buscar como DS TEMP

[![2026-02-08 00&#95;08&#95;57-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-08-57-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-08-57-whatsapp.png)

Esto nos instala estas dos instrucciones:

[![2026-02-08 00&#95;11&#95;14-C&#95;&#95;Users&#95;HP&#95;Downloads&#95;2026-02-08 00&#95;08&#95;57-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-11-14-c-users-hp-downloads-2026-02-08-00-08-57-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-11-14-c-users-hp-downloads-2026-02-08-00-08-57-whatsapp-png-greenshot-image-editor.png)

El siguiente programa:

1. Prepara OLED
2. Esta rutina permite visualizar por el OLED si hay algún error
3. Grabamos en la variable TEMPERATURA el valor que lee la sonda en el P1
4. Visualizamos el valor

[![2026-02-08 00&#95;18&#95;11-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-18-11-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-18-11-whatsapp.png)

[https://makecode.microbit.org/S42317-53460-45843-40235](https://makecode.microbit.org/S42317-53460-45843-40235)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S42317-53460-45843-40235" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>  
  
Aquí podemos ver que marca cerca de 90ºC en una infusión:

[![2026-02-08 00&#95;18&#95;55-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-18-55-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-18-55-whatsapp.png)

# Servo

Nos da mucho juego y permite muchos proyectos. El fabricante sólo proporciona uno 😢 ¡¡¡ que sólo cuesta [2€](https://www.turibot.es/mini-servo-para-rc) !!

Para utilizarlo **no hace falta ninguna extensión** en pines tenemos las instrucciones correspondientes

Vamos a hacer un programa para que veas **que sólo puede girar de 0º a 180º**

1. Creamos una variable **angulo** y al principio le asignamos el valor de 0 por lo tanto obligamos que empiece con ese valor
2. Fijamos el ángulo del servo que esta en el pin P9 al valor de la variable ángulo dentro del bucle para siempre. Una pausa breve de ms **que podemos bajar si queremos que vaya más rápido**
3. si la variable ángulo supera los 180 que vuelva a "resetearse" a 0
4. la variable ángulo se va incrementando de 10 en 10 con otra pausa. Estos valores se pueden cambiar para conseguir la velocidad deseada

[![2026-02-08 10&#95;41&#95;35-C&#95;&#95;Users&#95;HP&#95;Downloads&#95;2026-02-08 10&#95;25&#95;18-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-41-35-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-41-35-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)

[https://makecode.microbit.org/S99415-22198-23132-97526](https://makecode.microbit.org/S99415-22198-23132-97526)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S99415-22198-23132-97526" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><p class="callout info">**RETO:** Crear un programa que alimente automáticamente a los animales, mediante una programación semanal, es decir dado una fecha, que se active el servo que abrirá la compuerta del silo durante un tiempo determinado. **[Solución](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-11.html)**</p>

<p class="callout info">**RETO**: Crear un programa que proteja las plantas de la luz directa, es decir si la luz es mayor que un cierto valor, se acive el servo que pondrá una sombra a la planta. [Solución](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-09.html)</p>

# Sensor de agua

> Este tipo de sensores **detectan la presencia de lluvia por la variación de conductividad** del sensor al entrar en contacto con el agua. *Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/arduino-lluvia/](https://www.luisllamas.es/arduino-lluvia/)*

Este sensor no tiene protocolo de datos como los otros sensores, se puede leer en bruto el valor de P2 :

1. Inicializamos el OLED
2. Grabamos en una variable nueva AGUA el valor del pin analógico P2
3. Visualizamos la lectura

[![2026-02-08 00&#95;29&#95;18-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-29-18-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-29-18-whatsapp.png)

[https://makecode.microbit.org/S42209-00876-15805-47351](https://makecode.microbit.org/S42209-00876-15805-47351)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S42209-00876-15805-47351" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>**RECOMENDADO** :Pero los valores que muestran van del 0 al 1024, y mapearlos es dificil pues no es un sensor lineal, una opción es utilizar la función que tiene la extensión IoT, y te da los valores en tanto por cien %.

En este ejemplo se muestra tanto el valor del suelo como el del nivel del agua:  
[![2026-09-29 16&#95;52&#95;27-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-16-52-27-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-16-52-27-greenshot-image-editor.png)

[https://makecode.microbit.org/S64895-39903-08613-08722](https://makecode.microbit.org/S64895-39903-08613-08722)

<div id="bkmrk--4" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S64895-39903-08613-08722" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>Aquí vemos el resultado

[![2026-02-08 00&#95;35&#95;39-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-35-39-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-35-39-whatsapp.png)

# Humedad del suelo

> {{@7009#bkmrk-un-higr%C3%B3metro-de-sue}}

Te proponemos este sencillo programa para poder calibrar y medir las humedades del suelo :

1. Inicializamos el OLED
2. Grabamos en una variable la lectura del pin P4
3. Visualizamos en el OLED la lectura

Este sensor no tiene protocolo de datos como los otros sensores, puedes usar directamente la lectura del pin 4 :

[![2026-02-08 10&#95;05&#95;17-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-05-17-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-05-17-whatsapp.png)

[https://makecode.microbit.org/S85526-52667-76006-02288](https://makecode.microbit.org/S85526-52667-76006-02288)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S85526-52667-76006-02288" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>**RECOMENDADO** : Pero los valores que muestran van del 0 al 1024, y mapearlos es difícil pues no es un sensor lineal, una opción es utilizar la función que tiene la extensión IoT, y te da los valores en tanto por cien %.

En este ejemplo se muestra tanto el valor del suelo como el del nivel del agua:  
[![2026-09-29 16&#95;52&#95;27-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-16-52-27-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-16-52-27-greenshot-image-editor.png)

[https://makecode.microbit.org/S64895-39903-08613-08722](https://makecode.microbit.org/S64895-39903-08613-08722)

[![2026-02-08 10&#95;08&#95;19-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-08-19-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-08-19-whatsapp.png)

[https://makecode.microbit.org/S64895-39903-08613-08722](https://makecode.microbit.org/S64895-39903-08613-08722)

<div id="bkmrk--4" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S64895-39903-08613-08722" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><p class="callout success">**RETO**<span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68);">: Este sensor junto con el servo pide a gritos un proyecto de riego automático: ¿Te atreves?</span></p>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/xm27jGEysfI" width="560"></iframe>

# Led Neopixel

Los leds Neopixels son "chulos" cuando hay muchos, pues los datos van pasando de un led a otro y tiene mucho juego pero en este caso el fabricante sólo ha puesto uno 😢

> {{@11506#bkmrk-los-ws2811%2C-ws2812-y}}

<p class="callout warning">Para utilizar este elemento tenemos que descargarnos la Extensión Neopixel y tendremos las instrucciones adecuadas.</p>

**Vamos a hacer UNA LUZ CREPUSCULAR PARA LA GRANJA es decir que cuando sea de noche se encienda la luz**

1. Inicializamos el led neopixel en el pin P14 con 1 led y formato GRB (se refiere al orden de envío de las instrucciones, primero el green, luego red y luego blue, hay otro formato que es más común el RGB)
2. Si la luz ambiental (detectado por el sensor integrado en la placa micro:bit) es menor que 50 (un valor arbitrario para detectar si es de noche o es de día)
3. Apaga la luz si es de día
4. Enciende la luz si es de noche

[![2026-02-08 10&#95;25&#95;18-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-25-18-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-25-18-whatsapp.png)

[https://makecode.microbit.org/S47979-61604-21560-37629](https://makecode.microbit.org/S47979-61604-21560-37629)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S47979-61604-21560-37629" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Sensor de movimiento PIR

> {{@7009#bkmrk-los-sensores-infrarr}}

{{@14095#bkmrk-para-este-sensor%C2%A0no-}}

Vamos a hacer una alarma sencilla:

1. Inicializamos el OLED
2. Si la lectura del sensor es mayor que 100 (valor arbitrario) es que hay "alguien"
3. Si hay alguien 
    1. lo visualizo por el OLED
    2. sale la palabra INTRUSO
    3. y reproduce un tono de alarma
4. Si no hay nadie 
    1. sale el valor por el OLED
    2. sale que no hay nadie
5. una breve pausa para no saturar la placa

[![2026-02-08 10&#95;53&#95;55-C&#95;&#95;Users&#95;HP&#95;Downloads&#95;2026-02-08 10&#95;25&#95;18-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-53-55-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-53-55-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)

<p class="callout success">**PROPUESTA: Ajusta el valor arbitrario del paso 2 para que detecte personas pero no animales**</p>

**[https://makecode.microbit.org/S47327-01515-95700-67184](https://makecode.microbit.org/S47327-01515-95700-67184)**

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S47327-01515-95700-67184" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>{{@14095#bkmrk-reto%3A-visualizalo-en}}

# Sensor distancia de ultrasonidos

##### <span style="color: rgb(22, 145, 121);">**Hardware**</span>

{{@7009#bkmrk-es-un-sensor-de-dist}}

##### <span style="color: rgb(22, 145, 121);">**Software**</span>

La extensión recomendada es la que instala el fabricante ELECFREAKS en la extensión Environment

[![2026-02-06 18&#95;06&#95;21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

Y en una sección que pone Octopus

[![2026-02-08 11&#95;07&#95;48-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-07-48-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-07-48-whatsapp.png)

Vamos a hacer un programa que visualice las mediciones:

1. Preparamos la OLED
2. En una variable nueva DISTANCIA recoge la medida del sensor que está conectado en el pin P13
3. visualiza la DISTANCIA en el OLED

[![2026-02-08 11&#95;08&#95;48-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-08-48-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-08-48-whatsapp.png)

[https://makecode.microbit.org/S66928-56344-60970-73771](https://makecode.microbit.org/S66928-56344-60970-73771)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S66928-56344-60970-73771" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>En la foto me he colocado a aproximadamente 11cm de los "ojos"

[![2026-02-08 11&#95;11&#95;43-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-11-43-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-11-43-whatsapp.png)

# Bluetooth

# BLUETOOTH extensión en Makecode

{{@13593}}

# Ahora con la granja

Una vez visto cómo podemos controlar la micro:bit usando Bluetooth, vamos a hacer lo mismo con la granja

1. Empezamos instalando la **Extensión Bluetooth** que hemos visto en las páginas anteriores
2. También pondremos la Extensión **Iot-environment** kit de Elecfreak para poder usar la OLED, DHT11 etc.. de la granja tal y como lo hemos trabajado en el capítulo [Programas básicos con Smart Agriculture Kit](https://libros.catedu.es/books/escuela-40-smart-agriculture-kit-para-microbit-para-crie/chapter/programas-basicos-con-smart-agriculture-kit)
3. En el bucle **Al inicial**, inicializamos la **OLED**, y también inicializamos el **Bluetooth** pero aquí el nombre de dispositivo que lo visualice por la OLED que es más cómodo, y así sabemos a qué microbit tenemos que conectarnos si estamos en una clase con muchos:  
    [![2026-02-09 16&#95;44&#95;51-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-09-16-44-51-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-09-16-44-51-greenshot.png)
4. Añadimos el bucle **"Al conectar Bluetooth"** y "**Al desconectar Bluetooth**" que también lo hemos visto en las páginas anteriores, pero esta vez le decimos que los mensajes lo visualice por la OLED  
    [![2026-02-09 16&#95;44&#95;07-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-09-16-44-07-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-09-16-44-07-greenshot.png)
5. Vamos a jugar ahora que si detecta agua en el sensor de nivel de agua, que mande un mensaje de inundación :  
    [![2026-02-09 16&#95;46&#95;38-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-09-16-46-38-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-09-16-46-38-greenshot.png)
6. Vamos a jugar más y si aprieto el botón A de la micro:bit que salga un mensaje y además que nos diga la temperatura y la humedad de la granja:  
    [![2026-02-09 16&#95;47&#95;45-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-09-16-47-45-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-09-16-47-45-greenshot.png)
7. No podemos abandonar el reto sin poner comunicación en el otro sentido, es decir de la APP a la granja: Vamos a hacer que si se envía desde la APP #abre# pues que el servo se ponga a 0º y se envía desde la APP #cierra# pues que el servo se mueva a 180º. El servo podría estar unido a una puerta, ventana, a un silo de alimentación....  
    [![2026-02-09 16&#95;50&#95;35-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-09-16-50-35-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-09-16-50-35-greenshot.png)

El proyecto [https://makecode.microbit.org/S87280-53966-04815-61300](https://makecode.microbit.org/S87280-53966-04815-61300)

<div id="bkmrk-" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S87280-53966-04815-61300" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>Y el resultado :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/HJYtbqbrqzw" width="560"></iframe>

# IoT micro:bit

# ¿Qué es IoT?

IoT significa Internet of Things, o Internet de las Cosas. Es la idea de que objetos cotidianos pueden conectarse a internet, recoger información y comunicarse entre sí o con nosotros.

<p class="callout success">Imagina que cada objeto de la clase pudiera hablar y escuchar: El termómetro de la pared le avisa a la calefacción: “Hace frío”.  
La calefacción responde: “Entendido, me enciendo”. Eso es el IoT: objetos con sentidos (sensores), voz (conexión a internet) y a veces manos (pueden hacer algo, como encender una luz).</p>

Los tres ingredientes básicos para trabajar el IoT:

- **Sensores**: son como los sentidos del objeto. Detectan temperatura, luz, movimiento, humedad, etc.
- **Conexión:** es como su voz. Envía la información por wifi u otras redes.
- **Acción o respuesta:** es lo que hace el objeto con esa información (encender una luz, mandar un aviso al móvil, regar una planta...).

  
Ejemplos  para tu alumnado puede ser:

- Un reloj inteligente que cuenta los pasos que das.
- Un altavoz inteligente al que le dices “pon música”.
-  Un semáforo que cambia según el tráfico.
- Un sistema de riego que se activa solo cuando la tierra está seca.
- Una bombilla que se enciende desde el móvil.

  
**¿Cómo lo podemos utilizar con nuestro alumnado?**

<span style="text-decoration: underline;">Como herramienta de aprendizaje:</span>

- Medir la temperatura del aula durante una semana y hacer gráficas (matemáticas y ciencias).
- Cuidar un huerto escolar con sensores de humedad.

<span style="text-decoration: underline;">Como tema para conversar:</span>

- ¿Qué pasa con nuestros datos cuando los objetos “escuchan”?
- ¿Es bueno que todo esté conectado?
- ¿Quién puede ver la información que recogen?

  
<span style="text-decoration: underline;">Una actividad sencilla</span>  desenchufada para probar antes de pasar a nuestra microbit: “El objeto inteligente inventado”:

 Pide a tu alumnado que dibuje un objeto del aula (la mochila, la papelera, la pizarra) y le “añadan” un sensor, una conexión y una acción. Por ejemplo: una papelera que avisa cuando está llena.

**Y después ya podemos pasar a la tecnología!!**

# Conexión Wifi

##### <span style="color: rgb(22, 145, 121);">**Hardware**</span>

<span style="color: rgb(22, 145, 121);">**[![kit-agricultura-inteligente-para-microbit.jpg](https://libros.catedu.es/uploads/images/gallery/2026-10/scaled-1680-/kit-agricultura-inteligente-para-microbit.jpg)](https://libros.catedu.es/uploads/images/gallery/2026-10/kit-agricultura-inteligente-para-microbit.jpg)**</span>

Para poder utilizar las características IoT necesitamos conectar nuestra Micro:bit a Internet, pero la placa micro:bit **no tiene Wifi.  Para tener wifi**  necesitamos  la **placa IoT:bit.** **ESP8266** **Wifi Module ( en la imagen de arriba)** y podemos ver :

- El pin de recepción lo tiene en el Pin 8
- El pin de transmisión lo hace por el Pin 12

[![2026-02-06 17&#95;54&#95;48-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-17-54-48-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-17-54-48-whatsapp.png)

Debemos **insertar la placa microbit en  la IoT:bit**:

[![Microbit IOT compressed.gif](https://libros.catedu.es/uploads/images/gallery/2026-10/microbit-iot-compressed.gif)](https://libros.catedu.es/uploads/images/gallery/2026-10/microbit-iot-compressed.gif)

<p class="callout warning">OJO TENEMOS QUE ALIMENTAR LA PLACA pues el ESP32 no se puede alimentar a través de micro:bit.   
[![2026-02-08 19&#95;57&#95;00-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-19-57-00-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-19-57-00-whatsapp.png)  
</p>

##### <span style="color: rgb(22, 145, 121);">**SOFTWARE**</span>

Para conectarlo a Internet usaremos una extensión en *Makecode IoT environment:*

[![2026-02-06 18&#95;06&#95;21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

Y se nos instalan nuevas instrucciones, nos vamos a fijar en las verdes ESP8266 :

[![2026-02-06 18&#95;07&#95;52-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-07-52-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-07-52-greenshot.png)

Y las utilizamos para poner en el bucle inicio :

1. Establecemos que el ESP32 tiene los pines de recepción y transmisión por los números definidos anteriormente
2. Ponemos el nombre de nuestra wifi y su contraseña (a veces los routers "capan" estas conexiones, por lo que recomendamos usar la conexión compartida, zona wifi o broadcast del móvil)
3. Si no hay conexión (pues no es instantáneo) entramos en un bucle con una cara triste
4. Si se sale del bucle anterior, es que estamos conectados y mostramos cara sonriente

[![2026-02-06 17&#95;57&#95;43-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-17-57-43-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-17-57-43-greenshot.png)

Y de paso preparamos la OLED que es muy útil para visualizar variables

[![2026-02-07 09&#95;23&#95;10-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-09-23-10-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-09-23-10-greenshot.png)

1. Definimos OLED 128x64 pixeles
2. Ponemos la OLED en blanco
3. Definimos la ESP32 con los pines de transmisión y recepcción en P8 y P12
4. Ponemos la clave de la Wifi
5. Mientras no este conectado muestra cara triste
6. Sale del bucle, luego esta conectado, muestra cara contenta
7. Mensaje en la OLED que esta preparado

# SMARTIO SPACE

# ¿Qué es SMARTIOT?

 [https://www.smartiot.space/](https://www.smartiot.space/)

SmartIoT es una plataforma online de ELECFREAKS diseñada para crear  proyectos de Internet de las Cosas (IoT) de forma sencilla y educativa.Permite conectar placas como micro:bit a Internet para enviar datos de sensores, visualizar información en tiempo real y controlar dispositivos desde una página web.

Es una plataforma educativa de datos IoT gratuita que convierte las aulas en laboratorios inteligentes, con visualización de datos de sensores en tiempo real y paneles interactivos. Con SmartIoT, el alumnado puede desarrollar proyectos como estaciones meteorológicas, sistemas de riego inteligente o control de luces, sin necesidad de configurar servidores complejos.  
La plataforma está orientada a la educación STEAM y facilita el aprendizaje de programación, electrónica e IoT mediante herramientas visuales y fáciles de usar.

[![2026-02-07 08&#95;40&#95;20-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-08-40-20-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-08-40-20-greenshot.png)

##### **Diferencia entre Makecode y Smart Iot**

MakeCode es donde se programa (los bloques). Smart IoT es una plataforma educativa online donde se ven y gestionan los datos. Se usan juntos: programas en MakeCode y envías los datos a Smart IoT. Sin ella, el kit funciona, pero los datos se quedan en la pantalla OLED o en la micro:bit.

##### **Beneficios de añadir Smart IoT**

**1. Datos en tiempo real desde cualquier dispositivo**  
Los alumnos ven la humedad del suelo o la temperatura en gráficas de línea en el ordenador o el móvil, sin mirar la pantallita de la micro:bit. La página del producto menciona gráficas de línea en tiempo real, monitorización de dispositivos, gestión de alumnos por clase y herramientas de análisis interactivas.

**2. Historial de datos**  
Solo con MakeCode, los valores aparecen y desaparecen. Con una plataforma se guardan, y los niños pueden comparar el lunes con el viernes, o la planta con riego automático con la de riego manual. Es muy útil para matemáticas (gráficas, medias) y ciencias.

**3. Monitorizar a distancia**  
La planta puede estar en el patio o en el aula mientras tú ves los datos desde otro sitio, incluso un fin de semana. Esto es **IoT de verdad**: datos que viajan por internet, no solo entre dos placas.

**4. Gestión de clase**  
Incluye gestión de alumnos y clases, así que cada grupo puede tener su propio dispositivo y sus datos. Es práctico para trabajar por equipos.

##### Vamos a ver uno ejemplo.

<p class="callout success">Vamos a hacerlo con el sensor de luz pero podemos hacerlo con **cualquier tipo de sensor**  con la humedad, con el nivel de agua, con la distancia, con la temperatura, humedad, sonda, presencia.....</p>

##### <span style="color: rgb(22, 145, 121);">**Crear cuenta**</span>

Creamos una cuenta, esto implica que los alumnos tienen que tener un email  o que los alumnos utilicen la cuenta del profesor.

[![2026-02-07 08&#95;41&#95;14-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-08-41-14-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-08-41-14-greenshot.png)

##### <span style="color: rgb(22, 145, 121);">**Crear un dispositivo y sus campos**</span>

Una vez logueados, **creamos un dispositivo nuevo   
[![2026-02-07 08&#95;43&#95;48-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-08-43-48-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-08-43-48-greenshot.png)**

**Rellenamos** con el nombre que queramos poner al dispositivo y ponemos tantos campos como queramos, según las variables que queramos visualizar o controlar.

**[![2026-02-07 08&#95;45&#95;04-C&#95;&#95;Users&#95;HP&#95;Downloads&#95;2026-02-07 08&#95;27&#95;38-.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-08-45-04-c-users-hp-downloads-2026-02-07-08-27-38-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-08-45-04-c-users-hp-downloads-2026-02-07-08-27-38-png-greenshot-image-editor.png)**

# Instrucciones en Makecode

Para conectarlo a Internet iremos a la extensión Iot que ya teníamos instalada de antes y buscaremos SmartIoT:

[![2026-02-06 18&#95;06&#95;21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

[![2026-02-07 09&#95;30&#95;53-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-09-30-53-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-09-30-53-greenshot.png)

# Visualización de la cantidad de luz

##### <span style="color: rgb(22, 145, 121);">**Bucle INICIO**</span>

Ponemos las típicas instrucciones de **Inicio**

[![2026-02-07 09&#95;23&#95;10-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-09-23-10-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-09-23-10-greenshot.png)

{{@14079#bkmrk-definimos-oled-128x6}}

##### <span style="color: rgb(22, 145, 121);">**Bucle por siempre..**</span>

Ponemos estas instrucciones

[![2026-02-07 09&#95;29&#95;37-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-09-29-37-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-09-29-37-greenshot.png)

1. El TOKEN que puedes ver en la ilustración de más adelante dónde está
2. Comprobamos que estamos conectados
3. Creamos una variable nueva LUZ y le asignamos la lectura del sensor LUZ
4. Determinamos que en SmartIoT el dato1 es la variable LUZ
5. Lo subimos a SmartIoT
6. Enseñamos también la variable LUZ en el OLED
7. Un check para visualizar que se ha subido
8. una pausa para no saturar al servidor
9. Una aspa en el caso de que no estemos conectados

##### <span style="color: rgb(22, 145, 121);">**Resultado en SMARTIOT**</span>

Entramos en la web logueados y vemos que muestra una gráfica según la luz que incide a la placa:

También puedes ver dónde esta el TOKEN

[![2026-02-07 08&#95;27&#95;38-.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-08-27-38.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-08-27-38.png)

##### <span style="color: rgb(22, 145, 121);">**EXPERIMENTA**</span>

<p class="callout info"><span style="color: rgb(0, 0, 0);">**Ahora cambia LUZ POR CUALQUIER OTRO SENSOR Y MIRA LOS CAMBIOS EN SMARTIOT**</span></p>

# Retos con Smart Agriculture Kit

# Reto 1 Humedad del suelo y nivel del agua

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

Mostrar en la pantalla OLED la temperatura y la humedad del aire, el nivel de humedad del suelo y el nivel del depósito de agua

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Para la humedad y temperatura del aire vamos a Octopus y cogemos las funciones correspondientes.   
Para la humedad del suelo y el nivel del agua también vimos que en esa extensión, hay funciones que te da los valores en tanto por cien %. [![2026-09-29 16&#95;52&#95;27-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-16-52-27-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-16-52-27-greenshot-image-editor.png)

[https://makecode.microbit.org/S64895-39903-08613-08722](https://makecode.microbit.org/S64895-39903-08613-08722)

<div id="bkmrk--4" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S64895-39903-08613-08722" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>[![2026-09-29 19&#95;25&#95;20-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-19-25-20-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-19-25-20-whatsapp.png)

# Reto2 Riego automático

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

**RIEGO AUTOMÁTICO** realizar un programa que detecte la humedad del suelo, y cuando llegue a cierto margen de "sequía", por ejemplo el 30% de humedad que active el servo para regar. El servo vuelve a su posición cuando el detecto de humedad vuelve a recuperar la humedad desesada.

### <span style="color: rgb(22, 145, 121);">**Mecanismo de riego**</span>

##### <span style="color: rgb(22, 145, 121);">**Solución 1 cutre con una pajita**</span>

<span style="color: rgb(0, 0, 0);">Venga, ya lo sé, es chapucero, pero funciona 👿👿👿:</span>

- - <span style="color: rgb(0, 0, 0);"> **RIEGO AUTOMÁTICO** este vídeo es una propuesta de hacerlo realidad, con una simple pajita y algo de maña:  
        [![2026-03-05 20&#95;35&#95;34-Presentación1 - PowerPoint.png](https://libros.catedu.es/uploads/images/gallery/2026-03/scaled-1680-/2026-03-05-20-35-34-presentacion1-powerpoint.png)](https://libros.catedu.es/uploads/images/gallery/2026-03/2026-03-05-20-35-34-presentacion1-powerpoint.png)  
          
        </span>
    - <iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/xm27jGEysfI" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución 2 Con palitos, hacer una acequia casera**</span>

Esta solución es la que idearon en el CRIET CALAMOCHA:

[![WhatsApp Image 2026-10-08 at 11.17.52.jpeg](https://libros.catedu.es/uploads/images/gallery/2026-10/scaled-1680-/whatsapp-image-2026-10-08-at-11-17-52.jpeg)](https://libros.catedu.es/uploads/images/gallery/2026-10/whatsapp-image-2026-10-08-at-11-17-52.jpeg)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="576" src="https://www.youtube.com/embed/HltqlpiKfBk" title="8 de octubre de 2026" width="315"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución 3 Más profesional**</span>

Si se quiere hacer más "profesional" el servo que active un interruptor de la motobomba, una sencilla [cuesta 1€](https://www.turibot.es/peque%C3%B1a-bomba-de-agua-dc-3-6-v-120lh) y con unos[ tubos de 0.60€ ](https://www.turibot.es/tubo-para-pequena-bomba-de-agua)apañao:

[![2026-09-30 15&#95;07&#95;22-Microsoft PowerPoint - &#91;Presentación1&#93;.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-30-15-07-22-microsoft-powerpoint-presentacion1.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-30-15-07-22-microsoft-powerpoint-presentacion1.png)Fuente Adaptado de ElecFreaks [https://wiki.elecfreaks.com/en/microbit/wisdom-life/microbit-smart-home-kit/smart\_home\_case\_05/?highlight=water](https://wiki.elecfreaks.com/en/microbit/wisdom-life/microbit-smart-home-kit/smart_home_case_05/?highlight=water)

##### <span style="color: rgb(22, 145, 121);">**PROGRAMA**</span>

Vamos a utilizar el programa anterior y crear una función de la visualización de datos de la humedad y del agua con todo ese código para que "no moleste"

Vamos a crear una condición, si la humedad del suelo es menor del 30% pues que mueva arriba y abajo el servo :

[![2026-09-29 17&#95;21&#95;11-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-17-21-11-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-17-21-11-greenshot.png)

[https://makecode.microbit.org/S58732-03354-26551-26627](https://makecode.microbit.org/S58732-03354-26551-26627)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S58732-03354-26551-26627" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Reto 3 Alarma depósito vacío

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

En este caso vamos a añadir al programa anterior que suene una alarma si el depósito se queda vacío. La alarma puede consistir en parpadeo rojo del led neopixel y alternancia de tono agudo y grave

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Llevamos el riego automático a una función

Añadimos una función de lógica si el depósito esta bajo al 10% que haga la alarma, en caso contrario que el led este verde

<p class="callout warning">Recuerda que hay que usar la extensión NEOPIXEL inicializar el strip neopixel al pin 14 y solo un led</p>

[![alarmadeposito.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/alarmadeposito.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/alarmadeposito.png)

[https://makecode.microbit.org/S17469-80061-38311-73745](https://makecode.microbit.org/S17469-80061-38311-73745)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S17469-80061-38311-73745" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="815" src="https://www.youtube.com/embed/tBbUkjym3sU" title="29 de septiembre de 2026" width="458"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución mejor**</span>

- **¿Tiene que regar si no hay agua en el depósito?**
- **¿Puedes crear una función Alarma para "limpiar el código" ?**

Como puedes ver ahora la función RIEGOAUTOMATICO esta dentro de la condición de que el depósito esta lleno  
Y hemos creado una función ALARMA para que le código quede más "limpio"

[![RETO3-2.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/reto3-2.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/reto3-2.png)

# Reto 4 Intruso

Estamos hartos que los jabalíes vengan a estropearnos la cosecha, vamos a asustarlos si se acercan

Enunciado

Si se acerca un objeto a menos de 20 cm a nuestra cosecha, que suene la alarma

Solución

Añadimos una variable DISTANCIA y lo ponemos en la función de vissualizar

[![prog-animal.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/prog-animal.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/prog-animal.png)

y el resto de programa es MUY SENCILLO PUES APROVECHAMOS LA FUNCIÓN ALARMA

[![PROGRAMAANIMAL.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/programaanimal.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/programaanimal.png)

<p class="callout success">AQUÍ PODEMOS APROVECHAR PARA ENFATIZAR EL VALOR DE REUTILIZAR CÓDIGO</p>

[https://makecode.microbit.org/S51550-75797-73915-29343](https://makecode.microbit.org/S51550-75797-73915-29343)

<div id="bkmrk--2" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S51550-75797-73915-29343" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/ONQbYVmu7W4" width="560"></iframe>

</div>

# Reto 5 Mejorando intrusos

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

El sensor de ultrasonidos es un pesado, da falsas alarmas, añade el sensor PIR para quitarlas.

<span style="color: rgb(22, 145, 121);">**Solución 1**</span>

<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">ver, </span></span>[<span style="color: rgb(0, 0, 0);">https://wiki.elecfreaks.com/en/microbit/wisdom-life/microbit-smart-agriculture-kit/microbit-Smart-Agriculture-Kit-case-04/</span>](https://wiki.elecfreaks.com/en/microbit/wisdom-life/microbit-smart-agriculture-kit/microbit-Smart-Agriculture-Kit-case-04/)

[https://makecode.microbit.org/S25361-76721-60771-88083](https://makecode.microbit.org/S25361-76721-60771-88083)

<div id="bkmrk-" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S25361-76721-60771-88083" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="815" src="https://www.youtube.com/embed/Gzih24NDcDM" title="30 de septiembre de 2026" width="458"></iframe>

<span style="color: rgb(22, 145, 121);">**Solución 2**</span>

Aquí se utiliza la función AND

[![2026-09-29 20&#95;21&#95;56-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-20-21-56-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-20-21-56-greenshot.png)

pero en la función VER ya definimos PIR con su valor y lo visualizamos

[![2026-09-29 20&#95;22&#95;41-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-20-22-41-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-20-22-41-greenshot.png)

[https://makecode.microbit.org/S46838-99630-55860-40869](https://makecode.microbit.org/S46838-99630-55860-40869)

<div id="bkmrk--5" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S46838-99630-55860-40869" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Reto 6 : Envío por Internet la humedad del suelo

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

Queremos visualizar remotamente la humedad del suelo

##### **<span style="color: rgb(22, 145, 121);">Solución</span>**

En Smart.io [https://www.smartiot.space/ ](https://www.smartiot.space/)  creamos nuestro device y en Field 1 le vamos a decir SUELO tal y como vimos en [https://libros.catedu.es/books/smart-agriculture-kit-microbit/page/que-es-smartiot](https://libros.catedu.es/books/escuela-40-smart-agriculture-kit-para-microbit-para-crie/page/que-es-smartiot)

Ponemos un componente, por ejemplo el medidor de aguja y el visualizador de gráfica

En el programa, primero al inicio que se conecte a una Wifi

[![2026-09-29 20&#95;58&#95;17-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-20-58-17-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-20-58-17-greenshot.png)

Y luego una función que simplemente conecta con el tópico 1 y que si conecta que envíe el Data 1 la variable SUELO que recoge la humedad del suelo

[![2026-09-29 20&#95;56&#95;24-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-20-56-24-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-20-56-24-greenshot.png)

El resultado es muy bueno:

[![2026-09-29 21&#95;00&#95;08-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-21-00-08-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-21-00-08-greenshot.png)

[![2026-09-29 21&#95;00&#95;26-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-21-00-26-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-21-00-26-whatsapp.png)

<p class="callout success">**RETO**: PON MÁS CAMPOS A TU DEVICE !!!  
distancia, humedad, temperatura, ...  
[![2026-09-30 20&#95;24&#95;06-Bandeja de entrada - jjquintana@educa.aragon.es - Mozilla Thunderbird.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-30-20-24-06-bandeja-de-entrada-jjquintana-at-educa-aragon-es-mozilla-thunderbird.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-30-20-24-06-bandeja-de-entrada-jjquintana-at-educa-aragon-es-mozilla-thunderbird.png)  
</p>

[https://makecode.microbit.org/S30944-15750-08422-29951](https://makecode.microbit.org/S30944-15750-08422-29951)

<div id="bkmrk--5" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S30944-15750-08422-29951" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Reto 7 Regar a distancia

##### <span style="color: rgb(22, 145, 121);">**Enunciado**</span>

Como controlamos a distancia la humedad, podemos decir si regar o no. Hacer un pulsador que por Internet se active el riego

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Es muy fácil, en Smart IoT añadimos un interruptor

[![2026-09-29 21&#95;10&#95;00-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-21-10-00-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-21-10-00-greenshot.png)

Y en el programa añadimos esta instrucción, super fácil

[![2026-09-29 21&#95;11&#95;04-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-29-21-11-04-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-29-21-11-04-greenshot.png)

Pero para que no se contradiga con el riego automático, hay que cambiar la función de riego automático a este bloque:

[![2026-09-30 14&#95;47&#95;13-Inicio - Explorador de archivos.png](https://libros.catedu.es/uploads/images/gallery/2026-09/scaled-1680-/2026-09-30-14-47-13-inicio-explorador-de-archivos.png)](https://libros.catedu.es/uploads/images/gallery/2026-09/2026-09-30-14-47-13-inicio-explorador-de-archivos.png)

[https://makecode.microbit.org/S90110-41926-70439-69394](https://makecode.microbit.org/S90110-41926-70439-69394)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S90110-41926-70439-69394" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Muro

Pon aquí ejemplos tuyos o de los demás [https://padlet.com/CATEDU/smart-agriculture-kit-para-micro-bit-l5lbmbamv9txumnd](https://padlet.com/CATEDU/smart-agriculture-kit-para-micro-bit-l5lbmbamv9txumnd)

<iframe allow="camera;microphone;geolocation;display-capture;clipboard-write" frameborder="0" src="https://padlet.com/embed/l5lbmbamv9txumnd" style="width: 100%; height: 608px; display: block; padding: 0; margin: 0;"></iframe>

<div class="padlet-embed" id="bkmrk-made-with" style="border: 1px solid rgba(0,0,0,0.1); border-radius: 2px; box-sizing: border-box; overflow: hidden; position: relative; width: 100%; background: #F4F4F4;"><div style="display: flex; align-items: center; justify-content: end; margin: 0; padding: 8px 8px 8px 0;">[<span aria-hidden="" style="color: #9e9e9e; font-size: 10px; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif; line-height: 1;">Made with</span>![Hecho con Padlet](https://padlet.net/emails/padlet_email_logo_2026_text-dark-200.png)](https://padlet.com?ref=embed)</div></div>

# Créditos

Autores:

- **Javier Quintana Peiró** CATEDU 2026

Cualquier observación o detección de error en [soporte.catedu.es](https://catedu.es/soporte-catedu/)

Los contenidos se distribuyen bajo licencia **Creative Commons** tipo **BY-NC-SA** excepto en los párrafos que se indique lo contrario.

[![image-1648462225402.gif](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)

[![image-1648462299882.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648462299882.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462299882.png)

[![image-1648462361893.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648462361893.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462361893.png)