# Arduino en el aula # Introducción # Objetivos y Contenidos #### Objetivos - Capacidad de desarrollar retos **STEAM** con un amplio nivel educativo: primaria hasta secundaria - Retos **STEAM** de nivel principiante - Retos **STEAM** de nivel medio - Retos **STEAM** de nivel avanzado - 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 Arduino** 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 Arduino**, sus sensores y actuadores - Aplicaciones prácticas del **TDR STEAM Arduino** #### **Contenidos** - **Arduino** - Placa Arduino, hardware y software - Sensores - Actuadores - Placa Keystudio - Shield TDR Steam - **ArduinoBlocks** - **Retos** - **Telecomunicaciones** - **Bluetooth** - **IOT -WIFI** - MQTT - BLYNK - Blynk en una rasperry local {{@5685}} # Kit Arduinobloks 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. El equipo pedagógico de CATEDU ha elegido para este curso el Kit TDR STEAM de KeyStudio, y además ha incorporado una bolsa con elementos para las telecomunicaciones 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. ![](https://docs.google.com/drawings/d/e/2PACX-1vSdaf8Gizqji4xqJ4zSopXMO_RGp5tsc_CZ5EmrNE7ANppqM-h6vdW5U3vl-bqlKM4fha3ZyHvMS66v/pub?w=1079&h=720) En esta tabla se puede consultar los precios y los enlaces a las páginas comerciales del kit : {{@5685}} # Normativa ##### **TECNOLOGÍA Curso: 4º** Según Orden ECD/489/2016, de 26 de mayo, por la que se aprueba el currículo de la Educación Secundaria Obligatoria y se autoriza su aplicación en los centros docentes de la Comunidad Autónoma de Aragón que puedes consultar [aquí](https://educa.aragon.es/en/-/normativa-eso), la [parte correspondiente a TECNOLOGÍA 4º DE LA ESO](https://educa.aragon.es/documents/20126/521996/60+TECNOLOGIA+4.pdf/24089843-5982-b1b2-ecb5-2010cacf605e?t=1578923144706) **BLOQUE 4: Control y robótica** - **CONTENIDOS**: - Sistemas automáticos, componentes característicos de dispositivos de control. - Diseño y construcción de robots. Grados de libertad. Características técnicas. - El ordenador como elemento de programación y control. Lenguajes básicos de programación. Aplicación de tarjetas controladoras en la experimentación con prototipos diseñados. - **CRITERIOS DE EVALUACIÓN COMPETENCIAS** CLAVE ESTÁNDARES DE APRENDIZAJE EVALUABLES - Crit.TC.4.1. Analizar sistemas automáticos, describir sus componentes. CCL - CMCT - Est.TC.4.1.1. Analiza el funcionamiento de automatismos en diferentes dispositivos técnicos habituales, diferenciando entre lazo abierto y cerrado y describe los distintos componentes tanto en lazo abierto como cerrado. - Crit.TC.4.2. Montar automatismos sencillos. CMCT - Est.TC.4.2.1. Representa automatismos sencillos. - Crit.TC.4.3. Desarrollar un programa para controlar un sistema automático o un robot y su funcionamiento de forma autónoma. CMCT-CD-CAA - Est.TC.4.3.1. Desarrolla un programa para controlar un sistema automático o un robot que funcione de forma autónoma en función de la realimentación que recibe del entorno. ##### **PROGRAMACION Y ROBÓTICA 3º DE LA ESO** Según Orden ECD/1172/2022, de 2 de agosto, por la que se aprueban el currículo y las características de la evaluación de la Educación Secundaria Obligatoria y se autoriza su aplicación en los centros docentes de la Comunidad Autónoma de Aragón ([Publicada en BOA el 11/08/2022](https://educa.aragon.es/documents/20126/2789389/ECD+1172+2022+de+2+de+agosto+%28curr%C3%ADculo+y+evaluaci%C3%B3n+ESO%29.pdf/8659291a-b7d9-66a8-b6d6-59d9c88d78b1?t=1661768667394)) tenemos el currículo de PROGRAMACIÓN Y ROBÓTICA [ver pdf](https://educa.aragon.es/documents/20126/2773111/%5B02.30%5D+Programaci%C3%B3n+y+Rob%C3%B3tica.pdf/854b4aa9-3da6-b827-6e0f-ded5a786c289?t=1661254619158) Tenemos en la parte III.2 Concreción de los saberes básicos, en el C. Pensamiento computacional, programación y robótica : - Algorítmica y diagramas de flujo. - Aplicaciones informáticas sencillas para ordenadores: Programación por bloques. - Aplicaciones informáticas para ordenadores y dispositivos móviles. - Sistemas de control programado. Montaje físico y/o uso de simuladores y programación sencilla de dispositivos. Wearables. Internet de las cosas. - Fundamentos de la robótica. Montaje, control programado de robots de manera física o por medio de simuladores. - Autoconfianza e iniciativa: el error, la reevaluación y la depuración de errores como parte del proceso de aprendizaje. {{@5685}} # Y la LOMLOE para cuando... En la nueva normativa educativa publicada el año 2022 se impulsa de forma decisiva la enseñanza de contenidos relacionados con la programación tanto desde las primeras etapas como por supuesto en Secundaria y Bachillerato. En concreto los contenidos abordados en este curso corresponden a la Competencia Específica nº 5 de la materia de Tecnología y Digitalización desarrollada en la **[Orden ECD/1172/2022](https://educa.aragon.es/documents/20126/2789389/ECD+1172+2022+de+2+de+agosto+%28curr%C3%ADculo+y+evaluaci%C3%B3n+ESO%29.pdf/8659291a-b7d9-66a8-b6d6-59d9c88d78b1?t=1661768667394), de 2 de agosto, por la que se aprueban el currículo y las características de la evaluación de la Educación Secundaria Obligatoria .** En concreto esta competencia consiste en "*Desarrollar algoritmos y aplicaciones informáticas en di**stintos entornos, aplicando los principios del pensamiento computacional e incorporando las tecnologías emergentes, para crear soluciones a problemas concretos, automatizar procesos y aplicarlos en sistemas de control o en robótica." * Específicamente en los criterios de evaluación de dicha competencia, para el curso de 2º de ESO, se habla de: - *5.1. Describir, interpretar y diseñar soluciones a problemas informáticos a través de algoritmos básicos y diagramas de flujo sencillos, aplicando los elementos y técnicas de programación de manera creativa.* - *5.2. Programar aplicaciones sencillas, de forma guiada con una finalidad concreta y definida, para distintos dispositivos (ordenadores, dispositivos móviles y otros) aplicando herramientas de edición y empleando los elementos de programación de manera apropiada.* Asimismo el currículo de dicha materia establece como uno de los bloques de saberes básicos de esta materia aquellos concernientes a **Programación, pensamiento computacional y robótica,** estableciendo como conocimientos, destrezas y actitudes a desarrollar con el alumnado en 2º de ESO las siguientes: Algorítmica y diagramas de flujo. Aplicaciones informáticas sencillas para ordenadores: Programación por bloques. Autoconfianza e iniciativa: el error, la reevaluación y la depuración de errores como parte del proceso de aprendizaje Por lo tanto tanto los ejercicios planteados en el curso así como la metodología encajan perfectamente en la programación de esta materia en 2º de ESO, siendo los contenidos de robótica tratados en otros cursos de Aularagón más propios de la misma materia pero en 3º. A pesar de que en el currículo habla de programación por bloques, nos ha parecido interesante en este curso introducir en paralelo un **programa de pseudocódigo** como PSeInt para acompañar al alumnado en esa transición desde lo intuitivo de una programación por bloques, visual y con la que muchos ya vienen familiarizados desde Educación Primaria, con la sintaxis de los lenguajes de programación, con los que tendrán que empezar a manejarse en cursos posteriores. Una vez que el alumnado se ha familiarizado con los conceptos básicos de la programación estructurada contenidos en este curso, es tiempo de plantearle **situaciones de aprendizaje** en los que aplicarlos, preferentemente en la resolución de problemas reales y aplicando metodologías de trabajo en equipo. Esto correspondería a la última fase de Ejercicios de Creación. descrita en el apartado de Ejercicios resueltos. La Competencia arriba descrita también se encuentra en el Currículo de la materia **optativa de 3º de ESO de Programación y Robótica** como Competencia Específica nº 4 de esa materia, pudiendo aplicarse todo lo dicho anteriormente también en el desarrollo de dicha materia. {{@5685}} # 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 **ARDUINOBLOCKS EN EL AULA** tiene la ventaja de tener un precio razonable, y dentro del rango de programación en bloques del Arduino en primaria con la ventaja que es un kit muy amigable sin apenas conexiones y con muchas posibilidades. Oferta de formación en Pensamiento computacional del Centro Aragonés de Tecnologías para la Educación.

Tenemos un **grupo Telegram Robótica Educativa en Aragón**, si estás interesado en unirte, envía un mensaje por Telegram (obligatorio) a CATEDU 623197587 [https://t.me/catedu\_es](https://t.me/catedu_es) y te añadimos en el grupo

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-7qvnrzdh.jpeg) {{@5685}} # Robótica y accesibilidad {{@7565}} {{@5685}} # ¿Qué es Arduino? {{@2936}} {{@5685}} # Hardware del Arduino {{@2937}} {{@5685}} # Software del Arduino {{@7552}} {{@5685}} # Sensores {{@7009}} {{@5685}} # Actuadores y otras salidas {{@11506}} {{@5685}} # Componentes de la placa Imagina TDR STEAM

**ATENCIÓN**, ANTES DE SUBIR UN PROGRAMA A TU PLACA TIENES QUE TENER EL POTENCIÓMETRO (8) A CERO, DE LO CONTRARIO PUEDE DAR ERROR AL SUBIR **LA FLECHA DEL POTENCIÓMETRO QUE APUNTE AL PUNTO ROJO** [![Por-TdR.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/por-tdr.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/por-tdr.png) Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA El motivo es que el potenciómetro comparte la conexión A0 (GPIO02) con el sistema de grabación del programa y si el mismo no está en su posición de cero resistencia se producirá un error en el envío del programa a la placa porque se entenderá que los pines de transmisión están ocupados con otra tarea. (Federico Coca [Notas sobre ESP32 STEAMakers](https://fgcoca.github.io/ESP32-STEAMakers/) CC-BY-SA)

[![errorArduinoblocks.jpg](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/errorarduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-11/errorarduinoblocks.jpg)

También el interruptor del Bluetooth tiene que estar **hacia al borde** de lo contrario no se comunica con el puerto COM [![interruptorHC06.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/interruptorhc06.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/interruptorhc06.jpg)

Esta página es extraída de Actividades con Imagina TDR STEAM y ArduinoBlocks https://github.com/arduinoblocks/libros Autoría: Equipo de Innova Didàctic y Robolot Team. Licencia **CC-BY-NC-ND**

La placa Imagina TDR STEAM es una placa didáctica desarrollada por el equipo ROBOLOT que presenta la gran ventaja de tener una gran cantidad de sensores, actuadores y conexiones de expansión incorporados directamente en ella. Únicamente hay que conectar esta placa a una placa Arduino UNO (en nuestro caso, una placa compatible llamada Keyestudio UNO) y ya está todo listo para empezar a programar. [![placatdr.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/placatdr.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/placatdr.png) Tabla con la relación de elementos que hay en la placa Imagina TDR STEAM y sus conexiones: [![tablatdrimagina.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/tablatdrimagina.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/tablatdrimagina.png)

Esta página es extraída de Actividades con Imagina TDR STEAM y ArduinoBlocks https://github.com/arduinoblocks/libros Autoría: Equipo de Innova Didàctic y Robolot Team. Licencia **CC-BY-NC-ND**

**ATENCIÓN: EN LA PLACA ESP32, SI SE UTILIZA LA COMUNICACIÓN WIFI DEJA DE FUNCIONAR A0 Y A1 ES DECIR EL POTENCIÓMETRO Y EL LDR**

{{@5685}} # Placa de control Keyestudio UNO

Esta página es extraída de Actividades con Imagina TDR STEAM y ArduinoBlocks https://github.com/arduinoblocks/libros Autoría: Equipo de Innova Didàctic y Robolot Team. Licencia **CC-BY-NC-ND**

Al ser hardware libre existen multitud de fabricantes que han desarrollado versiones basadas en Arduino. Uno de esos fabricantes es Keyestudio. [![placakeystudio1.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/placakeystudio1.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/placakeystudio1.png) La placa Keyestudio UNO lleva un microcontrolador que está basado en el ATmega328. Tiene 14 pines digitales de entrada / salida (de los cuales 6 se pueden usar como salidas PWM), 6 entradas analógicas, un cristal de cuarzo de 16 MHz, una conexión USB, un conector de alimentación, un encabezado ICSP y un botón de reinicio. [![placakeystudio2.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/placakeystudio2.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/placakeystudio2.png) Especificaciones: ● Voltaje de funcionamiento: + 5V ● Voltaje de entrada externo: + 7V ~ + 12V. (Límite: +6 V. <+ 20 V). ● Corriente de interfaz DCI / O: 20mA ● Flash Memory: 32 KB (ATmega328) de los cuales 0,5 KB utilizados por el gestor de arranque ● Capacidad de almacenamiento EEPROM: 1KB ● Frecuencia del reloj: 16MHZ ● Microcontrolador ATmega328P-PU ● Pines de E / S digital 14 (de los cuales 6 proporcionan salida PWM) ● Pines de E / S digitales PWM 6 (D3, D5, D6, D9, D10, D11) ● Pines de entrada analógica 6 (A0-A5) ● LED\_BUILTIN D13 Las conexiones de la placa TDR STEAM con la placa Keyestudio UNO son las siguientes: [![tablakeystuido.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/tablakeystuido.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/tablakeystuido.png) Para realizar la programación la podemos hacer mediante la IDE de Arduino o mediante Arduinoblocks. Como podemos ver son dos sistemas diferentes. En la IDE de Arduino la programación se realiza mediante instrucciones (derecha en la fotografía) y en Arduinoblocks se realiza mediante bloques. Utilizar Arduinoblocks simplifica y hace más inteligible el código, lo que permite iniciarse en el mundo de la programación de un modo más amigable. Arduinoblocks también permite programar de diversas formas, ya que tiene bloques que realizan las mismas funciones pero que se pueden entender de forma más sencilla. En la siguiente imagen se hace una comparación de código entre Arduinoblocks y Arduino IDE. [![arduinoblocks-ide.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/arduinoblocks-ide.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/arduinoblocks-ide.png)

Esta página es extraída de Actividades con Imagina TDR STEAM y ArduinoBlocks https://github.com/arduinoblocks/libros Autoría: Equipo de Innova Didàctic y Robolot Team. Licencia **CC-BY-NC-ND**

{{@5685}} # ¿Qué es Arduinoblocks? {{@5126}} # Crear cuenta en Arduinoblocks {{@5973}} {{@5685}} # Cuentas alumnos {{@5127}} {{@5685}} # ArduinoBlocks connector {{@5128}} {{@5685}} # Empezando un proyecto {{@5129}} ##### **Con Imagina TdR STEAM ¿Qué tipo de proyecto elijo?** Para aclarar, las dos opciones son válidas para nuestros proyectos, pero la específica con Imagina TdR STEAM es más cómoda: - - **La placa sola (ArduinoUno)** donde te aparecerán todos los sensores y salidas con todas las posibilidades de entradas y salidas (E/S) de la placa (Arduino o ESP32) - **La placa (ArduinoUno ) + Imagina TdR STEAM** donde aparecen: - Los sensores y salidas específicas de la placa TdR STEAM ya conectadas en sus respectivos pines E/S del Arduino. - En contra, algunos sensores ya no aparecen todas las E/S del Arduino que están ocupadas por los elementos de la placa TdR STEAM. ##### **Vamos a poner un ejemplo: Hacer una intermitencia con el LED AZUL del TdR STEAM** Si lo hacemos con el tipo de proyecto **ArduinoUno** tenemos que poner el Actuador LED y en el pin elegir el 13 porque el led Azul está conectado en el 13. Fíjate que en el desplegable del Pin están todas las E/S del Arduino UNO [![ejemploplacaArduino.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ejemploplacaarduino.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ejemploplacaarduino.png) En cambio si elegimos un proyecto tipo **ArduinoUno + Imagina TdR STEAM** veremos que tenemos añadidos unos actuadores específicos para esta placa TDR STEAM que es más fácil usarlos, donde en el desplegable sólo aparece ROJO o AZUL y el alumno **no necesita recordar** que ROJO es el 12 y AZUL es el 13

Pero si elegimos un led del desplegable de actuadores, veremos que en su desplegable de pines sólo aparece los números 3, 5 y A3 **porque son los que tiene libres, el resto están ocupados por la placa TdR STEAM**

[![ejemploplacaTDR.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ejemploplacatdr.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ejemploplacatdr.png) Está claro que el tipo de proyecto **ArduinoUno + Imagina TdR STEAM** es más cómodo por que los bloques ya tienen fijados qué pines tienen cada sensor y si eliges un sensor no incluido en la placa, ya no muestra los pines que están ocupados.

Si eliges **ArduinoUno + Imagina TdR STEAM** es muy cómoda la programación y se evitan muchos errores.

Si eliges **ArduinoUno** utilizas un entorno de programación como si la placa Imagina TdR STEAM no existiera y los alumnos se acostumbran a usar los elementos propios de Arduino, los pines, etc.... pero tienen que saber en cada momento qué pin utilizar. Aconsejamos en este caso que los alumnos tengan impresa la página [Componentes de la placa TdR STEAM](https://libros.catedu.es/books/arduino-en-el-aula/page/componentes-de-la-placa-imagina-tdr-steam).

En los apuntes de este libro vamos a utilizar el proyecto indistintamente las dos formas de trabajar. {{@5685}} # Retos # Reto A01. El led {{@6256}} {{@6242}} # Reto A02. El led RGB {{@6256}} {{@6243}} # Reto A03. El pulsador {{@6256}} {{@6245}} # Reto A04. El potenciómetro {{@6256}} {{@6246}} # Reto A05. El zumbador {{@6256}} {{@6244}} # Reto A06. La fotocélula LDR {{@6256}} {{@6247}} # Reto A07 Sensor de temperatura LM35D {{@6256}} {{@6248}} # Reto A08 Sensor de temperatura y humedad DHT11 {{@6256}} {{@6249}} # Reto A09. Receptor de infrarrojos IR {{@6256}} {{@6250}} # Reto A10 Puertos I2C: La pantalla LCD. {{@6256}} {{@6251}} # Reto A11. Serial plotter {{@6256}} {{@6252}} # Reto A12. El micrófono

*El siguiente reto está extraído del **LIBRO ACTIVIDADES CON IMAGINA TR STEAM Y ARDUINOBLOCKS VERSION 4.0** Descarga en : [Repositorio original en Dropbox](https://www.dropbox.com/s/22f9daonooz0mha/Manual%20Actividades%20Imagina%20TdR%20STEAM%20versi%C3%B3n%204.pdf?dl=0) [Repositorio alternativo Drive](https://drive.google.com/drive/folders/1erRa6WcJyuJWFtIMEfDjqM-QeDBxsNjx?usp=sharing) Concretamente de la página 89 capítulo 7.11.1* *Elaborado por el equipo de Innova Didáctic Robolot Team **LICENCIA CC- BY NC ND** [Permiso](https://libros.catedu.es/books/documentacion-catedu/page/permisos-contenidos)*

Vamos a realizar un pequeño programa en el que veamos por el puerto serie el nivel de sonido. Se puede utilizar cualquiera de los dos bloques de ejemplo. [![2023-02-03 11_56_38-Manual Actividades Imagina TdR STEAM versión 4 - PDF-XChange Viewer.jpg](https://libros.catedu.es/uploads/images/gallery/2023-02/scaled-1680-/2023-02-03-11-56-38-manual-actividades-imagina-tdr-steam-version-4-pdf-xchange-viewer.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-02/2023-02-03-11-56-38-manual-actividades-imagina-tdr-steam-version-4-pdf-xchange-viewer.jpg) También se pueden mostrar los datos por la pantalla LCD. En este programa vamos a hacer dos ciclos uno de 0 a 255 en el que iremos regulando la intensidad del led y viendo el valor. Después mostramos el nivel de sonido. Después haremos lo mismo pero el ciclo a la inversa, de 255 a 0 y regulando el nivel de iluminación del led a la inversa. Después volvemos a mostrar el nivel del micrófono. [![micro2.jpg](https://libros.catedu.es/uploads/images/gallery/2023-02/scaled-1680-/micro2.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-02/micro2.jpg)

Actividad de ampliación: modifica el programa para que muestre los datos tanto por la pantalla LCD como por el puerto serie.

# Descarga otros retos En la página de ArduinoBlocks [http://www.arduinoblocks.com/](http://www.arduinoblocks.com/) en **Recursos - Libros&Documentación** tenemos la descarga de las actividades a realizar con los alumnos del kit **Imagina TdR STEAM** [![retosTdRSteam.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/retostdrsteam.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/retostdrsteam.png) Esta documentación está preparada para trabajar con los alumnos. Recomendamos utilizarla menos la parte de comunicaciones IoT Wifi y Bluetooth que lo explicaremos aparte. Son documentos muy vivos por lo tanto es conveniente fijarse en la última fecha y en la última versión. Tenemos varios documentos, parecidos y en la siguiente página comentamos las diferencias. {{@5685}} # Comentarios de las descargas de otros retos #### **LIBRO ACTIVIDADES CON IMAGINA TR STEAM Y ARDUINOBLOCKS VERSION 4.0** Descarga en : - [Repositorio original en Dropbox](https://www.dropbox.com/s/22f9daonooz0mha/Manual%20Actividades%20Imagina%20TdR%20STEAM%20versi%C3%B3n%204.pdf?dl=0) - [Repositorio alternativo Drive](https://drive.google.com/drive/folders/1erRa6WcJyuJWFtIMEfDjqM-QeDBxsNjx?usp=sharing) [![retosTdRSteam3.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/retostdrsteam3.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/retostdrsteam3.png) - **1 Reto A01. El led.** - 1.1 Reto A01.1. ON/OFF led rojo. . - 1.2 Reto A01.2. ON/OFF led rojo y azul. - 1.3 Reto A01.3. ON/OFF led rojo y azul con repeticiones. - **2 Reto A02. El led RGB.** - 2.1 Reto A02.1. Identificación de colores RGB. - 2.2 Reto A02.2. Múltiples colores con el led RGB. . - 2.3 Reto A02.3. Control de intensidad del led RGB. . - 2.4 Reto A02.4. Regulación de la intensidad del led RGB. . - 2.5 Reto A02.5. Más control de la intensidad del led RGB. - **3 Reto A03. El zumbador. .** - 3.1 Reto A03.1. Primeros sonidos con el zumbador. - 3.2 Reto A03.2. Escalas musicales con el zumbador. - 3.3 Reto A03.3. Notas musicales con el zumbador. . - 3.4 Reto A03.4. Melodías con RTTTL. . - **4 Reto A04. El pulsador. .** - 4.1 Reto A04.1. Control ON/OFF de un led con un pulsador I. . - 4.2 Reto A04.2. Control ON/OFF de un led con un pulsador II. - 4.3 Reto A04.3. Control ON/OFF de un led con un pulsador III. . - **5 Reto A05. El potenciómetro** - 5.1 Reto A05.1. Lectura de valores con el puerto serie. . - 5.2 Reto A05.2. Ajuste de valores de entrada y salida: mapear. . - 5.3 Reto A05.3. Control del led RGB con el potenciómetro. . - **6 Reto A06. La fotocélula (LDR – sensor de luz).** - 6.1 Reto A06.1. Encender y apagar un led según el nivel de luz. - **7 Reto A0 Sensor de temperatura LM35D.** - 7.1 Reto A01. Lectura del valor de la temperatura. - 7.2 Reto A02. Alarma por exceso de temperatura. - **8 Reto A0 Sensor de temperatura y humedad DHT11.** - 8.1 A01. Zona de confort con DHT11. . - **9 Reto A09. Receptor de infrarrojos (IR).** - 9.1 Reto A09.1. Recepción de comandos por infrarrojos. - **10 Reto A10. Puertos de expansión I2C: pantalla LCD.** - 10.1 A10.1. Pantalla LCD 16x2. . - **11 Reto A11. El micrófono. .** - 11.1 Reto A11.1. Nivel de sonido con el micrófono. . - **12 Reto A12. Termohigrómetro.** Actividades de ampliación con Imagina TDR STEAM. - **Puerto serie** - 1.1 Reto A13.1. Serial plotter. - 1.2 Reto A14.1. Serial plotter con varios sensores. - **Sistemas de comunicaciones: Bluetooth y Wifi. .** - 1 Reto A15.1. Módulo Bluetooth. . - 1.1 Reto A15.1.1. AppInventor2. - 1.2 Reto A15.1.2. ArduinoBlocks. - 1.3 Reto A15.1.3. Programación avanzada con Bluetooth. - 2 Reto A16.2. Módulo Wifi. - 2.1 Reto A16.2.1. ThingSpeak. - 2.2 Reto A16.2.2. ArduinoBlocks. - 2.3 Reto A16.2.3. ThingView. - Proyectos con la placa Imagina TDR STEAM. 134 #### **Nuestra opinión** **LIBRO ACTIVIDADES CON IMAGINA TR STEAM Y ARDUINOBLOCKS VERSION 4.0** Consideramos que es el documento más completo, trabaja tanto la pantalla I2C LCD, el módulo micrófono y luego actividades de ampliación. La parte de sistemas de telecomunicación **Bluetooth y Wifi** lo trataremos aparte en este curso pues la parte de Bluetooth trabaja la pantalla OLED y módulo acelerómetro que no se suministra, y la parte de Wifi no trabaja Adafruits ni Blynk. #### **Aconsejamos** pues Trabajar con los alumnos las actividades **desde la A01 hasta la A14** de este LIBRO ACTIVIDADES CON IMAGINA TR STEAM Y ARDUINOBLOCKS VERSION 4.0. #### **LIBRO RETOS VERSION 1** Descarga en de retos [https://drive.google.com/file/d/1uQdLDhT1UigSFbHkFH5BH\_9cO4BrDj-S/view](https://drive.google.com/file/d/1uQdLDhT1UigSFbHkFH5BH_9cO4BrDj-S/view) [![retosTdRSteam1.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/retostdrsteam1.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/retostdrsteam1.png) - **1 Reto A01. El led.** - 1.1 Reto A01.1. ON/OFF led rojo. - 1.2 Reto A01.2. ON/OFF led rojo y azul. - 1.3 Reto A01.3. ON/OFF led rojo y azul con repeticiones. - **2 Reto A02. El led RGB.** - 2.1 Reto A02.1. Identificación de colores RGB. - 2.2 Reto A02.2. Múltiples colores con el led RGB. . - **3 Reto A03. El zumbador. .** - 3.1 Reto A03.1. Primeros sonidos con el zumbador. - 3.2 Reto A03.2. Escalas musicales con el zumbador. - 3.3 Reto A03.3. Melodías con RTTTL. . - **4 Reto A04. El pulsador. .** - 4.1 Reto A04.1. Control ON/OFF de un led con un pulsador I. . - 4.2 Reto A04.2. Control ON/OFF de un led con un pulsador II. - 4.3 Reto A04.3. Control ON/OFF de un led con un pulsador III. . - **5 Reto A05. El potenciómetro** - 5.1 Reto A05.1. Lectura de valores con el puerto serie. . - 5.2 Reto A05.2. Ajuste de valores de entrada y salida: mapear. - 5.3 Reto A05.3. Control del led RGB con el potenciómetro. . - **6 Reto A06. La fotocélula (LDR – sensor de luz).** - 6.1 Reto A06.1. Encender y apagar un led según el nivel de luz. - **7 Reto A0 Sensor de temperatura LM35D.** - 7.1 Reto A01. Lectura del valor de la temperatura. - 7.2 Reto A02. Alarma por exceso de temperatura. - **8 Reto A08. Sensor de temperatura y humedad DHT11.** - 8.1 A08.1. Zona de confort con DHT11. . - **9 Reto A09. Receptor de infrarrojos (IR).** - 9.1 Reto A09.1. Recepción de comandos por infrarrojos. . - **10 Reto A10. Puertos de expansión I2C: pantalla LCD.** - 10.1 Reto A10.1. Pantalla LCD 16x2. - 10.2 Reto A10.2. La pantalla OLED. - **11 Reto A11.1. Serial plotter.** - **12 Sistemas de comunicaciones: Bluetooth y Wifi. .** - 12.1 Reto A12.1. Módulo Bluetooth. - 12.1.1 Reto A12.1.1. AppInventor2. - 12.1.2 Reto A12.1.2. ArduinoBlocks. - 12.2 Reto A12.2. Módulo Wifi. . - 12.2.1 Reto A12.2.1. ThingSpeak. - 12.2.2 Reto A12.2.2. ArduinoBlocks. - 12.2.3 Reto A12.2.3. ThingView. - **8 Proyectos con la placa Imagina TDR STEAM.** #### **Nuestra opinión LIBRO RETOS** Trabaja la pantalla I2C LCD pero no el módulo micrófono. Luego trabaja la pantalla OLED que no se suministra en el kit. La parte de sistemas de comunicación opinamos igual que en el anterior libro #### **LIBRO ACTIVIDADES Y RETOS** Descarga del libro de Actividades y retos [https://drive.google.com/file/d/1d0E5d3q5bRT2IFGZSeYi0npw4KE6XMtY/view](https://drive.google.com/file/d/1d0E5d3q5bRT2IFGZSeYi0npw4KE6XMtY/view) [![retosTdRSteam2.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/retostdrsteam2.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/retostdrsteam2.png) - **A01. – El LED** - A01.1.– On/OFF del LED Rojo (Pin 12) - A01.2.– On/OFF del LED Rojo y Azul (Pin 12 y 13) - A01.3.– On/OFF del LED Rojo y Azul (Pin 12 y 13). - **A02. – El LED RGB PINes (D6-D9-D10)** - A02.1.– Identificación de colores y Pines LED RGB - A02.2.– Múltiples colores con el LED RBG. - A02.3.– Control PWM del LED RBG I. - A02.4.– Control PWM del LED RBG II. - A02.5.– Control PWM del LED RBG III. - **A03. – Generar notas con el Buzzer o Zumbador.** - A03.1.– Primeros sonidos con el Buzzer. A03.2.– Escala musical I. . - A03.3.– Escala musical II. . - A03.4.– Melodias RTTTL - **A04. – Sensor pulsador.** - A04.1.– ON/OFF LED con Pulsador. - A04.2.– ON/OFF LED con Pulsador I. - A04.3.– ON/OFF LED con Pulsador II. . - **A05. – Potenciómetro** - A05.1.– Lectura valor Potenciómetro por el Puerto Serie. - A05.2.– Uso del bloque MAPEAR y el Potenciómetro. - A05.3.– Control del LED RGB con el Potenciómetro. - **A06. – Lectura del valor de la fotocélula (LDR).** - A06.1.– On/Off de LED según el nivel de luz. - **A07. – Medición de temperatura de una habitación.** - A07.1.– Lectura del valor de la temperatura. - A07.2.– Alarma por exceso de temperatura. - **A08. – Temperatura y Humedad. Sensor DHT11** - A08.1.– Confort higrométrico con DHT11. - **A09. – Receptor IR. .** - A09.1.– Test de receptor IR. - **A10. – Puertos de expansión.** #### **Nuestra opinión LIBRO RETOS** No trabaja la pantalla I2C LCD ni el módulo micrófono ni la parte de comunicaciones. {{@5685}} # Bluetooth # Un poco de teoría Bluetooth {{@7221}} {{@5685}} # Conexión del módulo Bluetooth ##### **Módulo Bluetooth HC-06 SLAVE** El [módulo Bluetoth HC-06](https://shop.innovadidactic.com/es/3dbot-robotica-con-arduino-o-scratch/55-modulo-bluetooth-hc-06.html) tiene 4 pines, funciona SLAVE o sea, esclavo.

Si quieres saber más de este módulo, [consulta esta página de Arduino con código](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/modulo-hc-06)

*![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-k88skcpf.png)* ##### **Módulo Bluetooth HC-05 MASTER-SLAVE** Un [módulo HC-05](https://shop.innovadidactic.com/es/standard-perifericos/964-keyestudio-modulo-bluetooth-4-0-v3-hm-10-compatible-con-hc-06.html) tiene en cambio 6 pines y puede funcionar en dos modos MASTER o SLAVE [![HC05-capado.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/hc05-capado.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/hc05-capado.png)

{{@7226#bkmrk-vamos-a-hacer-una-es}}

##### **En nuestro caso** El módulo que se facilita en el kit está fabricado por la empresa KEYSTUDIO, tiene 4 pines por lo tanto es un ... HC-06.

Comparte este módulo las líneas de datos D0 y D1 utilizados en la comunicación serie COM !!! 😮😮😮 no podemos a la vez tener el HC06 y comunicarnos con el Arduino con el ordenador.

Existe un interruptor para desconectar el módulo bluetooth cuando conectamos el Arduino al ordenador por el puerto serie COM, pero a nuestro criterio crea confusión. Recomendamos pues **NO TOCAR ESTE INTERRUPTOR, DEJARLO SIEMPRE EN ON** es decir, el interruptor **siempre hacia el borde** como en la figura, y simplemente conectar el HC06 cuando se utilice, y desconectarlo cuando queremos subir un programa al Arduino [![interruptorHC06.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/interruptorhc06.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/interruptorhc06.jpg) ### **Resumiendo** Nuestro consejo es :

**CUANDO ESTAMOS SUBIENDO UN PROGRAMA DEL ORDENADOR AL ARDUINO :**

[![conexion1-hc06.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/conexion1-hc06.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/conexion1-hc06.jpg)

**CUANDO ESTAMOS USANDO EL BLUETOOTH**

[![conexion2-hc06.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/conexion2-hc06.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/conexion2-hc06.jpg) **No se toca el interruptor, siempre en posición ON** (pestaña al borde de la placa)

Si el HC-06 ESTÁ CONECTADO NO SE PUEDE COMUNICAR CON EL ORDENADOR

Esto no es nuevo en los cursos de Arduino, en el curso Arduino con código también hay que tener esa precaución [https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/modulo-hc-06](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/modulo-hc-06) {{@5685}} # APP -> TDR-STEAM - Programa en ArduinoBlocks Este caso es sencillo pues el módulo Bluetooth trabaja como esclavo Si recibe datos, que almacene en una variable tipo texto que le llamaremos **codigo** el código que recibe de nuestra APP hasta el salto de línea - Si recibe una **A** que encienda el led **azul** y apague el rojo - Si recibe una **R** que encienda el led **rojo** y apague el azul [![programaArduinoblocksBluetooth1.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/programaarduinoblocksbluetooth1.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/programaarduinoblocksbluetooth1.jpg) La APP tiene que enviar A y salto de línea o R y salto de línea

ACUÉRDATE DE SUBIRLO A LA PLACA ARDUINO **SIN EL MÓDULO HC06 CONECTADO**

{{@5685}} # APP -> TDR-STEAM - La APP {{@7223}} {{@5685}} # APP -> TDR-STEAM - Resultado 1. Pulsamos en el símbolo de dos flechas circulares arriba a la derecha para vincular al HC06 2. Sale una pantalla para elegir de todos los elementos Bluetooth vinculados cual elegir, elegimos el HC06 3. El HC06 deja de parpadear 4. A jugar !! [![bluetooth.gif](https://libros.catedu.es/uploads/images/gallery/2022-09/bluetooth.gif)](https://libros.catedu.es/uploads/images/gallery/2022-09/bluetooth.gif) Igual podemos hacer con la voz, decimos rojo o azul y se enciende con la voz los leds También en el terminal podemos escribir R (intro) o A (intro) y se apagan o encienden los leds ##### Retos - Utilizar los botones derecha e izquierda para apagar los dos o encender los dos simultáneamente - Utilizar otros comandos para usar el RGB - Que emita un sonido o una música si se pulsan los botones # APP <-> TDR-STEAM - Arduinoblocks En este caso añadiremos más código al bucle, creamos unas variables tipo texto que sean temperatura, humedad y luz y en crearemos texto con los valores de los sensores correspondientes, una vez creado el texto y finalizado con salto de línea '/' enviamos el texto por bluetooth Hacemos una espera de 2 segundos para no saturar a la APP en datos.

¿Un rollo hacerlo? buenoo.. aquí lo tienes [http://www.arduinoblocks.com/web/project/796527](http://www.arduinoblocks.com/web/project/796527)

[![arduinoblocks_1663848936180.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/arduinoblocks-1663848936180.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/arduinoblocks-1663848936180.png)

**ACUERDATE** De quitar el HC-06 para subir este programa al ARDUINO TDR-STEAM

# APP <-> TDR-STEAM - APP INVENTOR- DESIGNER La comunicación con la placa en este caso no es tan sencilla como en el caso anterior, no nos vale las APPs que hay en Google Play que envían un código y en paz, ahora tenemos que tener una APP que si reciben un código que hagan algo. Esto ya es **exclusivo** por lo tanto **hay que programar una APP que cumpla los requisitos. En nuestro caso lo hemos hecho en APP INVENTOR [https://appinventor.mit.edu/](https://appinventor.mit.edu/)**

**NO ES EL OBJETIVO DE ESTE CURSO FORMARTE EN APP INVENTOR** Pero si no conoces el programa, te recomendamos que vayas a estos contenidos que de una manera muy fácil aprenderás a crear programas con APP INVENTOR y exportarlos al móvil [https://libros.catedu.es/books/app-inventor](https://libros.catedu.es/books/app-inventor)

En la parte de DESIGNER [![designer-app-bluetooth.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/designer-app-bluetooth.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/designer-app-bluetooth.jpg) # APP <-> TDR-STEAM - APP INVENTOR- Blocks En la parte de Blocks [![blocks-app-bluetooth.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/blocks-app-bluetooth.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/blocks-app-bluetooth.jpg)

**ATENCIÓN**: A partir de Android 12 hay que dar permisos a la aplicación para que pueda visualizar los dispositivos bluetooth disponibles, para ver la explicación [https://www.youtube.com/watch?v=MNLzS-MOXAg](https://www.youtube.com/watch?v=MNLzS-MOXAg)

Hay que añadir este código: [![nuevocodigo-android12.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/nuevocodigo-android12.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/nuevocodigo-android12.png) Puedes descargarte la APP[ en este enlac](https://drive.google.com/file/d/1FvqTqUgB4Fvw4yuZcKvLG44Gdokr0w8E/view?usp=sharing)e pero tienes que permitir en el móvil instalar APPs desconocidas. Otra forma es en este código QR utilizando la APP de Google Play [MIT AI2 Companion ](https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3)y poner el código *sxbbnv* Aquí tienes los pasos de su realización

El programa lo tienes aquí [https://gallery.appinventor.mit.edu/?galleryid=e4780fa4-3252-4d73-b846-b2a0935c6d01](https://gallery.appinventor.mit.edu/?galleryid=e4780fa4-3252-4d73-b846-b2a0935c6d01)

# Llevar la APP creada en APP INVENTOR al móvil Tienes dos opciones - - **EN VIVO CONNECT - AI COMPANION** esta opción es la más rápida, y realmente lo simula a través de la APP INVENTOR. - Tienes que tener instalada la APP MIT AI2 COMPANION - Se le pasa el código de tu APP a la APP - **CARGAR BUILD- ANDROID APP (.apk)** - Se descarga el fichero apk - Lo llevas a tu móvil pero tiene que permitir instalar APPs de lugares desconocidos #### **OPCIÓN EN VIVO AI COMPANION** Instalas la [APP MIT AI2 COMPANION](https://play.google.com/store/search?q=app+inventor&c=apps) [![APP-MIT.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/app-mit.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/app-mit.png) En APP INVENTOR [![conect-ai-companion.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/conect-ai-companion.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/conect-ai-companion.png) Y sale un código y un QR asociado al código [![cod-ai-companion.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/cod-ai-companion.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/cod-ai-companion.png) Abrimos la [APP MIT AI2 COMPANION](https://play.google.com/store/search?q=app+inventor&c=apps) y metemos el código anterior (o lo escaneamos con el QR) [![ai-companion2.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/ai-companion2.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/ai-companion2.jpg) En APP INVENTOR procede a enviar la APP al móvil y a ejecutarlo #### **OPCIÓN CARGAR BUILD- ANDROID APP (.apk)** En esta opción, descargamos el fichero con extensión apk [![build1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/build1.png) Procede a **compilarlo** [![compiling.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/compiling.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/compiling.png) Y te da dos opciones para descargar el fichero [![build2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/build2.png) Si optas por descargarlo, tienes que buscar la manera de llevarlo al móvil (enviándotelo por email a ti mismo, o whatsapp a ti mismo a veces no funciona pues lo bloquean por seguridad) La opción de descargarlo por QR pregunta por abrir el link de descarga [![build3.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build3.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/build3.jpg) Te preguntará permisos para la descarga e instalación de apps de orígenes desconocidos, en mi caso he tenido que permitir los que sean por DuckDuckGo que es el navegador que tengo en el móvil y por donde se ha descargado el enlace anteior[![build4.jpg](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build4.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-12/build4.jpg) Una vez descargado : [![build6.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build6.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/build6.png) Si pulsamos, intenta instalarlo pero vuelve a salir un mensaje de bloqueo que tenemos que dar a **More details - Install anyway** [![build7.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build7.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/build7.png) [![build8.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/build8.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/build8.png) y por fin ya funciona # APP <-> TDR-STEAM- Resultado Una vez creado la APP vamos en APP Inventor a Build para crear el APK. Si no deseas crear la APP en APP INVENTOR, en[ este enlace](https://drive.google.com/drive/folders/1erRa6WcJyuJWFtIMEfDjqM-QeDBxsNjx?usp=sharing) puedes descargar el APK pero ten en cuenta que para instalarlo tienes que permitir orígenes desconocidos, bajo tu responsabilidad [![origenesdesconocidos.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/origenesdesconocidos.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/origenesdesconocidos.png) Si el TDR-STEAM tiene el programa cargado, simplemente abrimos la APP, conectamos con el HC-06 y a jugar ! # IoT-Wifi # ¿Qué es Internet de las cosas IoT? {{@5133}} {{@5685}} # ESP8266 o ESP01 Arduino no tiene wifi, y es importante esto para conseguir hacer prácticas IoT. Hay shields que permiten una conexión Ethernet o Wifi pero resultan caras. Otra opción es utilizar la versión del Arduino MKR1000 pero también resulta cara. Lo mejor es utilizar el ESP8266 para que a través de él nuestro Arduino pueda volcar o recibir datos a través de una Wifi. Resumiendo brevemente, el **ESP8266** es un chip microcontrolador, es decir, no es un sensor, no es un actuador, no es una entrada/salida del Arduino sino que es, igual que el Arduino, es una placa electrónica montado en un módulo que tiene un microcontrolador (Tensilica L106 de 32bits) capaz de hacer cosas pero que tiene una característica importante: **Que tiene Wif**i, pero no lo veas como un módulo Wifi para Arduino, sino como una placa electrónica completa, como el Arduino, incluso es su competencia. El chip **ESP8266** se vende montado en un módulo, el más vendido es el **ESP01** y es el que se proporciona en el kit del curso **Arduinoblocks en el aula** de CATEDU. [![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/)*

Por eso se habla indistintamente ESP8266 o el ESP01

Sus entradas y salidas son comunicaciones por puerto serie que está ocupado en el Arduino con las comunicaciones a nuestro ordenador, esto hay que tenerlo en cuenta en la programación añadiendo un nuevo puerto serie. Arduinoblocks lo hace automáticamente por nosotros. Si quieres saber más de este chip y su zócalo te recomendamos [https://www.luisllamas.es/esp8266/](https://www.luisllamas.es/esp8266/) Su bajo precio y su software libre permitió al mundo maker utilizar este chip. No sólo se puede utilizar para que el Arduino tenga acceso a Internet, sino también se han desarrollado multitud de módulos con el ESP8266, como veremos más adelante, el más interesante en su evolución es el módulo ESP-12E o el ESP32. **Pero sigamos con el ESP8266 montado en el módulo ESP01. Tiene unas pegas...** no se diseñó para montarlo en el Arduino : **PRIMERO** La alimentación es 3V a 3.6V con picos de 200mA por lo que no puede conectarse directamente a la alimentación 3.3V y 50mA de Arduino. **SEGUNDO** Consecuencia del máximo de 3.6V es que las entradas y salidas del ESP8266 no conviene conectarlas directamente a las entradas y salidas del Arduino que van a 5V. En conclusión, NO SE PUEDE CONECTAR DIRECTAMENTE. Verás en Internet muchos tutoriales que conectan el ES01 directamente al Arduino pero a mi personalmente no me ha funcionado ninguno. En conclusión: tenemos que usar una alimentación externa como se aconseja [aquí](https://www.luisllamas.es/arduino-wifi-esp8266-esp01/) o utilizar un **zócalos específico** como el proporcionado en el kit de Arduino en el Aula [del fabricante Keyestudio](https://shop.innovadidactic.com/es/standard-perifericos/866-keyestudio-modulo-esp-01s-wifi-zocalo-para-esp8266.html). [![zocaloESP01.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/zocaloesp01.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/zocaloesp01.png) Fuente [página web del fabricante Keyestudio](https://shop.innovadidactic.com/es/standard-perifericos/866-keyestudio-modulo-esp-01s-wifi-zocalo-para-esp8266.html)

**NUESTRO CONSEJO**

Si piensas trabajar con Internet y el Arduino, es mejor usar otras placas que puedan usar el lenguaje IDE de Arduino, pero que tengan integrada una versión del ESP8266 con un módulo adaptado a su integración - **NodeMCU** que utiliza el módulo **El ESP-12E** y se ha utiliza en el curso **[ROVER MARCIANO CON ARDUINO](https://libros.catedu.es/books/rover-marciano-con-arduinoblocks-e-internet-de-las-cosas-iot).** [![esp12e.png](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/esp12e.png)](https://libros.catedu.es/uploads/images/gallery/2022-12/esp12e.png) *Módulo ESP-12E Fuente Luis Llamas CC-BY-NC-SA [ver](https://www.luisllamas.es/pinout-esp8266-esp12e/)* - **ESP32 en el Aula** que utiliza la placa ESP32 de Innovadidactic y es un serio competidor al Arduino: Más barato y más potente y se utiliza en el curso [**ESP32 EN EL AULA**](https://libros.catedu.es/y%20se%20ha%20utiliza%20en%20el%20curso%20ROVER%20MARCIANO%20CON%20ARDUINO) *[![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)* *Módulo ESP32 Fuente Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/esp32/](https://www.luisllamas.es/esp32/)* - **ARDUINO UNO R4 WIFI** lanzado en junio23 integra un ESP32 dentro del Arduino para obtener la Wifi, curioso, metes a tu competidor dentro: *si no puedes con tu enemigo...* ¿lo veis en la foto? Incorpora Bluetooth y una matriz de leds *[![2023-11-24 11_53_38-Window.jpg](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/2023-11-24-11-53-38-window.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-11/2023-11-24-11-53-38-window.jpg) Arduino UNO R4 Wifi Fuente Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/arduino-uno-r4-minima-wifi/](https://www.luisllamas.es/arduino-uno-r4-minima-wifi/)* *{{@5685}}* # Conexión ESP8266 Vamos a conectar el ESP8266 con nuestro KIT TDR STEAM IMAGINA. Si no tuvieras la shield TDR STEAM tienes que conectarlo directamente en el Arduino,[ en esta página ](https://gerdslab.com/arduino-blocks-esp8266-adafruit-io/)tienes un esquema de cómo se hace. En primer lugar **insertamos el ESP8266 con el zócalo** que nos facilitará la conexión al Arduino tal y como hemos visto anteriormente. Luego utilizamos **el cable de 3 hilos** que proporciona el Kit al zócalo del ESP8266 de tal forma que : - Cable negro a GND - Cable rojo a Vcc - Cable azul a TX del zócalo ESP8266 El otro extremo del cable de 3 hilos a la Shield TDR Imagina, tenemos dos posibilidades, lo conectaremos al slot del D3 Luego utilizaremos **un cable extra: Dupont Hembra - Hembra** (en la foto de color marrón) que lo conectaremos un extremo al RX del zócalo ESP8266 y el otro extremos al D5. De esta manera tenemos alimentado el zócalo ESP8266 y - RX a D5 - TX a D3 [![conexionwifi.jpg](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/conexionwifi.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-01/conexionwifi.jpg) Otra posibilidad es al revés, utilizar el otro slot D5 en el cable de tres hilos y conectar el Dupont H-H al D3 pero en este libro utilizaremos el criterio expuesto por elegir uno. {{@5685}} # Comprobar que el ESP8266 está a 9600 baudios por defecto Tal y como se aconseja **[aquí](https://gerdslab.com/arduino-blocks-esp8266-adafruit-io/),** el ESP8266 permite trabajar la wifi a velocidades de 9600 a 115200 baudios pero para evitar problemas se aconseja bajar a 9660. Esta comprobación no es necesario hacerlo siempre, con una sola vez es suficiente, el ESP8266 se queda grabado a esa velocidad. #### **Comunicarnos con el ESP8266** El ESP8266 se comunica con nuestro Arduino por un puerto serie. Nosotros ya utilizamos un puerto serie en el Arduino, el que nos permite la comunicación de Arduino con nuestro ordenador por el puerto COM de nuestro ordenador y por D0 y D1 de nuestro Arduino. Con la librería **SoftwareSerial.h** es posible crear otro puerto serie adicional. Luego vamos a grabar este código extraído de [https://docs.arduino.cc/tutorials/communication/SoftwareSerialExample](https://docs.arduino.cc/tutorials/communication/SoftwareSerialExample) y nos permitirá una vez creado el puerto serie adicional, comunicarnos con él Tenemos que: 1. descargar el programa Arduino IDE de [https://www.arduino.cc/en/software](https://www.arduino.cc/en/software) 2. Instalarlo y ejecutarlo 3. seleccionar la placa Arduino Uno 4. seleccionar el puerto donde está conectado Para estos 4 pasos, te recomendamos que vea [esta página.](https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/entorno-de-programacion-por-codigo) Pega este código ```Arduino #include SoftwareSerial mySerial(3, 5); // Esto crea un nuevo puerto serie en RX, TX en los pines 3 y 5 void setup() { Serial.begin(9600); // pone la velocidad a 9600 baudios DEL PUERTO SERIE COM no el que vamos a crear nuevo Serial.println("Cónsola serie. Teclear el comando AT en la línea de arriba y pulsa Enviar... a ver si sale OK"); // set the data rate for the SoftwareSerial port mySerial.begin(9600); //esto fija a 9600 la comunicación entre ESP01 y tu ordenador, no la velocidad wifi del ESP01 } void loop() { // run over and over if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } } ``` Y lo subimos al Arduino [![embedded-image-efNB2aaU.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-efnb2aau.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-efnb2aau.jpeg)

Este programa **NO NOS HA CONFIGURADO EL ESP8266 A 9600 BAUDIOS** simplemente este programa nos permite comunicarnos con el ESP8266 por la consola serie

Luego abrimos la monitorización del puerto serie: [![monitorserieArduinoide.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/monitorseriearduinoide.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/monitorseriearduinoide.png) Y nos sale esta pantalla, una zona de entrada de comandos hacia el Arduino y la zona de respuesta del Arduino:

Asegúrate que tienes la comunicación a **9600 baudios**

[![monitorserieArduinoide2.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/monitorseriearduinoide2.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/monitorseriearduinoide2.png) Apretamos el botón reset del ESP8266 [![reset8266.jpg](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/reset8266.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-01/reset8266.jpg) Si en el monitor serie aparece al final la palabra **ready** es que la comunicación con el ESP8266 se realiza sin problemas [![ready8266.jpg](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/ready8266.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-01/ready8266.jpg) Si no sale la palabra **ready** tendrás que configurarlo a 9600 con los comandos AT: ##### **Configurando a 9600** Si no te sale la palabra **ready**, carga este programa que ejecuta la instrucción **AT+UART\_DEF=9600,8,1,0,0** para configurar tu ESP8266 a 9600 baudios ``` #include SoftwareSerial mySerial(3, 5); // Esto crea un nuevo puerto serie en RX, TX en los pines 3 y 5 void setup() { Serial.begin(9600); // pone la velocidad a 9600 baudios DEL PUERTO SERIE COM no el que vamos a crear nuevo Serial.println("Cónsola serie. Teclear el comando AT en la línea de arriba y pulsa Enviar... a ver si sale OK"); // set the data rate for the SoftwareSerial port mySerial.begin(9600); //esto fija a 9600 la comunicación entre ESP01 y tu ordenador, no la velocidad wifi del ESP01 delay(1000); Serial.print("Modo 3 ....\n"); mySerial.write("AT+CWMODE=3\r\n"); delay (1000); mySerial.write("AT+RST\r\n"); delay (1000); Serial.print("Configurando a 9600 baudios ....\n"); mySerial.write("AT+UART_DEF=9600,8,1,0,0\r\n"); delay (1000); mySerial.write("AT+RST\r\n"); delay (1000); } void loop() { // run over and over if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } } ``` Te tiene que salir algo así: [![salidaESP.jpg](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/salidaesp.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-01/salidaesp.jpg) #### **Experimenta con los comandos AT** Los comandos AT son simplemente instrucciones de texto que se envían por el puerto serie, En este caso utilizando Arduino y el puerto creado con SoftwareSerial.h como intermediarios entre tu ordenador y el ESP8266. OJO, los comandos AT necesitan que terminen con los caracteres **nueva línea** y **carry return** para eso, tienes que tener activo que se envían estos caracteres en esta lista desplegable de la ventana del monitor serie [![NR-NL-8266.jpg](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/nr-nl-8266.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-01/nr-nl-8266.jpg) Teclea **AT** y pulsa **Enviar**, te tiene que salir OK esto significa que hay comunicación con el ESP8266 con los comandos AT [![monitorserieArduinoide3.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/monitorseriearduinoide3.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/monitorseriearduinoide3.png)

Verás en Internet programas específicos en Arduino IDE para ejecutar los comandos AT. NO ES NECESARIO como ves se puede hacer desde la consola del monitor serie. Pero en el Arduino tiene que estar el programa cargado de crear el nuevo puerto y de visualizar los comandos.

Ponlo en modo normal 3 = station+softAp es la más versátil **AT+CWMODE=3** Luego reinicialo o con el botón de reset o con el comando **AT+RST** Teclea **AT+CWLAP** y verás las wifis disponibles **[![monitorserieArduinoide4.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/monitorseriearduinoide4.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/monitorseriearduinoide4.png)** La instrucción **AT+UART\_DEF=9600,8,1,0,0** configura tu ESP8266 a 9600 baudios [![monitorserieArduinoide5.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/monitorseriearduinoide5.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/monitorseriearduinoide5.png) Conectarse a una red wifi concreta **AT+CWSAP="ssid","password",3,0** Ver la IP del 8266 **AT+CIFSR** Para saber más comandos AT [visita esta página de Luis Llamas ](https://www.luisllamas.es/arduino-wifi-esp8266-esp01/) #### **Mentirijillas** He dicho que esto sólo se hace una sóla vez, que no es necesario hacerlo en la programación habitual con ESP8266 añadir puertos serie. Es una mentirijilla. Realmente siempre hay que usar el **SoftwareSerial.h** y crear un nuevo puerto con **SoftwareSerial mySerial(3, 5)** para poder manejar el ESP8266, pero esto **lo hace Arduinoblocks por nosotros** de forma transparente. Cuando ponemos en Arduinoblocks la instrucción para conectarnos a la wifi con el ESP8266 : [![bloquearduinoblockswifi.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/bloquearduinoblockswifi.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/bloquearduinoblockswifi.png) Si vemos en el código, ya pone estas instrucciones : > **\#include <SoftwareSerial.h>** > \#include "ABlocksIOTMQTTESP8266.h" > > String s\_LED\_TXT; > boolean b\_conectado; > const char mqtt\_broker\[\]="io.adafruit.com"; > const int mqtt\_port=1883; > const char mqtt\_user\[\]="......."; > const char mqtt\_pass\[\]="....."; > const char mqtt\_clientid\[\]="cualquiercosa"; > const char mqtt\_wifi\_ssid\[\]="..."; > const char mqtt\_wifi\_pass\[\]="......"; > **SoftwareSerial mqtt\_esp8266\_serial(3,5);** > ESP8266 mqtt\_esp8266\_wifi(&mqtt\_esp8266\_serial); > > etc.... {{@5685}} # IoT-Wifi-MQTT # MQTT MQTT es un protocolo dentro de los protocolos entre máquina a máquina M2M. MQ significa Message Queue, son mensajes que se publican y otros se suscriben. Llegan a un servidor que también se llama **Broker** o Router, los va almacenando en una cola y se eliminan cuando son entregados. Un ejemplo fácil de entender son los mensajes SMS, que mientras no estas conectado, tus mensajes están en un servidor, y cuando te conectas, se descargan tus mensajes en tu móvil. Las últimas siglas TT significa Telemetry Transport [![protocolos-rRPC.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/protocolos-rrpc.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/protocolos-rrpc.png) Fuente Luis Llamas CC-NC-BY-SA [https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/](https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/) > *Los clientes inician una conexión TCP/IP con el broker, el cual mantiene un registro de los clientes conectados. Esta conexión se mantiene abierta hasta que el cliente la finaliza. Por defecto, MQTT emplea el puerto 1883 y el 8883 cuando funciona sobre TLS.* *Fuente Luis Llamas CC-NC-BY-SA [https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/](https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/)* TCP/IP son los protocolos de comunicación en Internet. TLS Transport Layer Security es un protocolo que se añade para asegurar la privacidad y seguridad de los datos. Por eso hay que enviar un usuario y una contraseña para conseguir esta seguridad. En los mensajes, se añade un texto que haga de filtro, que se llama **topic**, este topic permite al broker filtrar de todos los mensajes que se reciben a qué clientes hay que entregar estos mensajes. Estos topic suelen estar jerarquizados, por ejemplo Casa/Cocina/Temperatura y un cliente puede estar suscrito a Casa/+/Temperatura por lo que recibiría los datos de Casa/Cocina/Temperatura pero también los de Casa/Salon/Temperatura, etc... Si quieres saber más de los tópic te recomendamos la página [https://www.luisllamas.es/que-son-y-como-usar-los-topics-en-mqtt-correctamente/](https://www.luisllamas.es/que-son-y-como-usar-los-topics-en-mqtt-correctamente/) El MQTT se ha hecho muy popular en los dispositivos electrónicos, porque: - Es **libre**, al principio en 1999 era un protocolo propietario y se usaba para la industria petrolera, pero desde el 2010 se liberó y su consecuente popularidad que se ha convertido en un estándar de comunicación electrónica. - Es **sencillo**, esto es importante para no pedir mucho ancho de banda - Consume **poca potencia**, esto es importante pues la mayoría están conectados todo el tiempo. - Un protocolo con una capa de **seguridad**, robusta y largamente testada. Para saber más te recomendamos la página de Luis Llamas [https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/](https://www.luisllamas.es/protocolos-de-comunicacion-para-iot/) ##### **Y el broker ¿de donde?** Puedes montarte tu propio broker en un ordenador, pues es código abierto, por ejemplo instalar Mosquitto [https://mosquitto.org/](https://mosquitto.org/) en una raspberry. O bien usar brokers MQTT gratuitos y públicos en Internet, con sus limitaciones de anchos de banda o número de conexiones... como HIVEMQ Info: [http://www.mqtt-dashboard.com/](http://www.mqtt-dashboard.com/) con la dirección Broker.hivemq.com o también el propio Mosquito [https://mosquitto.org/](https://mosquitto.org/) con la dirección test.mosquitto.org

Tenemos que tener en cuenta que los servidores MQTT públicos gratuitos no son seguros, cualquiera puede suscribirse a nuestros mensajes y publicar en ellos por lo tanto enviar órdenes. Evitar usar estos brokers en sistemas que no sean educativos y de pruebas.

El protocolo MQTT también se usa en Domótica, por ejemplo[ aquí en el curso de Raspberry apartado domótica](https://libros.catedu.es/books/raspberry-pi/page/43-domotica) {{@5685}} # IoT - Wifi- MQTT - ADAFRUIT Esta compañía de circuitos electrónicos se hizo famosa por sus **LEDS NEOPIXEL** que lo vimos [en el **curso de mClon con nanoArduino**](https://libros.catedu.es/books/mclon-con-nanoarduino/page/37-cableado-extras)**,** dedica parte de su producción a la didáctica y vamos a utilizar l**os servicios MQTT** que ofrece gratuitamente. *(Esto es típico, por ejemplo en los cursos de mBot utilizamos el software mBlock de la compañía Makeblock.)* #### Registro Nos registramos dentro del plan gratuito de su plataforma [https://io.adafruit.com/](https://io.adafruit.com/) [![ada1.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada1.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada1.png) El registro es típico, pidiendo un nombre de usuario, una contraseña y un correo electrónico para recuperar la contraseña.

Utiliza un nombre de usuario lo más sencillo posible, pero a la vez original, pues se convertirá parte de la URL del resto de acciones que vas a realizar.

{{@5685}} # IoT-Wifi-MQTT-ADAFRUIT-FEED Vamos primero a definir las variables que vamos a utilizar, o como lo llama ADAFRUIT la "comida" **FEED**, en estos FEED se almacenarán las salidas de nuestro Arduino que utilizaremos el sensor de humedad y temperatura y también se almacenará la entrada para encender un led. Esto lo tenemos que interpretar según el protocolo MQTT que hemos visto, como **colas de mensajes** que el proveedor almacena y el cliente se suscribe. En el caso de los canales de humedad y temperatura, el proveedor será nuestro Arduino y el cliente será un **dashboard** que crearemos dentro de Adafruit. En el caso del led, el proveedor será el dashboard y el cliente será el Arduino. Entramos en feed, creamos un **grupo** que le ponemos un nombre acorde al conjunto de feeds que tendrá (esto es útil si tenemos diferentes placas o el lugar donde están esas placas: cocina, salón, ... y dentro de cada grupo los diferentes sensores y actuadores: temperatura, persianas, luz.... Una vez creado el grupo, procedemos a crear **3 feeds** : hum, temp y led [![ada2.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada2.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada2.png) Como se puede ver, la URL es personalizada con el nombre de usuario, que para mi caso es [https://io.adafruit.com/javierquintana/feeds ](https://io.adafruit.com/javierquintana/feeds)(no intentes entrar, tú no verás nada, yo sí) {{@5685}} # IoT-Wifi-MQTT- ADAFRUIT-Dashboard Ahora vamos a crear un panel, para ello entramos en IO - DASHBOARD y creamos un panel [![ada3.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada3.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada3.png) #### **Editando el Dashboard** Dentro del panel podemos hacerlo público, el mio es este [https://io.adafruit.com/javierquintana/dashboards/panel](https://io.adafruit.com/javierquintana/dashboards/panel) Y podemos crear los bloques que nosotros utilizaremos los de tipo gauge y tipo switch (marcados en la figura) [![ada4.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada4.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada4.png) [![ada5.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada5.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada5.png) Cada vez que creas un bloque, pide a qué **feed** lo asocias : [![ada6.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada6.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada6.png) Los bloques puedes definir que sean **públicos**: [![ada7.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada7.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada7.png)[![ada8.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada8.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada8.png) #### **Bloques de los sensores de visualización (El Arduino como proveedor, el Dashboard como cliente)** Vamos a crear dos bloques: - **Humedad** tipo de bloque **gauge** asociado al feed **hum** - **Temperatura** tipo de bloque **gauge** asociado al feed **temp** Y pondremos las propiedades de los bloques HUMEDAD Y TEMPERATURA acordes a las características de los sensores: [![ada-hum.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada-hum.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada-hum.png) [![ada-temp.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada-temp.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada-temp.png) #### **Bloques de acción (El Arduino como cliente, el Dashboard como proveedor)** Ahora vamos a crear un **bloque LED AZUL** tipo **switch** asociado al feed **led** Definimos en las propiedades de este bloque que vamos a enviar: - Cuando está OFF vamos a enviar la palabra "**apagado**" - Cuando esta ON vamos a enviar la palabra "**encendido**" [![ada-led.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada-led.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada-led.png)

Los bloques de acción si los haces públicos **se pueden ver pero no se pueden tocar**, para que gente no autorizada actúen sobre las placas. Por eso en [https://io.adafruit.com/javierquintana/dashboards/panel](https://io.adafruit.com/javierquintana/dashboards/panel) NO PUEDES ACCIONARLO

{{@5685}} # IoT-Wifi-MQTT-ADAFRUIT-ARDUINOBLOCKS En ARDUINOBLOCKS seleccionamos Comunicaciones -IoT.MQTT y el bloque de Iniciar ESP01 [![ada11.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada11.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada11.png) Con estos datos: - Definir RX al pin D5 y TX al pin D3 a 9600 baudios como lo hemos visto anteriormente - El nombre de nuestra red wifi y su contraseña - El broker será el servidor de **adafruit io.adafruit.com** - El puerto, será el **1883** tal y como hemos visto anteriormente - Como cliente ID puedes poner cualquier cosa - Usuario : el usuario de nombre de usuario de adafruit, que en mi caso es javierquintana - La clave lo tienes aquí [![ada9.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada9.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada9.png) Así tiene que quedar: [![bloquearduinoblockswifi.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/bloquearduinoblockswifi.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/bloquearduinoblockswifi.png) El programa buble hacemos: - Creamos un buble que se ejecute cada 10 segundos, luego explicamos el por qué. - Leemos el sensor de humedad y temperatura y lo almacenamos en una variable tipo numérica **Hum** y **Temp** - Las variables Hum y Temp las **publicamos** en el tema asociado a tu usuario y a tu feed - Creamos **una variable texto LED-TXT** - Nos **suscribimos** al feed led y lo almacenamos en la varieble texto creada - Si la variable texto tiene la palabra encendido pues encendemos el led, apagamos en caso contrario [![ada12.png](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/ada12.png)](https://libros.catedu.es/uploads/images/gallery/2022-08/ada12.png) Lo grabamos en el Arduino con la placa TDR-STEAM y el ESP01 conectado como hemos definido anteriormente y si entramos en nuestro panel, veremos que visualiza la temperatura y humedad de ese momento. Si tenemos un poco de paciencia, pues sólo nos hace caso cada 10 segundos, actuamos sobre el switch y vemos que enciende o apaga el led. #### **¿Por qué cada 10 segundos?** Si entramos en nuestro perfil contratado, el plan gratuito permite **sólo 30 datos por minuto**, si **no tocamos** el switch de encender el led, podríamos bajar esos 10 segundos a 4 segundos pues 2 gauges temperatura y humedad \* (60/4) = 30 datos por minuto pero en el momento que toquemos el switch te penalizará a esperarte pues te has pasado de 30 datos por minuto. Para poder accionar sobre el switch, subimos esos 4 segundos a 10, esto nos da 2 gauges temperatura y humedad \* (60/10) = 12 datos por minuto, luego podemos accionar el switch 30-12=18 veces por minuto. Puedes bajar de 10 pero cuanto más bajes, menos puedes tocar el switch, tú mismo. {{@5685}} # IoT-Wifi-Blynk # ¿Qué es Blynk? {{@6255}} {{@5685}} # Blynk legacy y Blynk IoT {{@7053}} {{@5685}} # Conseguir la App BLYNK LEGACY {{@7054}} {{@5685}} # Servidor local Blynk {{@5143}} {{@5685}} # Crear cuentas {{@5134}} {{@5685}} # Entrando en el Blynk local: El panel de control {{@5147}} {{@5685}} # En la APP {{@5148}} {{@5685}} # Poner el TOKEN en ARDUINOBLOCKS {{@5149}} {{@5685}} # Primer programa: Encender los pines rojo y verde Vamos a ver un primer programa de la APP al TDR STEAM Una vez dentro del proyecto de la App aparece todo un panel si nada, añadimos controles apretando al + que hay en la parte superior [![embedded-image-e56miHr1.png](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-e56mihr1.png)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-e56mihr1.png) Seleccionamos el botón [![embedded-image-zyPXlzqL.png](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-zypxlzql.png)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-zypxlzql.png) Nos aparece el botón [![embedded-image-2pz1GM5g.png](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-2pz1gm5g.png)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-2pz1gm5g.png) Pulsamos sobre él para entrar en sus propiedades, le decimos que vaya de 0 a 1 (es decir que cuando se apriete, que envíe un 1) que sea tipo **switch** (no pulsador, sino interruptor), le ponemos un color **rojo** para indicar que es el led rojo, y como el TDR-STEAM el led rojo lo tiene en el D12 le decimos que el **pin** es **DIGITAL** y **D12** [![botonrojogadget.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/botonrojogadget.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-09/botonrojogadget.jpeg) Hacemos lo mismo con el **azul** pero **D13** #### **En ARDUINO BLOCKS** En Arduinoblocks dejamos el token tal y como hemos aprendido anteirormente [![embedded-image-ikTcrZO3.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-iktcrzo3.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-iktcrzo3.jpeg) #### ¿Nada más?
**Nada más !!** así de sencillo. Le damos a **subir** (teniendo el programa Arduinoblocks conector minimizado, eso lo podemos ver enseguida pues detecta en que COM está conectado, en la figura sale COM5) [![embedded-image-S8WvZER0.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-s8wvzer0.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-s8wvzer0.jpeg) Vamos a la APP de BLYNK, Pulsamos al botón de **play** ▶ de arriba arriba y vemos el estado NO TIENE QUE APARECER UN PUNTO ROJO si aparece es que nuestra placa no está conectada [![Blink-chivato.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/blink-chivato.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/blink-chivato.png) Hay que tener algo de paciencia hasta que se comunica con la Raspberry, cuando no aparece el punto rojo, pulsamos en los botones y tienen que encenderse y apagarse correctamente los leds rojo y azul de nuestro TDR Steam

**Para usuarios del servidor Blynk de CATEDU y la placa ARDUINO CON ESP32 WIFI** No sabemos por qué pero al darle al Play, el icono de la placa de arriba sale en rojo, como si no estuviera conectado, pero el proyecto funciona perfectamente. Si sabes por qué por favor ponte en contacto con nosotros [https://catedu.es/informacion/](https://catedu.es/informacion/)

[![nose-iconorojoblynk.jpg](https://libros.catedu.es/uploads/images/gallery/2022-12/scaled-1680-/nose-iconorojoblynk.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-12/nose-iconorojoblynk.jpg)
{{@5685}} # Segundo programa RGB y el potenciómetro #### **LED RGB** En la APP de Blynk ponemos el gadget "Cebra" [![zebra1.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/zebra1.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/zebra1.png) Y lo configuramos según sus pines. El led RGB en el TDR Steam está conectado a los siguientes pines - Red D6 - Green D9 - Blue D10 [![zebra2.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/zebra2.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/zebra2.png) #### **Potenciómetro** El potenciómetro está conectado en A0 podemos insertar un gadget Label y lo configuramos como tal: [![potenciometro-appblynk.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/potenciometro-appblynk.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/potenciometro-appblynk.png)

**¿En Arduinoblocks no hay que añadir nada? **Nada !!! cuando son gadgets que leen directamente de los pines (digitales o analógicos) NO HACE FALTA MÁS CÓDIGO que el de conectar el servidor Blynk

[![embedded-image-ikTcrZO3.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-iktcrzo3.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-iktcrzo3.jpeg) {{@5685}} # Tercer programa Medir la luz del LDR Nuestro segundo programa será al revés del TDR Steam a la APP Ahora añadimos otro control **level H** [![levelHgadget.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/levelhgadget.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-09/levelhgadget.jpeg) Elegimos de PIN el analógico, el LDR está conectado al pin analógico A1 y como el LDR aumenta según la *oscuridad* vamos a poner que vaya de 1023 en formato negro. [![propiedadeslevelH.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/propiedadeslevelh.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/propiedadeslevelh.jpg) Sin modificar nada del programa de ARDUINOBLOCKS vamos a darle al PLAY y ¡¡ Y FUNCIONA !!! {{@5685}} # Cuarto programa: Medir Temperatura y Humedad con el DHT11 {{@5138}} {{@5685}} # Quinto programa: Lectura sensor LM35 y receptor infrarrojos Podríamos hacer una lectura de estos sensores, sin necesidad de tratamiento ninguno, tal y como hemos hecho en la lectura de la luz con LDR, simplemente se añade un gadget a la APP de Blynk que : - Lea el pin D11 que es donde está el sensor de infrarrojos - Lea el pin A2 que es donde está el sensor de temperaturas LM35 Los resultados serían totalmente incorrectos !!! - El sensor de infrarrojos lanza un código que al leerlo el pin D11 en la APP aparecería encendidos y apagados sin poder leer qué código es lo que dice - En el sensor de temperaturas, es un sensor conectado al A2 por lo que en la APP mediría desde 0 hasta 1023, y esto no sólo habría que mapearlo a temperaturas, sino tratarlo correctamente pues el LM35 da lecturas de dos decimales. En **Arduinoblocks** tenemos dos bloques específicos para tratar estas lecturas, las llevamos a **pines virtuales** y que los gadgets de la APP visualicen los valores de estos pines virtuales. Otro uso de los pines virtuales. ##### **En Arduinobloks** Ponemos dentro de la función LECTURAS los siguientes dos bloques : [![lecturapinesespecialesarduinoblocks.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/lecturapinesespecialesarduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/lecturapinesespecialesarduinoblocks.jpg) Como vemos, Arduinoblocks procesa la lectura de estos dos sensores, y simplemente se almacenan en los pines virtuales V7 y V8 ##### **En la APP de Blynk** Ponemos para la lectura de la temperatura, un display que visualice el número V7 [![valuedisplayLM35.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/valuedisplaylm35.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/valuedisplaylm35.jpg) Para el sensor de infrarrojos igual pero que visualice V8 [![vauledisplayIR.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/vauledisplayir.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/vauledisplayir.jpg) Lo **subimos** el programa Arduinoblocks al Arduino TDR Steam, pulsamos el **play** en la APP, esperamos a que se conecte y el sensor de temperatura muestra su valor perfectamente

Curiosamente dan unas lecturas algo diferentes el DHT11 y el LM35, el correcto es el LM35 pues el DHT11 no es un sensor muy preciso.

Para ver los códigos que se leen en Infrarrojos, hay que pulsar los números del mando a distancia. {{@5685}} # Sexto programa Leer eventos del TDR Steam Hasta ahora hemos enviado eventos al TDR Steam, y leer sensores del TDR Steam pero .... ¿y leer un evento? por ejemplo leer si se pulsa los pulsadores D2 y D7 #### **En la APP de Blynk** Añadimos un gadget que se llama LED [![led-appblynk.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/led-appblynk.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/led-appblynk.png) y leerá de un pin virtual pin V4 y otro gadget para V5 [![led-appblynk2.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/led-appblynk2.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/led-appblynk2.png) ##### **En ARDUINOBLOCKS** Pondremos el siguiente código, simplemente lee que si se pulsa pues que encienda el led en el APP [![eventoledblynk.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/eventoledblynk.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/eventoledblynk.png) {{@5685}} # Séptimo programa: El timbre El timbre es algo especial, si ponemos una música, el Arduino está tan ocupado y el código engorda que da muchas desconexiones, si es el ESP32 lo aguanta bien. En la APP ponemos un slider asociado a un pin virtual, por ejemplo a V9 [![slidertimbre.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/slidertimbre.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/slidertimbre.png) Y en Arduinoblocks añadimos un bucle que lea ese pin virtual V9 y que lo almacene en una variable numérica, que lo hemos llamado *timbre* Si esta variable, ha cambiado el valor, que haga un tono. si te fijas el valor máximo del slider se ha puesto a 2000, el máximo tono audible es 20.000, pero el slider no lo permite, por lo tanto, el truco es multiplicarlo por 10 [![arduinoblocks-timbre.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/arduinoblocks-timbre.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/arduinoblocks-timbre.png) {{@5685}} # ¿Todo junto? Si que se puede pero con la placa Arduino alguna vez se desconecta, pues no tiene un microprocesador muy potente. Con ESP32 sí que lo aguanta bien. En la APP el dashboard o proyecto queda: [![resultadofinalAppBlynk.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/resultadofinalappblynk.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-09/resultadofinalappblynk.jpeg) Y en ARDUINOBLOCKS [![programatotalArduinoblocks.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/programatotalarduinoblocks.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/programatotalarduinoblocks.png) {{@5685}} # CÓMO MONTAR UN SERVIDOR BLYNK LEGACY LOCAL # OJO ESTO NO TIENES QUE HACERLO Este apartado es para tu conocimiento NO LO TIENES QUE HACER, sólo para que sepas como CATEDU ha montado el servidor en la RASPBERY por si te interesa seguir los mismos pasos Como CATEDU ya te proporciona un servidor Blynk legacy **NO ES NECESARIO PARA EL CURSO** Pero fuera del curso de Catedu, tienes que hacerlo. {{@5685}} # Raspberry: Qué hay que hacer para empezar {{@5144}} {{@5685}} # Rasbperry: Poner un Sistema Operativo {{@4308}} {{@5685}} # Raspberry: Conectarlo a la red {{@4309}} {{@5685}} # Raspbery: Conexión SSH {{@4310}} {{@5685}} # Raspberry: Cambiar usuario y contraseña {{@4311}} {{@5685}} # Raspberry: Apagar {{@4312}} {{@5685}} # Raspberry: VNC {{@4313}} {{@5685}} # Raspberry: Instalar Java 8 {{@5145}} {{@5685}} # Raspberry: Instalar y ejecutar el servidor Blynk local {{@5146}} {{@5685}} # En Windows Instalar Java 11 {{@7126}} {{@5685}} # En Windows Instalar Blynk local {{@7127}} {{@5685}} # En Windows Ejecutar Blynkserver {{@7128}} {{@5685}} # En Linux {{@7149}} {{@5685}} # TAREA A ENTREGAR Para completar el curso deberás presentar los siguientes ficheros: Un video o memoria fotográfica en el que se vea parte del desarrollo de alguna de las sesiones trabajadas en el aula con el alumnado. Para el aporte de evidencias de trabajo con alumnado puedes consultar esta página con instrucciones al respecto. Cuando en nuestros cursos debamos aportar evidencias del trabajo realizado con el alumnado, será interesante tener en cuenta los siguientes criterios: - Los vídeos/fotografías aportadas **NO SON para su difusión** en ningún tipo de plataforma o web pública. Solo van a ser visibles y revisadas por la persona que tutoriza/corrige el curso. - El objetivo de la actividad es mostrar evidencias del uso de la Competencia Digital Docente CDD en el aula. - Muestra tu trabajo y la aplicación de lo aprendido en el aula. Para ello no es necesario que aparezca las identidades individuales del alumnado, pero sí que se trabaja con ellos. Si lo consideras imprescindible, intenta que aparezcan de espaldas o con los rostros pixelados para que no sean reconocibles, esta opción es optativa, no oblitatoria. - Como la grabación de la actividad escolar forma parte de la formación del docente y por lo tanto de la función educativa, está pues **legitimada**. [Ver página 38 de la Guía de centros educativos de la AEPD](https://www.aepd.es/es/documento/guia-centros-educativos.pdf) - No obstante será interesante seguir los mismos criterios que posea el centro educativo respecto a la toma de imágenes del alumnado, respetando la voluntad de aquel alumnado que haya expresado de forma explícita su no consentimiento para la utilización de su imagen en actividades que no sean estrictamente educativas u orientadoras. Aunque al ser actividad educativa está legitimada, como su efecto no recae sobre el alumnado sino para la calificación de su profesorado, entendemos que es mejor acogerse a tal fin. Aquí te dejamos una pequeña animación sobre cómo pixelar un rostro utilizando GIMP. En CANVA por ejemplo puedes pegar emoticonos sobre la cara del alumnado para no hacerlos reconocibles. Existen APPs en el móvil que permiten hacer esto. [![image-1671449852921.gif](https://libros.catedu.es/uploads/images/gallery/2022-12/image-1671449852921.gif)](https://libros.catedu.es/uploads/images/gallery/2022-12/image-1671449852921.gif) Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU [![logo.png](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/logo.png)](https://libros.catedu.es/uploads/images/gallery/2023-01/logo.png) # Muro
![Hecho con Padlet](https://padlet.net/embeds/made_with_padlet_2022.png)
# Créditos ## Autoría #### **Retos A1 a A11** *Estos contenidos han sido elaboradas por Fernando Hernández García, Ingeniero Técnico Industrial Especialidad Electrónica, formador del profesorado y profesor del Institut Torre del Palau (Terrassa – Barcelona). [Enlace de los contenidos](https://www.educa.jcyl.es/crol/es/recursos-educativos/retos-programar.ficheros/1554071-Retos%20con%20Imagina%20TdR%20STEAM.pdf). **Licencia CC-BY-NC-ND**. [Permiso](https://libros.catedu.es/books/documentacion-catedu/page/permisos-contenidos)* #### **Retos A12** *El siguiente reto está extraído del **LIBRO ACTIVIDADES CON IMAGINA TR STEAM Y ARDUINOBLOCKS VERSION 4.0** Descarga en : [Repositorio original en Dropbox](https://www.dropbox.com/s/22f9daonooz0mha/Manual%20Actividades%20Imagina%20TdR%20STEAM%20versi%C3%B3n%204.pdf?dl=0) [Repositorio alternativo Drive](https://drive.google.com/drive/folders/1erRa6WcJyuJWFtIMEfDjqM-QeDBxsNjx?usp=sharing) Concretamente de la página 89 capítulo 7.11.1* *Elaborado por el equipo de Innova Didáctic Robolot Team **LICENCIA CC- BY NC ND** [Permiso](https://libros.catedu.es/books/documentacion-catedu/page/permisos-contenidos)* ##### **Resto de apartados** **Javier Quintana Peiró** CATEDU menos en los párrafos y citas que se cita su autor y procedencia. 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) Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU [![logo.png](https://libros.catedu.es/uploads/images/gallery/2023-01/scaled-1680-/logo.png)](https://libros.catedu.es/uploads/images/gallery/2023-01/logo.png)