# Introducción

# 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
    - Retos **STEAM** de nivel medio adentrándose en las comunicaciones Bluetooth y wifi y almacenamiento de datos
    - Retos **STEAM** de nivel avanzado con prácticas IoT
- Realizar retos STEAM en un entorno **ARDUINOBLOKS** amigable, sin complicaciones técnicas, multiplataforma y con lenguaje gráfico por bloques 
    - Conocer **ARDUINOBLOCKS** una plataforma web que permite programar por bloques gráficos
    - Conocer las diferentes posibilidades de la programación por bloques de **ARDUINOBLOCKS**
    - Conocer las posibilidades didácticas de **ARDUINOBLOCKS** y su gestión de proyectos en el aula
- Conocer el kit robótico **TDR STEAM ESP32** que se propone, con un coste económico bajo pero de calidad para que un centro educativo lo pueda asumir para su aplicación en el aula (mínimo 12 por aula)  
    
    - Conocer la placa **TDR STEAM ESP32**, sus sensores y actuadores
    - Aplicaciones prácticas del **TDR STEAM ESP32**

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

- **PLACA ESP32**
    - Placa ESP32, hardware y software
    - Sensores
    - Actuadores
    - Shield TDR Steam
- **ArduinoBlocks**
    - **Retos**
    - **Telecomunicaciones**
        - **Bluetooth**
        - **IOT -WIFI**
            - MQTT
            - BLYNK IOT
            - BLYNK LEGACY 
                - Blynk en una rasperry local

# Kit ESP32 en el Aula

Se ha buscado un kit entre todos los comerciales que cumpla los siguientes objetivos :

- Que sea fácil de utilizar en el aula, sin necesidad de utilizar excesivo cableado, con el objetivo de realizar el máximo número de retos.
- Utilizar un lenguaje de programación por bloques fácil de desarrollar y sin complejidades técnicas multiplataforma.
- Con buena relación calidad/precio.
- Con un amplio abanico de prácticas y niveles educativos, desde primaria hasta secundaria.
- Facilidad de crear actividades en entorno IoT

El equipo pedagógico de CATEDU ha elegido para este curso el[ Kit TDR STEAM ESP32 de Innovadidactic](https://shop.innovadidactic.com/es/imagina-steam-y-makers/1574-kit-imagina-tdr-steam-basado-en-esp32-steamakers.html), con el objetivo de alcanzar prácticas más avanzadas dentro del mundo del Internet de las cosas IoT.

El kit esta pensado **para utilizar dentro del aula** y se ha establecido un número de 12 grupos, consideramos que es un número óptimo para llegar a la ratio del aula y que el profesor llegue a atender correctamente a todos los grupos.

[![kitinnovadidacticESP32.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/kitinnovadidacticesp32.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/kitinnovadidacticesp32.png)

##### <span style="color: rgb(22, 145, 121);">**Partes del kit Imagina TdR STEAM**</span>

<p class="callout info">Este apartado está extraído de Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA</p>

Una placa Imagina TdR STEAM versión 2.0 como la de la imagen siguiente:

[![TdR-STEAM.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/tdr-steam.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/tdr-steam.png)  
Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

Una placa ESP32 Plus STEAMakers.

[![ESP32_STEAMakers.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/esp32-steamakers.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/esp32-steamakers.png)

Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

Mando de control remoto por infrarrojos para utilizar en conjunto con el sensor de infrarrojos integrado en la placa TdR-STEAM.

<center id="bkmrk-federico-coca%C2%A0notas--1">[![mando-IR.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/mando-ir.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/mando-ir.png)  
Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

Pantalla LCD 1602 IIC (I2C) de 2 línea de 16 caracteres. Nos va a permitir mostrar mensajes de texto e irá conectada al conector I2C de la placa TdR-STEAM.

</center>[![LCD1602.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/lcd1602.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/lcd1602.png)  
Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

Sensor de sonido analógico (con potenciometro). Se utiliza básicamente para detectar el nivel sonoro ambiental. El potenciometro permite ajustar el nivel de ganancia.

[![Microfono.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/microfono.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/microfono.png)

Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

Todo el kit se presenta en una caja de plástico, pero una opción práctica para no abrir y cerrar tantas veces la caja, es utilizar una caja impresa 3D, las partes impresas e instrucciones se pueden conseguir en [https://fgcoca.github.io/ESP32-STEAMakers/necesidades/](https://fgcoca.github.io/ESP32-STEAMakers/necesidades/) el resultado es :

[![montaje-paso-6.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/montaje-paso-6.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/montaje-paso-6.png)  
Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA

# Pensamiento computacional

¿Dónde se encaja este robot? ¿Se puede comparar este robot con otros robots de otros cursos que hacemos desde CATEDU?

Esta es la hoja de ruta que proponemos, no se tiene que tomar al pie de la letra, pero intenta ayudar al profesorado que tenga una visión global de tanta oferta robótica:

Como se puede ver **ESP32 EN EL AULA** tiene la ventaja de tener un precio razonable, y dentro del rango de programación en bloques y de prácticas avanzadas IoT con la ventaja que es un kit muy amigable sin apenas conexiones y con muchas posibilidades.

{{@4518}}

# ¿Qué es ESP32?

##### <span style="color: rgb(22, 145, 121);">**Primero : ¿Qué es Arduino?**</span>

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

<p class="callout info">{{@2936#bkmrk-%C2%BFsab%C3%ADas-que....-%3F%C2%A0un}}</p>

##### <span style="color: rgb(22, 145, 121);">**Segundo ¿Qué es un microcontrolador?**</span>

{{@2936#bkmrk-es-un-circuito-integ}}

{{@2936#bkmrk-arduino-utiliza-la-m}}

##### <span style="color: rgb(22, 145, 121);">**Tercero ¿Arduino tiene wifi?**</span>

{{@7069#bkmrk-resumiendo-brevement}}

{{@7069#bkmrk-resumiendo-brevement-0}}

{{@7069#bkmrk-el-esp8266-se-vende-}}

[![esp01-1.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/esp01-1.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/esp01-1.png)

*Fuente Luis Llamas CC-BY-NC-SA [ver](https://www.luisllamas.es/arduino-wifi-esp8266-esp01/)*

<p class="callout info">{{@7069#bkmrk-por-eso-se-habla-ind}}</p>

{{@7069#bkmrk-su-bajo-precio-y-su-}}  
{{@7069#bkmrk-pero...-%28por-qu%C3%A9-sie}}  
{{@7069#bkmrk-nuestro-consejo-si-p}}  
{{@7069#bkmrk-nodemcu-que-se-ha-ut}}

##### **Cuarto: ¿El ESP32 es ....?**

Es una placa sucesora del ESP8266 de bajo coste y consumo que tiene el microprocesador Tensilica 32bits (variante el Xtensa LX6) que tiene Wifi y Bluetooth integrados. Como dice Luis Llamas en [https://www.luisllamas.es/esp32/](https://www.luisllamas.es/esp32/) el ESP32 es el hermano mayor del ESP8266 con Wifi y Bluetooth.

*<span style="background-color: #ffffff; color: #444444;">[![esp32.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/esp32.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/esp32.png)</span>*

*<span style="background-color: #ffffff; color: #444444;"><span style="background-color: #ffffff; color: #444444;">Módulo ESP32 Fuente Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/esp32/](https://www.luisllamas.es/esp32/)</span></span>*

Es posible programarlo usando código IDE de Arduino, pero también se puede programar con MicroPython.

<p class="callout info">Su principal característica es su potencial de uso en aplicaciones IoT</p>

- Para saber más 
    - Consideraciones sobre ESP32 [https://fgcoca.github.io/ESP32-STEAMakers/conesp32/](https://fgcoca.github.io/ESP32-STEAMakers/conesp32/)

> Evolucion de búsquedas en Google de Arduino, Raspberry PI, ESP32 y MicroBit  
>   
> -Arduino y Rpi tuvieron máximo en 2017-18. Desde entonces bajan.   
> -Arduino aguanta tipo  
> -Rpi cuesta abajo sin frenos  
> -ESP32 despega 👍👍  
> -Microbit no, pese a que tuvo buen arranque (inmerecido?) [pic.twitter.com/A2Pl18qecZ](https://t.co/A2Pl18qecZ)
> 
> — Luis Llamas (@LuisLlamas) [August 9, 2023](https://twitter.com/LuisLlamas/status/1689370030184472577?ref_src=twsrc%5Etfw)

# Hardware ESP32 Plus STEAMakers

Esta placa está basado en el ESP32 que hemos visto que tiene :

- Wifi integrado
- Bluetooth integrado
- Puede trabajar con el código IDE de Arduino

Pero, esta [versión de Innova Didactic](https://shop.innovadidactic.com/es/standard-placas-shields-y-kits/1567-placa-esp32-steamakers.html) además incorpora :

- Zócalo para tarjetas microSD para almacenamiento de datos.
- Conexiones iguales que cualquier tarjeta Arduino UNO

<p class="callout success">Esto permite usar cualquier Shield de Arduino, como la TDR STEAM Imagina de este curso. Para saber las diferentes Shields de Arduino mira esta página [https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/hardware](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/hardware)</p>

En la figura ¿Puedes localizar el ESP32 famoso?  
[![placa-esp32-steamakers.jpg](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/placa-esp32-steamakers.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-12/placa-esp32-steamakers.jpg)  
*Imagen Fuente Innovadidactic*

<p class="callout info">El contenido mostrado a continuación es de [la web de Federico Coca](https://fgcoca.github.io/ESP32-STEAMakers/hsteamakers/) Licencia CC-BY-SA</p>

La placa ESP32 Plus STEAMakers nos ofrece una gran cantidad de prestaciones al estar basada en un microcontrolador de 32 bits con conectividad WiFi y Bluetooth integradas en la propia placa y también un zócalo para tarjetas µSD para el almacenamiento de datos. También dispone de conexiones para todas las entradas y salidas con posibilidad de tener la alimentación adjunta y puertos de expansión I2C para poder conectar diferentes dispositivos directamente en la placa.

La placa está basada en el microcontrolador ESP32-WROOM-32 y sus principales especificaciones técnicas son:

- Microcontrolador Tensilica Xtensa 32-bit LX6 a 160MHz.
- Conectividad WiFi 802.11 b/g/n/e/i.
- Conectividad Bluetooth 4.2 y modo BLE.
- Zócalo para tarjetas µSD.
- 14 entradas y salidas digitales con alimentación.
- Conector serie hembra con alimentación.
- Conector I2C para conectar hasta 5 dispositivos a la vez sobre la misma placa.
- Conector hembra I2C para conexión de una pantalla OLED.
- Botón de Reset.
- Conector de 5V
- Conector de 3.3V
- Interruptor 3.3-5V para cambiar entre estas dos tensiones en algunos pines de alimentación.
- Entradas y salidas analógicas.
- Sensor Hall y de temperatura integrado.
- 2 convertidores Digital-Analógico (DAC) de 8 bits.
- 16 convertidores Analógico-Digital (ADC) de 12 bits.
- 16 canales PWM.
- 2 UART.
- 2 canales I2C.
- 4 canales SPI.
- 448Kb ROM.
- 520 KB SRAM.
- 8KB+8KB SRAM en RTC.
- 1kbit eFUSE.
- 512 bytes Memoria Flash (EEPROM).
- 10 sensores táctiles.
- 4 temporizadores internos de 64 bits.

No están disponibles todas las características del controlador ESP-WROOM-32, ya que algunos pines tienen funciones dobles y se utilizan en la placa de forma específica (como, por ejemplo, para controlar la tarjeta SD). Pero la mayoría de funciones se pueden utilizar, además de disponer la placa ESP32 Plus STEAMakers de una mejor conexión de elementos debido a los pines para conectores tipo Dupont de entrada y salida, de I2C y de alimentación. Además, algunos pines de alimentación pueden cambiar su valor (3,3V o 5V) mediante un interruptor en función de nuestras necesidades.

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/SEAhjQx-e4A?list=PL1pKD-Bz2QBAgfy580m8OaQ2Z60v6DOhC&index=2" width="560"></iframe>

A continuación vemos una imagen en la que se compara el potencial de la placa ESP32 Plus STEAMakers En la figura siguiente vemos los elementos que componen la placa ESP32 Plus STEAMakers:

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

*Imagen [Federico Coca](https://fgcoca.github.io/ESP32-STEAMakers/hsteamakers/) CC-BY-SA*

<p class="callout info">Las conexiones de la placa Imagina TDR STEAM con la placa ESP32 Plus STEAMakers son las mismas que si utilizamos cualquier placa compatible con Arduino UNO. </p>

**Importante**: Todos los pines IOxx son entradas y salidas digitales, algunas con más funciones. Utilizando la comunicación WiFi no funciona el ADC2.

En la tabla siguiente tenemos relacionados todos los pines entre los tipos de placas UNO, Imagina TdR STEAM y ESP32 STEAMakers.

<table id="bkmrk-uno-tdr-steam-esp32-"><thead><tr><th align="center">UNO</th><th>TdR STEAM</th><th>ESP32</th><th>  
</th><th>  
</th></tr></thead><tbody><tr><td align="center">Pin</td><td>Función</td><td>Pin</td><td>Función</td><td>Ampliación</td></tr><tr><td align="center">D0</td><td>Rx</td><td>IO03</td><td>Rx</td><td>UART 0 RX</td></tr><tr><td align="center">D1</td><td>Tx</td><td>IO01</td><td>Tx</td><td>UART 0 TX</td></tr><tr><td align="center">D2</td><td>Pulsador SW1</td><td>IO26</td><td>ADC2 CH9</td><td>DAC2</td></tr><tr><td align="center">D3</td><td>Libre</td><td>IO25</td><td>ADC2 CH8</td><td>DAC1</td></tr><tr><td align="center">D4</td><td>DHT11</td><td>IO17</td><td>  
</td><td>UART 2 TX</td></tr><tr><td align="center">D5</td><td>Libre</td><td>IO16</td><td>  
</td><td>UART 2 RX</td></tr><tr><td align="center">D6</td><td>Color rojo del LED RGB</td><td>IO27</td><td>ADC2 CH7</td><td>ADC2-7 / TOUCH7</td></tr><tr><td align="center">D7</td><td>Pulsador SW2</td><td>IO14</td><td>ADC2 CH6</td><td>ADC2-6 / TOUCH6</td></tr><tr><td align="center">D8</td><td>Zumbador o buzzer</td><td>IO12</td><td>ADC2 CH5</td><td>ADC2-5 / TOUCH5</td></tr><tr><td align="center">D9</td><td>Color verde del LED RGB</td><td>IO13</td><td>ADC2 CH4</td><td>ADC2-4 / TOUCH4</td></tr><tr><td align="center">D10</td><td>Color azul del LED RGB</td><td>IO05</td><td>  
</td><td>VSPI CSO</td></tr><tr><td align="center">D11</td><td>Sensor IR</td><td>IO23</td><td>  
</td><td>VSPI MOSI</td></tr><tr><td align="center">D12</td><td>LED rojo</td><td>IO19</td><td>  
</td><td>VSPI MISO</td></tr><tr><td align="center">D13</td><td>LED azul</td><td>IO18</td><td>  
</td><td>VSPI CLK</td></tr><tr><td align="center">GND</td><td>  
</td><td>GND</td><td>  
</td><td>  
</td></tr><tr><td align="center">AREF</td><td>  
</td><td>Reset</td><td>  
</td><td>  
</td></tr><tr><td align="center">SDA</td><td>I2C</td><td>IO21</td><td>  
</td><td>  
</td></tr><tr><td align="center">SCL</td><td>I2C</td><td>IO22</td><td>  
</td><td>  
</td></tr><tr><td align="center">A0</td><td>Potenciómetro</td><td>IO02</td><td>ADC2 CH2</td><td>  
</td></tr><tr><td align="center">A1</td><td>Sensor de luz (LDR)</td><td>IO04</td><td>ADC2 CH0</td><td>  
</td></tr><tr><td align="center">A2</td><td>Sensor de temperatura (LM35)</td><td>IO36</td><td>ADC1 CH0</td><td>  
</td></tr><tr><td align="center">A3</td><td>Libre</td><td>IO34</td><td>ADC1 CH6</td><td>  
</td></tr><tr><td align="center">A4</td><td>I2C</td><td>IO38</td><td>  
</td><td>  
</td></tr><tr><td align="center">A5</td><td>I2C</td><td>IO39</td><td>ADC1 CH3</td><td>  
</td></tr><tr><td align="center">VIN</td><td>  
</td><td>VIN</td><td>  
</td><td>  
</td></tr><tr><td align="center">GND</td><td>  
</td><td>GND</td><td>  
</td><td>  
</td></tr><tr><td align="center">GND</td><td>  
</td><td>GND</td><td>  
</td><td>  
</td></tr><tr><td align="center">5V</td><td>  
</td><td>5V</td><td>  
</td><td>  
</td></tr><tr><td align="center">3.3V</td><td>  
</td><td>3.3V</td><td>  
</td><td>  
</td></tr><tr><td align="center">RST</td><td>  
</td><td>Reset</td><td>  
</td><td>  
</td></tr><tr><td align="center">5V</td><td>  
</td><td>5V</td><td>  
</td><td>  
</td></tr><tr><td align="center">  
</td><td>  
</td><td>IO00</td><td>¡ No conectar !</td><td>  
</td></tr><tr><td align="center">-</td><td>  
</td><td>IO32</td><td>D0 - uSD</td><td>  
</td></tr><tr><td align="center">-</td><td>  
</td><td>IO15</td><td>CLK - uSD</td><td>  
</td></tr><tr><td align="center">-</td><td>  
</td><td>IO33</td><td>CMD - uSD</td><td>  
</td></tr><tr><td align="center">-</td><td>  
</td><td>IO35</td><td>IOUT</td><td>Medidor de corriente</td></tr><tr><td align="center">-</td><td>  
</td><td>IO37</td><td>VOUT</td><td>Medidor de tensión</td></tr></tbody></table>

- Para saber más : 
    - Notas sobre ESP32 STEAMakers [https://fgcoca.github.io/ESP32-STEAMakers/hsteamakers/](https://fgcoca.github.io/ESP32-STEAMakers/hsteamakers/)

# Sensores

{{@7009}}

# Actuadores y otras salidas

{{@11506}}

# Sensores y actuadores de la placa Imagina TDR STEAM

{{@7046}}

# Sensores en la placa ESP32 plus STEAMakers

<p class="callout info">Página extraída de Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA</p>

La placa ESP32 Plus STEAMakers se basa en el microcontrolador ESP32-WROOM-32 que dispone de dos sensores internos. Se trata de un **sensor de efecto hall** y un **sensor de temperatura.**

La placa ESP32 Plus STEAMakers lleva implementado un **medidor de tensión e intensidad** con el que podemos saber la tensión de alimentación en todo momento. Si la tensión de alimentación baja de aproximadamente 4,8V la placa no funcionará correctamente (sobre todo la transmisión WiFi). Es recomendable realizar una verificación de la tensión que está entregando el puerto USB del ordenador. Si la tensión no es próxima a 5V deberemos cambiar el cable USB, alimentar el puerto USB de forma externa o alimentar la placa con una fuente de alimentación. Es decir, dispone de un sistema para poder medir el consumo de energía.

Los bloques para trabajar con estos sensores están en 'Sensores`, entrada 'Integrados', y son los que vemos en la figura siguiente:

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

# Software

Hemos visto que el ESP32 acepta código IDE Arduino, por lo tanto puede programarse como un Arduino, (acepta microPython, mBlock, etc... ) pero nuestra recomendación es programarlo con **bloques gráfico** con dos opciones :

- **<span style="background-color: rgb(251, 238, 184);">STEAMAKERSBLOCKS</span>** (antes ARDUINOBLOCKS) es el programa que se usa en este tutorial 
    - 😒 es **lento** cargando el programa y hay que tener bien instalado Connector
    - 😒sólo online
    - 😍permite programas **IoT**
    - 😍 tiene una buena **gestión de alumnado** ideal para envío de proyectos y corregirlos
    - 😍 tiene un canal de Telegram de apoyo al docente [https://t.me/innovadidactic\_comunidad](https://t.me/innovadidactic_comunidad)
- <span style="background-color: rgb(251, 238, 184);">**MICROBLOCKS** </span>El tutorial recomendado es: [https://pedroruizf.github.io/steamakersmicroblocks](https://pedroruizf.github.io/steamakersmicroblocks)
    - 😒 no permite muchos programas IoT
    - 😍es muy rápido al ejecutar y no da problemas de configuración
    - 😍local o online

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="569" src="https://docs.google.com/presentation/d/e/2PACX-1vQb1Dv9wN9QK-F6V7yvwDoyzquqwWlGvIyVJr83Yk56kAoYD7bXLnYDm_tCQkeAgg/pubembed?start=false&loop=false&delayms=3000" width="960"></iframe>

Si quieres saber más sobre las diferencias entre programar con código, con bloques gráficos, en vivo, en carga... [aquí](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/software)