# Smart Agriculture Kit micro:bit

# 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
- [Instrucciones de seguridad](https://translate.google.com/translate?u=https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/safety_instructions.html&sl=auto&tl=es)

[![2026-02-06 15_38_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_29_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_30_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/smart-agriculture-kit-microbit/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_51_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_35_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_37_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_40_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**

# Jugando sólo con la micro:bit

# Software : El entorno de trabajo de MakeCode

{{@13557}}

# Nuestro primer programa

{{@13560}}

# Retos básicos

{{@13561}}

# Retos avanzados

Los tienes en [https://libros.catedu.es/books/microbit-car/chapter/retos-avanzados-con-microbit](https://libros.catedu.es/books/microbit-car/chapter/retos-avanzados-con-microbit)

#### [Mejorando el termómetro](https://libros.catedu.es/books/microbit-car/page/mejorando-el-termometro)

#### [Aprender con un led la diferencia entre analógico y digital](https://libros.catedu.es/books/microbit-car/page/aprender-con-un-led-la-diferencia-entre-analogico-y-digital)

#### [Bloques de entradas: sonómetro, magnetómetro y acelerómetro con una sola línea de código](https://libros.catedu.es/books/microbit-car/page/bloques-de-entradas-sonometro-magnetometro-y-acelerometro-con-una-sola-linea-de-codigo)

#### [Nivel de burbuja usando el giroscopio](https://libros.catedu.es/books/microbit-car/page/nivel-de-burbuja-usando-el-giroscopio)

#### [Lectura puerto USB por MakeCode o Coolterm](https://libros.catedu.es/books/microbit-car/page/lectura-puerto-usb-por-makecode-o-coolterm)

# Música y sonido con micro:bit

{{@13564}}

# Inteligencia artificial Create AI

{{@13565}}

# 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_06_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_24_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_46_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_48_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_06_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_11_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_13_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_16_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)

# 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_08_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_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/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_18_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_18_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_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/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/)*

Para este sensor **no utilizaremos ningúna extensión especial,** la instrucción **lectura de pin analógico** correspondiente es suficiente y fiable, no tiene protocolo de datos como los otros sensores :

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_29_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>Aquí vemos el resultado

[![2026-02-08 00_35_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)

<p class="callout success">**RETO: VISUALIZALO EN FORMA DE TANTO POR CIEN:**  
La variable analógica va de 0 a 1024 si quieres que visualice valores de 0 a 100 tienes que "mapear" o "cambio de variable" una forma de hacerlo es con la instrucción. (también hay otra de mapear en "Pines").  
O de forma casera, con una regla de 3, es decir multiplicarlo por 100/1024  
[![2026-02-08 00_38_34-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-38-34-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-38-34-whatsapp.png)</p>

# 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

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

[![2026-02-08 10_05_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>  
[![2026-02-08 10_08_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)

<p class="callout success">{{@14095#bkmrk-reto%3A-visualizalo-en}}</p>

**RETO**: Este sensor junto con el servo pide a gritos un proyecto de riego automático: ¿Te atreves?

<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_25_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_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/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_06_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_07_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_08_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_11_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)

# Ahora te toca a ti

Una vez visto los programas básicos para aprender cada una de las piezas **te toca a ti realizar el puzle**

**[![jonny-gios-SqjhKY9877M-unsplash.jpg](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/jonny-gios-sqjhky9877m-unsplash.jpg)](https://libros.catedu.es/uploads/images/gallery/2026-02/jonny-gios-sqjhky9877m-unsplash.jpg)** *Foto de [Jonny Gios](https://unsplash.com/es/@supergios?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) en [Unsplash](https://unsplash.com/es/fotos/piezas-de-rompecabezas-blanco-sobre-mesa-de-marmol-marron-SqjhKY9877M?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)*

**¿Qué queremos decir?** La *Smart agriculture kit para micro:bit* NO esta diseñada para programar cada vez un solo un elemento. Si fuese así no sería necesario ni maqueta. Hace falta idear proyectos que integran las diferentes piezas que consolidan un verdadero pensamiento computacional.

**¿Por qué NO desarrollamos estos proyectos en este curso?** Por que es la parte que el profesor con el alumnado tienen que desarrollar, idear desde cero. Si publicamos las soluciones, sería ver y copiar.

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

<span style="color:rgb(0,0,0);">Todas las que la imaginación pueda, aquí te dejamos unas evidentes que pide a gritos la maqueta :</span>

1. <span style="color:rgb(0,0,0);">**RIEGO AUTOMÁTICO** realizar un programa que detecte la humedad del suelo, y cuando llegue a cierto margen de "sequía" active el servo para regar. El servo vuelve a su posición cuando el detecto de humedad vuelve a recuperar la humedad desesada.</span>
2. <span style="color:rgb(0,0,0);">**DETECCIÓN DEL NIVEL DE AGUA DEL DEPOSITO.** Utilizar el detector de agua que si no hay suficiente nivel en el depósito de riego, y que avise mediante una señal (acústica o luminosa o ambas) de que falta agua en el depósito.</span>
3. <span style="color:rgb(0,0,0);">**RIEGO AUTOMÁTICO + DETECCIÓN DE NIVEL DE AGUA DE DEPOSITO** jo! que guay juntar los dos anteriores proyectos !! , Si el nivel del agua del depósito baja de un determinado valor, que no riegue (o sea el servo que permanezca quieto) </span>
4. <span style="color:rgb(0,0,0);">**REGULACION TEMPERATURA EN LA GRANJA** si la temperatura ambiente (por el DHT11) es elevada, que se active el servo que abre una ventana. Que cierre cuando la temperatura es baja.</span>
5. <span style="color:rgb(0,0,0);">**RIEGO + CONTROL TEMPERATURA**, necesitaríamos dos servos, no lo proporciona el kit pero [un servo cuesta 2€](https://www.turibot.es/mini-servo-para-rc)</span>
6. <span style="color:rgb(0,0,0);">**REGULACIÓN DE CONTROL DE TEMPERATURA EN LUGARES CRÍTICOS** Por ejemplo en una granja se desea que el lugar donde se almacenan las vacunas no sobrepase ciertos valores límites. La sonda termométrica DS18B20</span>
7. <span style="color:rgb(0,0,0);">**ALARMA** Realizar un proyecto que si detecta presencia por el sensor de movimiento O por el sensor de distancia, avise mediante una señal (acústica o luminosa o ambas) </span>
8. <span style="color:rgb(0,0,0);">**TODO JUNTO** buaaahhh !! ¡¡ Qué pasada !!!</span>

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

- <span style="color:rgb(0,0,0);">A partir de este capítulo se van a mostrar programación más avanzada utilizando Internet, las propuestas anteriores se pueden enriquecer enviando los datos a Internet y facilita la visualización de los diferentes sensores de forma remota.</span>

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

- <span style="color:rgb(0,0,0);">Venga, no vamos a ser malos 👿👿👿:</span>
    - <span style="color:rgb(0,0,0);">Para el proyecto 1 **RIEGO AUTOMÁTICO** esta es la [solución ](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-01.html)y este vídeo es una propuesta de hacerlo realidad, con una simple pajita y algo de maña:  
        [![2026-03-05 20_35_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 height="314" src="https://www.youtube.com/embed/xm27jGEysfI" width="560"></iframe>
    - <span style="color:rgb(0,0,0);">Para el proyecto 2 **DETECCIÓN DEL NIVEL DE AGUA DEL DEPOSITO.** te vamos a dar la [solución ](https://www.elecfreaks.com/learn-en/microbitKit/smart_home_kit/smart_home_case_05.html?highlight=water)</span>
- <span style="color:rgb(0,0,0);">Para el proyecto 4 **REGULACION TEMPERATURA EN LA GRANJA** se puede ampliar no sólo en la medición de la temperatura DHT11 sino también en la medición de la humedad por lo que podemos determinar[ la zona de confort ](https://fgcoca.github.io/Guia-de-trabajo-para-microbit/conceptos/dhtxx/)y según los valores de T y H cuando habría que abrir las ventanas</span>
- Para el proyecto 7 **ALARMA** esta es la [solución](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-04.html)

# Bluetooth

# BLUETOOTH un poco de teoría

{{@7221}}

# Sólo con la microbit: BLUETOOTH programa en Makecode

{{@13566}}

# BLUETOOTH programa Serial Bluetooth Terminal

{{@13567}}

# Avanzado: BLUETOOTH con App Inventor. Extensiones

{{@13568}}

# Avanzado: BLUETOOTH App Inventor programa. Sólo con la micro:bit

{{@13569}}

# 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/smart-agriculture-kit-microbit/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_44_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_44_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_46_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_47_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_50_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>

# ¿Qué es IoT?

<p class="callout info">El **Internet de las cosas** (Internet of Thing IoT) describe objetos físicos —o grupos de estos— con sensores, capacidad de procesamiento, software y otras tecnologías que se conectan e intercambian datos con otros dispositivos y sistemas a través de internet u otras redes de comunicación.​ El Internet de las cosas se ha considerado un término erróneo porque los dispositivos no necesitan estar conectados a la Internet pública. Sólo necesitan estar conectadas a una red y ser direccionables individualmente</p>

[Fuente Wikipedia IoT Internet de las cosas CC-BY-SA](https://es.wikipedia.org/wiki/Internet_de_las_cosas)

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-uwb65wpc.jpeg)

[De Drawed by Wilgengebroed on FlickrTranslated by Prades97 CC BY-SA 3.0](https://commons.wikimedia.org/w/index.php?curid=32745149)

Estamos hablando de dispositivos que se conectan a internet de forma desatendida, por vía hardware (o mejor dicho firmware) a diferencia de un ordenador, tablet o móvil, donde tienes que configurar por software el dispositivo y hay un diálogo entre usuario y dispositivo sobre el uso de Internet (el software solicita tal página web, tales datos etc por voluntad del usuario o por diálogo con el usuario) Aquí los dispositivos están ya configurados de los datos que se comunican. Es decir "conectar y olvidar".

Piensa en la diferencia entre un enchufe inteligente y un ordenador, el primero es lo que se considera dentro de IoT

<p class="callout warning">**Desventajas**: El acceso a Internet de dispositivos caseros puede generar problemas a nivel mundial:  
[- el caso Mirai](https://hipertextual.com/2016/10/mirai-ddos-internet-cosas)  
[- aspiradores que nos espían](https://laboratoriolinux.es/index.php/-noticias-mundo-linux-/software/38838-desarrollador-descubre-una-puerta-trasera-en-su-aspiradora-inteligente-posible-espionaje-y-control-remoto.html)</p>

##### <span style="color:rgb(22,145,121);">**IoT en los cursos de Aularagón**</span>

- **Blynk:** lo que nos gusta de esta herramienta es que es casi "instantánea" o "síncrona". Esto es imprescindible con ciertos robots como el **Rover Marciano con Arduino**. Necesitamos que "gire" para evitar un obstáculo, no podemos esperar !!!. Veremos con **BLYNK** un protocolo que entre el dispositivo electrónico (nuestro robot) y nosotros (en ordenador, en una APP en el móvil) la comunicación es instantánea, gracias a un servidor que hará de intermedio, que puede ser local (BLYNK LEGACY) o en Internet (BLYNK IoT). 
    - **Blynk legacy** es la que se va a trabajar en 
        - **[Rover Marciano con Arduino ](https://libros.catedu.es/link/7229#bkmrk-en-este-caso-a%C3%B1adire)**
        - **[Arduinoblocks en el aula](https://libros.catedu.es/books/arduino-en-el-aula)**
        - **[ESP32 en el aula](https://libros.catedu.es/books/esp32-en-el-aula)**
    - **Blynk IoT** es la que se va a trabajar con 
        - **[En ESP32 en el aula](https://libros.catedu.es/books/esp32-en-el-aula)**
        - [**En Smart Home ESP32**](https://libros.catedu.es/books/smart-home-esp32)
- **ThinkSpeak y SmartioSpace**
    - [Smart Agriculture Kit para Micro:bit](https://libros.catedu.es/books/smart-agriculture-kit-microbit/page/led-neopixel)
- **MQTT** El emisor envía datos, se almacenan en un servidor, y cuando puede, lo vuelca al cliente. Cliente y emisor pueden ser el dispositivo electrónico y nosotros o viceversa. Veremos que esto es lo que hace el protocolo **MQTT** y está tremendamente extendido por lo barato y fácil que es. Hace que los servidores no estén tan ocupados, por lo tanto hay varios proveedores que ofrecen este servicio gratuitamente. Hay robots como los que tienen la placa **TDR STEAM IMAGINA** que envía datos de temperatura, humedad, .. y pueden recibir datos pero no precisan de esta exigencia instantánea como un rover. 
    - [ESP32 EN EL AULA](https://libros.catedu.es/books/esp32-en-el-aula)
    - [**En Smart Home ESP32**](https://libros.catedu.es/books/smart-home-esp32)
- **TELEGRAM**
    - [ESP32 EN EL AULA](https://libros.catedu.es/books/esp32-en-el-aula)
    - [**En Smart Home ESP32**](https://libros.catedu.es/books/smart-home-esp32)
- **Arduino cloud IoT**
    - **[Arduino Alvik](https://libros.catedu.es/books/arduino-alvik)**
- **Cyberpi y mBot2**
    - [Iot con Cyberpi](https://libros.catedu.es/books/cyberpi-y-mbot2/page/iot)

# Conexión Wifi

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

Para poder utilizar las características IoT necesitamos conectar nuestra Micro:bit a Internet, pero la placa micro:bit **no tiene Wifi** para lograrlo se hace con la **placa IoT:bit.** En la placa tiene un **ESP32** (que es una evolución del **ESP8266**) , 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_54_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)

<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_57_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_06_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_07_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_57_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_23_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

# Que es SMARTIOT

Antes se llamaba KidsIoT y está adaptado a los alumnos, ahora se llama [https://www.smartiot.space/](https://www.smartiot.space/)

[![2026-02-07 08_40_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)

Vamos a ver uno ejemplo con la cantidad de luz

<p class="callout success">Podemos hacerlo con **cualquier tipo de sensor** ponemos estos dos ejemplos pero puede ser 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_41_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_43_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_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/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 usaremos una extensión en Makecode IoT environment:

[![2026-02-06 18_06_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 :

[![2026-02-07 09_30_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_23_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_29_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_27_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>

# ThingSpeak

# ThingSpeak: Cuenta, canal y API KEY

Creamos una cuenta en [https://thingspeak.mathworks.com/](https://thingspeak.mathworks.com/)

[![image-1654161787395.01EZM1.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654161787395-01ezm1.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654161787395-01ezm1.png)

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

Una vez que hemos creado la cuenta ThingSpeak le damos a crear canal

[![2026-02-06 18_26_32-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-26-32-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-26-32-greenshot.png)

Y rellenamos los campos, un nombre y que campos tendrá por ejemplo si queremos visualizar dos variables temperatura y humedad :

- Field 1 temperatura
- Field 2 humedad

Etc..

Y nos queda algo así

[![image-1654161810157.ZPM0M1.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654161810157-zpm0m1.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654161810157-zpm0m1.png)

##### **![](https://file+.vscode-resource.vscode-cdn.net/home/deleyva/Descargas/Retos%20con%20Imagina%20TdR%20STEAM/retos_steam_pages_from_98_to_112.017.jpeg)<span style="color: rgb(22, 145, 121);">API KEY![](https://file+.vscode-resource.vscode-cdn.net/home/deleyva/Descargas/Retos%20con%20Imagina%20TdR%20STEAM/retos_steam_pages_from_98_to_112.018.png)![](https://file+.vscode-resource.vscode-cdn.net/home/deleyva/Descargas/Retos%20con%20Imagina%20TdR%20STEAM/retos_steam_pages_from_98_to_112.019.png)</span>**

Es importante este dato, está en la pestaña “API Keys”.

- **Write API Key**: código identificativo para enviar los datos.

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

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

Por último haz el canal público

[![2026-02-06 18_41_26-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-41-26-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-41-26-greenshot.png)

Vamos a ver unos ejemplos

- Temperatura y humedad con el DHT11
- Temperatura con la sonda DS18B20

<p class="callout success">Podemos hacerlo con **cualquier tipo de sensor** ponemos estos dos ejemplos pero puede ser con la humedad, con el nivel de agua, con la distancia, con la luz, presencia.....</p>

# Visualizar temperatura y humedad del DHT11por thinkspeak

Realizamos un programa que:

1. Inicializamos y conectamos a la Wifi como hemos visto
2. Nos conectamos a Thingspeak Una pausa de 2 segundos
3. Si estamos conectados a Thingspeak pues procedemos a:
4. Leemos los datos de temperatura y humedad y lo almacenamos en unas variables nuevas llamadas TEMPERATURA y HUMEDAD
5. Hacemos una comprobación de que se cumplan las siguientes condiciones, que temperatura sea mayor de - 30 y la humedad mayor que 0. Esto es debido a que el sensor DHT11 frecuentemente da errores y los valores que devuelve son -999 y 0. Con esta comprobación nos aseguramos que los valores leídos son correctos
6. Grabo por el canal que he creado de Thinkspeak dos campos, el primero la temperatura, y el segundo la humedad  
    IMPORTANTE HAY QUE PONER EL API KEY DE ESCRITURA
7. Subo a Thinkspeak
8. muestro un check

[![2026-02-08 20_01_54-(8) WhatsApp — Mozilla Firefox.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-20-01-54-8-whatsapp-mozilla-firefox.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-20-01-54-8-whatsapp-mozilla-firefox.png)

[https://makecode.microbit.org/S21198-38927-33091-18971](https://makecode.microbit.org/S21198-38927-33091-18971)

<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:S21198-38927-33091-18971" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>el resultado lo puedes ver en [https://thingspeak.mathworks.com/channels/1700342](https://thingspeak.mathworks.com/channels/1700342)

[![2026-02-06 17_40_01-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-17-40-01-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-17-40-01-greenshot.png)

# SONDA DS18B20

Vamos a ver otro ejemplo, en este caso lo visualiza por el OLED y lo envía a Thingspeak para ver la evolución, vamos a poner una taza de agua caliente, la sonda conectada al Pin 1 :

[![2026-02-06 19_51_58-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-19-51-58-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-19-51-58-whatsapp.png)

El programa:

1. Inicializamos el OLED
2. Inicializamos y conectamos la Wifi
3. Si hay error en la sonda que lo visualice
4. Conectamos a Thingspeak
5. Si estamos conectados, almacenamos en una variable nueva TEMPERATURA la lectura de la sonda DS18B20
6. lo asociamos al campo 1 de nuestro canal
7. lo subimos al servidor
8. lo visualizamos en el oled y mostrar un check

[![2026-02-06 19_52_25-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-19-52-25-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-19-52-25-whatsapp.png)

Proyecto [https://makecode.microbit.org/S52558-17116-07305-38404](https://makecode.microbit.org/S52558-17116-07305-38404)

<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:S52558-17116-07305-38404" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# POR QUÉ SE UTILIZA UNA TAZA PARA DESAYUNAR

##### <span style="color: rgb(22, 145, 121);">**VELOCIDAD DE TRANSFERENCIA DE CALOR**</span>

Igual que velocidad es espacio partido por tiempo. La velocidad de transferencia de calor es

**v = Q / t**

- **Q** es el calor transmitido en calorias
- **v** la velocidad de transmisión de calor en cal/seg
- **t** es el tiempo en segundos

Si un material tiene una velocidad de transmisión de calor muy alta, (por ejemplo los metales) es mal aislante y si es muy baja es que es buen aislante del calor.

El calor se puede medir con la fórmula

**Q = m cesp (Tf - To)**

- **m** masa en gr que en el caso del agua pondremos la mitad de una taza o un vaso, luego aproximadamente son 100ml que son aproximadamente 100 gr
- **Tf** la temperatura final en ºC
- **To** la temperatura inicial en ºC
- **cesp** calor específico que en el caso del agua es 1 cal/gr ºC

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

<span style="color: rgb(0, 0, 0);">A la mitad de agua, bien caliente, y con la sonda DSB18 y Thingspeak y medimos :</span>

[![2026-02-06 19_51_58-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-19-51-58-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-19-51-58-whatsapp.png)

El resultado fue:

[![2026-02-06 20_12_01-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-20-12-01-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-20-12-01-whatsapp.png)

Podemos también exportar como CSV los datos

[![2026-02-06 20_19_41-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-20-19-41-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-20-19-41-greenshot.png)

y en un fichero excell importarlos como texto, delimitado por coma y espacios

[![2026-02-06 20_20_54-Libro1 - Excel.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-20-20-54-libro1-excel.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-20-20-54-libro1-excel.png)

Y obtenemos las medidas:

[![2026-02-06 21_15_59-Libro1 - Excel.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-21-15-59-libro1-excel.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-21-15-59-libro1-excel.png)

16 minutos con 32 segundos son 992 segundos

Calculamos el calor

Q = m cesp (Tf - To) = 100 \* 1 \* 22.4616= 2246.16 calorías perdidas

Calculamos la velocidad de transferencia de calor

v = Q / t = 2246.16 / 992= 2.26 cal/seg

##### <span style="color: rgb(22, 145, 121);">**PONEMOS UN VASO DE CRISTAL**</span>

<span style="color: rgb(0, 0, 0);">La misma cantidad de agua (la vertemos en un vaso), bien caliente, y con la sonda DSB18 y Thingspeak y medimos :</span>

<span style="color: rgb(0, 0, 0);">[![2026-02-06 20_32_21-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-20-32-21-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-20-32-21-whatsapp.png)</span>

y hacemos igual, el resultado es:

[![2026-02-06 20_33_07-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-20-33-07-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-20-33-07-greenshot.png)

[![2026-02-06 21_17_34-Libro1 - Excel.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-21-17-34-libro1-excel.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-21-17-34-libro1-excel.png)

15 minutos con 37 segundos son 937 segundos

Calculamos el calor

Q = m cesp (Tf - To) = 100 \* 1 \* 31.9375 = 3193.75 calorías perdidas

Calculamos la velocidad de transferencia de calor

v = Q / t = 3193.75/ 937 = 3.41 cal/seg

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

Pues que si utilizamos un vaso, perdemos 1.14 calorías cada segundo que si utilizáramos la taza. Por eso desayunamos con taza y no con vaso de cristal, para que se mantenga los líquidos calientes.

[![2026-02-06 21_21_17-Libro1 - Excel.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-21-21-17-libro1-excel.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-21-21-17-libro1-excel.png)

<p class="callout success">AGRADECIMIENTOS a José Francisco Muñoz [www.almeribot.com](https://www.almeribot.com) que la idea de este experimento es suya. Libro IoT con micro:bit</p>

# 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 src="https://padlet.com/embed/l5lbmbamv9txumnd" style="border:0;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);overflow:hidden;width:100%;background:#F4F4F4;"><div style="margin:0;padding:8px 8px 8px 0;">[<span 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)