# Arduino UNO y ESP32 con Imagina TDR Steam y Arduinoblocks

### Hardware y software empleado  


#### Arduino UNO

{{@2936#bkmrk-arduino-es-una-tarje}}

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

<p class="callout info">[Más información](https://libros.catedu.es/books/arduino-con-arduinoblocks/page/hardware)</p>

#### ESP32

{{@8286#bkmrk-es-una-placa-sucesor}}

{{@8286#bkmrk-su-principal-caracte}}

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/CdQimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/CdQimagen.png)

<p class="callout info">[Más información](https://libros.catedu.es/books/esp32-en-el-aula/page/hardware-esp32-plus-steamakers)</p>

#### Imagina TDR Steam  


Shield integrable en Arduino UNO y en placas compatibles, con multitud de sensores integrados y muchas posibilidades didácticas.

<div id="bkmrk--1" style="width: 100%;"><div style="position: relative; padding-bottom: 77.38607050730867%; padding-top: 0; height: 0;"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="620px" scrolling="yes" src="https://view.genial.ly/5ec3b33a8ba5700d1e8078ed" style="position: absolute; top: 0px; left: 0px; width: 759px; height: 586px;" title="Imagina TDR STEAM" width="800px"></iframe>

</div></div><p class="callout info">[Más información](https://libros.catedu.es/books/arduino-en-el-aula/page/componentes-de-la-placa-imagina-tdr-steam)</p>

#### ArduinoBlocks

{{@5126#bkmrk-es-un-programa-onlin}}

No es software libre porque el programador no libera el código, si bien su uso es libre y gratuito.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/Qk8imagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/Qk8imagen.png)

<p class="callout info">[Más información](https://libros.catedu.es/books/rover-marciano-con-arduinoblocks-e-internet-de-las-cosas-iot/page/introduccion)</p>

### Comienza con el aula virtual

Comienza **conectando la placa al puerto USB** del ordenador.

Después arranca el programa **ArduinoBlocks Connector** que encontrarás en el escritorio de tu equipo.

Por último accede a la página web de [ArduinoBlocks](http://www.arduinoblocks.com) e inicia sesión con las siguientes credenciales (como si fueras un alumno con credenciales creadas por el profesorado):

- Correo electrónico: **alumnadoX.iesejemplo** (con X el valor que os señalen según la tarjeta que te asignen)
- Contraseña: la facilitada por las personas responsables del taller

El orden en el que realizar estos pasos es importante para que el programa detecte la placa y se pueda comunicar con ella.

En ese momento accederás al panel donde ir a Mis proyectos, o Empezar un nuevo proyecto. En nuestro caso haz clic en **Empezar un nuevo proyecto!**

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

Una vez allí escoge la opción **Alumno** e introduce en el cuadro de texto el código del proyecto **hw2U93eS**

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-06/scaled-1680-/EgQimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-06/EgQimagen.png)

Esto te cargará un proyecto, que en este caso hemos creado desde el rol del profesorado

- **Estación meteorológica básica\_tempyhum**: proyecto de placa **UNO+TDR Steam**. Arduinoblocks te hace elegir el tipo de placa y accesorio que vas a usar, puesto que tiene bloques personalizados para cada uno de ellas. En este caso estamos usando una placa **Arduino UNO**, muy común en los centros educativos, a la que le hemos acoplado una shield o escudo llamado **IMAGINA TDR Steam**, que incluye multitud de sensores y actuadores ya integrados, y que simplifican mucho la electrónica y la programación.

#### ESTACIÓN METEOROLÓGICA  


Comenzamos abriendo el proyecto. Echale un vistazo al código y trata de adivinar cual es su comportamiento.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/sKnimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/sKnimagen.png)

Este programa **recopila datos del sensor de temperatura y humedad** que está integrado la shield Imagina TDR y los **muestra tanto de forma numérica como de forma gráfica** en pantalla a través de la Consola y del Plotter Serie.

Para ver cómo funciona, subiremos el programa a nuestra placa. Para asegurarnos de que la placa ha sido reconocida por el equipo y por la web, hay que fijarse en la parte de arriba a la derecha y allí tendremos que **comprobar que está activo el puerto** donde lo hemos conectado. En los dispositivos windows comienza por COM y en los linux por /dev. Una vez comprobado que la conexión está establecida hacemos clic en **Subir**.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/Kj4imagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/Kj4imagen.png)

Una vez obtenido el mensaje de que el programa ha subido exitosamente a la placa, aparentemente no pasa nada. Si queremos ver el funcionamiento, tenemos que hacer clic sobre el botón **Consola**, al lado de Subir.

En ese momento se nos abrirá una ventana emergente con el título de **Consola serie**, que es donde se van a visualizar los datos que estamos recogiendo.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/9Z6imagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/9Z6imagen.png)

Al hacer clic en **Conectar**, veremos que en pantalla aparecen datos que se actualizan con una cierta periodicidad. Esa periodicidad viene dada por la espera que hemos introducido en el programa al final de **Bucle**.

[![puertoserie.gif](https://libros.catedu.es/uploads/images/gallery/2023-05/puertoserie.gif)](https://libros.catedu.es/uploads/images/gallery/2023-05/puertoserie.gif)

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/BINimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/BINimagen.png)

Puedes probar a modificar esos valores de tiempo en el programa y ver cómo cambia el funcionamiento. **No olvides volver a subir el programa a la placa después de cada cambio.**

Aparte de los datos numéricos por pantalla, arduinoblocks nos permite mostrar esos mismos **datos en forma de gráfica** usando los bloques correspondientes al **Serial Plotter**. Para visualizarlo, hay que ir al desplegable del botón **Consola** y seleccionarlo.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/vuTimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/vuTimagen.png)

Igualmente se abre una pantalla emergente, con aspecto de gráfico en la que habrá que hacer clic en **Conectar (1)** para comenzar la recepción de datos.

Al conectar se empezarán a pintar los valores de los datos mostrados. Podemos a su vez **grabar** esos datos durante un período de tiempo (**2 en la figura**), **parar** esa grabación de datos cuando lo deseemos **(3)** y exportar los datos grabados en ficheros **csv** **(4)**. Se nos generarán tantos csv como variables hayamos mostrado en la gráfica, que se guardarán como una descarga más del navegador. Esto puede ser de gran utilidad para monitorizar condiciones de cultivo en sistemas automatizados, etc...

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/Tfdimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/Tfdimagen.png)

Experimenta con esta utilidad grabando y exportando los csv correspondientes.

Por último te invitamos a enriquecer el programa, usando el **sensor de luz disponible** también en la TDR. Se trata de una **LDR**. En nuestro caso tendremos que **crear una nueva variable** en la que almacenar los datos recogidos por el sensor de luz. Después **enviaremos tanto por la consola Serie como por el Plotter esos valores** junto a los de temperatura y humedad.

Los pasos a seguir en ese caso serían:

1. Definir una nueva variable numérica desde el bloque Variables. Llámale **luz**

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/vwdimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/vwdimagen.png)

2\. Desde ese mismo bloque Variables, añade el bloque **Establecer luz =** justo debajo del de la temperatura, antes de los bloques de puerto serie.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/4sUimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/4sUimagen.png)

3\. Busca en el menú TDR STEAM el bloque correspondiente al **nivel de luz (LDR)** y asígnalo a la variable Luz.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/hNGimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/hNGimagen.png)

4\. Utiliza la opción de duplicar bloques con el botón derecho para crear un nuevo bloque tanto de **Enviar** como de **Plotter** al **Bucle**.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/mfPimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/mfPimagen.png)

5\. **Modifica los valores de texto y la variable** correspondiente en los nuevos bloques. La luminosidad detectada por el sensor se mide en %

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/99kimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/99kimagen.png)

6\. Por último sube el proyecto a la placa y comprueba el funcionamiento. Puedes tapar la LDR con el dedo, o aspirar en el sensor DHT-11 para ver cómo se modifican los valores obtenidos.

#### CONTROL POR BLUETOOTH  


Para realizar este proyecto lo primero que vamos a hacer es cerrar sesión, cerrar el programa ArduinoBlocks Conector y desconectar la placa, puesto que vamos a realizar un **cambio de placa.**

Separaremos la shield Imagina TDR de la placa Arduino UNO y sustituiremos esta última por la placa **ESP32** que te facilitarán en el taller. Verás que son muy similares en disposición y puertos, si bien la ESP32 **integra módulos para comunicaciones** (bluetooth y wifi) lo que nos permite controlar y visualizar los datos de la placa desde otros dispositivos externos (móvil, ordenador) o enviarlos a internet (IoT)

Una vez acopladas volveremos a seguir los pasos descritos anteriormente

1. **Conectar la placa** mediante USB al ordenador
2. Abrir el programa **Arduinoblocks Conector**
3. Refrescar la página [www.arduinoblocks.com](https://www.arduinoblocks.com) en nuestro navegador y volver a **iniciar sesión** con las credenciales de antes.

En este caso, para unirnos a este proyecto como Alumnado, tendremos que ir a Empezar nuevo proyecto y allí introducir el nuevo código, en este caso **LcN\_Uboq**

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-06/scaled-1680-/ulNimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-06/ulNimagen.png)

Se nos abre el proyecto **Control por Bluetooth\_taller**

Una vez abierto el proyecto, lo primero que vamos a hacer es **cambiar el Nombre del Bluetooth de nuestra placa**, de forma que quede unívocamente reconocible. Eso lo hacemos en el primer bloque dentro de **Inicializar**.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/SWoimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/SWoimagen.png)

Échale un vistazo al código y reconoce lo que hace el programa

- Bloque **inicializar**: arranca el módulo Bluetooth de la placa, le da un nombre y fija su timeout.
- Bloque **Bucle**: almacena los datos de temperatura y humedad detectados por el sensor DHT-11. Luego, si recibe datos por Bluetooth, almacena ese valor en la variable lectura. Según los valores que reciba, programa unas acciones u otras en diferentes actuadores (encender, apagar leds, sonido) En el caso de recibir un 6 o un 7, a su vez envía por Bluetooth los valores proporcionados por el sensor.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/PkFimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/PkFimagen.png)

Todos los bloques relacionados con el Bluetooth se encuentran en el Bloque **Comunicaciones**, en el submenú **Bluetooth**.

**Sube el programa a la placa y activa el bluetooth de tu móvil** para ver si la detectas y puedes vincularte con ella.

Ahora nos falta un dispositivo también con Bluetooth desde el que enviar esos datos a la placa y también recibir y mostrar los que ella le envía. Para ello utilizaremos nuestro móvil en el que le vas a cargar una sencilla aplicación realizada con AppInventor (que por supuesto también se puede elaborar con el alumnado)

Para ello escanea con tu móvil el siguiente código QR <span style="background-color: rgb(241, 196, 15);">(SUSTITUIR ESTO POR OTRO ESE DÍA PORQUE SOLO DURA DOS HORAS)</span>

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/GETimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/GETimagen.png)

Esto te descargará en el móvil un fichero .apk que deberás instalar y abrir. Para ello quizás tengas que habilitar temporalmente el permiso de aplicaciones desde terceros. En este caso puedes confiar en la fuente.

Al abrir la aplicación verás en tu móvil algo similar a esto.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-05/scaled-1680-/Zy7imagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-05/Zy7imagen.png)

En primer lugar, deberás conectarte por bluetooth a la placa. Para ello haz clic **en el móvil en el botón** **Conexión** y selecciona la placa. Una vez conectada, cambiará el color de las letras y se verá en **azul**.

Una vez conectada, experimenta con los diferentes botones y verás como reaccionan los distintos actuadores. Si quieres, modifica la melodía en el programa y repite el proceso con el nuevo tono.

Por último cierra todo y desconecta la placa.

### Para saber más

#### Arduino UNO

[https://programarfacil.com/blog/arduino-blog/arduino-uno-r3/](https://programarfacil.com/blog/arduino-blog/arduino-uno-r3/)

#### ESp32

[https://www.circuitos-electricos.com/esp32-especificaciones-y-disenos/](https://www.circuitos-electricos.com/esp32-especificaciones-y-disenos/)

[https://programarfacil.com/esp8266/esp32/](https://programarfacil.com/esp8266/esp32/)

#### Imagina TDR Steam

[https://shop.innovadidactic.com/en/imagina-steam-y-makers/17-placa-imagina-tdr-steam-con-12-funciones-incluye-sensores-y-actuadores.html](https://shop.innovadidactic.com/en/imagina-steam-y-makers/17-placa-imagina-tdr-steam-con-12-funciones-incluye-sensores-y-actuadores.html)

#### Arduinoblocks

Retos con Arduino UNO+TDR steam + Arduinoblocks:

[https://www.robolot.online/course/view.php?id=11](https://www.robolot.online/course/view.php?id=11)

Usuarios gestionados y aula virtual con ArduinoBlocks

[https://youtu.be/zdzKX0NX60Y](https://youtu.be/zdzKX0NX60Y)