# Rover Marciano Con Arduinoblocks e Internet de las cosas IoT

Se trabaja con NodeMCU que es equivalente en instrucciones al Arduino, pero con conexión Wifi, luego con el servicio Blink podremos manejar nuestro rover desde el móvil y leer sus sensores con suma facilidad.

# 0 Inicio

## Objetivos

1. Conocer el Internet de las cosas **IoT** controlando robot tipo rover con sensores con una APP.
2. Explorar por encima la potencialidad de la programación por bloques **[ArduinoBlocks](http://www.arduinoblocks.com/)**
3. Conocer la posibilidad de crear APPs de forma inmediata y sencilla para el control de hardware con **[Blink](https://blynk.io/)**
4. Adentrarnos un poco en el mundo maker y descubrir sus ventajas

## Contenidos

1. La electrónica del rover: NodeMCU y sensores
2. Programación por bloques **[ArduinoBlocks](http://www.arduinoblocks.com/)** para controlar la placa **NodeMCU**.
3. Manejo de la **[App Blink](https://blynk.io/)** para controlar el rover por wifi y con el móvil.
4. AVANZADO: Creación de un **servidor local BLINK con Raspbery**

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

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

# 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:

Como se puede ver ROVER CON ARDUINO tiene la ventaja de tener un precio razonable, y dentro del rango de programación en bloques del Arduino en primaria.

Guía orientativa

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="569" src="https://docs.google.com/presentation/d/e/2PACX-1vQHiZvv1cGHet7eXVy-QcECY4Lj0k0l7ntDi8MevRWHQX-9myA0bfR5IofMeuGZkWD0Hw-Ob-MGoco_/embed?start=true&loop=true&delayms=3000" width="960"></iframe>

<p class="callout success">Tenemos un **grupo Telegram Robótica Educativa en Aragón**, [https://t.me/roboticaeducativaaragon](https://t.me/roboticaeducativaaragon)</p>

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

# Robótica y accesibilidad

#### **<span style="color: #169179;">1.- Introducción</span>**

Durante mucho tiempo la robótica fue patrimonio de personas y/o instituciones con alta capacidad económica (podían adquirir las placas con microcontroladores comerciales) y capacidad intelectual (podían entender y programar el funcionamiento de las mismas) siempre dentro de los límites establecidos por las marcas comerciales y lo que pudieran “desvelar” de su funcionamiento, vigilando siempre que la competencia no “robara” sus secretos y “copiara” sus soluciones.

Todo esto saltó por los aires en torno a 2005 con la irrupción de un grupo de profesores y estudiantes jóvenes, que decidieron romper con esta dinámica, tratando de poner a disposición de su alumnado microcontroladores económicamente accesibles y que les permitieran conocer su funcionamiento, sus componentes, e incluso replicarlos y mejorarlos. Nacía **Arduino** y el concepto de **Hardware Open Source**. Detrás de este concepto se encuentra la **accesibilidad universal.** En un proyecto Open Source todo el mundo puede venir, ayudar y contribuir, minimizando barreras económicas e intelectuales.

Arduino traslada al hardware un concepto ya muy conocido en el ámbito del software, como es el **software open source o software libre.**

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

<details id="bkmrk-software-libre-cuand"><summary>Software libre</summary>

Cuando los desarrolladores de software terminan su creación, tienen múltiples posibilidades de ponerlo a disposición de las personas, y lo hacen con condiciones específicas especificadas en una licencia. Esta licencia es un contrato entre el creador o propietario de un software y la persona que finalmente acabará utilizando este software. Como usuarios, es nuestro deber conocer las condiciones y permisos con las que el autor ha licenciado su producto, para conocer bajo qué condiciones podemos instalar y utilizar cada programa.

Existen muchas posibilidades de licencias: software privativo, comercial, freeware, shareware, etc.. Nos centraremos aquí en la de software libre.

GNU ([https://www.gnu.org](https://www.gnu.org/)) es una organización sin ánimo de lucro que puso una primera definición disponible de lo que es software libre: Software libre significa que los usuarios del software tienen libertad (la cuestión no es el precio). Desarrollaron el sistema operativo GNU para que los usuarios pudiesen tener libertad en sus tareas informáticas. Para GNU, el software libre implica que los usuarios tienen las cuatro libertades esenciales:

1\. ejecutar el programa.  
2\. estudiar y modificar el código fuente del programa.  
3\. redistribuir copias exactas.  
4\. distribuir versiones modificadas.

En otras palabras, el software libre es un tipo de software que se distribuye bajo una licencia que **permite a los usuarios utilizarlo, modificarlo y distribuirlo libremente**. Esto significa que los usuarios tienen libertad de ejecutar el software para cualquier propósito, de estudiar cómo funciona el software y de adaptarlo a sus necesidades, de distribuir copias del software a otros usuarios y de mejorar el software y liberar las mejoras al público.

El software libre se basa en el principio de la libertad de uso, y no en el principio de la propiedad. Esto significa que los usuarios tienen la libertad de utilizar el software de la manera que deseen, siempre y cuando no violen las condiciones de la licencia. El software libre es diferente del software propietario, que es el software que se distribuye con restricciones en su uso y modificación. El software propietario suele estar protegido por derechos de autor y solo se puede utilizar bajo los términos y condiciones especificados por el propietario del software.

Recomendamos la visualización de este [video ](https://youtu.be/nlDVZ816zoI)para entender mejor el concepto.

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

</details>Más adelante, entorno a 2015, en Reino Unido, surgiría también la placa **BBC Micro:bit**, con la misma filosofía de popularizar y hacer accesible en este caso al alumnado de ese país la programación y la robótica. También hablaremos de ella.

#### **<span style="color: #169179;">2.- ARDUINO o LA ROBÓTICA ACCESIBLE</span>**

Arduino es una **plataforma de hardware y software libre**.

<details id="bkmrk-hardware-libre-esto-"><summary>Hardware libre</summary>

Esto significa que tanto la placa Arduino como el entorno de desarrollo integrado (IDE) son de código abierto. Arduino permite a los usuarios utilizar, modificar y distribuir tanto el software como el hardware de manera libre y gratuita, siempre y cuando se respeten las condiciones de las licencias correspondientes.

El hardware libre es un tipo de hardware cuya **documentación y diseño están disponibles de manera gratuita y libre** para su modificación y distribución. Esto permite a los usuarios entender cómo funciona el hardware y adaptarlo a sus necesidades, así como también crear sus propias versiones modificadas del hardware.

Arduino surge como solución al **elevado precio de los microcontroladores** allá por el año 2005. En el ámbito de la educación, los microcontroladores solo se utilizaban en la etapa universitaria, y su coste era tan elevado que muchos proyectos de fin de carrera se quedaban únicamente en prototipos virtuales ya que las universidades no podían proveer a cada estudiante con un microprocesador, contando además que en el propio proceso de experimentación lo más habitual era que una mala conexión hiciera que se rompieran. Otro **gran inconveniente era la dificultad de la programación**. Cada fabricante entregaba su manual de programación, lo que hacía que de unos a otros no hubiera un lenguaje estándar, y la consecuente dificultad de interpretación. Además, su programación era a bajo nivel en lenguaje máquina. Generar una simple PWM requería una ardua y minuciosa secuenciación que podía llevar varias horas hasta conseguir el resultado deseado. Por este motivo, el enfoque de Arduino desde el principio fue ser Open Source tanto en hardware como en software. El desarrollo del hardware fue la parte más sencilla. Orientado a educación, sufre algunas modificaciones frente a los<span style="font-size: 13.5pt; mso-bidi-font-size: 12.0pt; font-family: sans-serif;"> </span>microprocesadores existentes para hacer más fácil su manejo y accesibilidad a cualquier sensor o actuador. El mayor esfuerzo se entregó en todas las líneas de código que hacían posible que ya no hubiera que programar a bajo nivel gracias al IDE de Arduino que incluía bibliotecas y librerías que estandarizaban los procesos y hacían tremendamente sencillo su manejo. Ahora el alumnado para mover un motor, ya no tenía que modificar las tramas de bits del procesador una a una, sino que bastaba con decir que quería moverlo en tal dirección, a tal velocidad, o a equis grados.

</details>Acabábamos de pasar de unos costes muy elevados y una programación muy compleja a tener una **placa accesible, open source y de bajo coste** que además hacía muy **accesible su programación y entendimiento**, características fundamentales para su implantación en educación, hasta tal punto que su uso ya no era exclusivo de universidades, sino que se extiende a la educación secundaria.

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

Este hecho es fundamental para el desarrollo del Pensamiento Computacional en el aula observándose que su accesibilidad y beneficios son tales, que alcanzan a **centros con alumnado de toda tipología** como la aplicación del pensamiento computacional y robótica en aulas con alumnos de necesidades especiales. Una vez más, aparece el concepto de accesibilidad asociado a esta filosofía Open Source.

A este respecto, recomendamos la lectura de [este interesante blog](https://dgafprofesorado.catedu.es/2019/09/25/robotiqueamos-experiencia-de-aproximacion-a-la-robotica-en-educacion-especial-cpee-angel-riviere/), que tiene por título: ROBOTIQUEAMOS...” Experiencia de aproximación a la robótica en Educación Especial (CPEE ÁNGEL RIVIÈRE). También recomendamos los trabajos robótica en Educación Especial (CPEE ÁNGEL RIVIÈRE): [http://zaragozacpeeangelriviere.blogspot.com/search/label/ROB%C3%93TICA](http://zaragozacpeeangelriviere.blogspot.com/search/label/ROB%C3%93TICA)

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

Igualmente, la aparición de Arduino supone una gran facilidad para la aplicación de la robótica y la programación en la atención temprana, donde son numerosas sus aplicaciones desde ayudar a mitigar el déficit de atención en jóvenes autistas, hasta ayudar a socializar a los alumnos con dificultades para ello, o ayudar a alumnos de altas capacidades a desarrollar sus ideas.

Por otro lado su accesibilidad económica lo ha llevado a popularizarse en países de **todo el mundo**, especialmente en aquellos cuyos sistemas educativos no disponen en muchas ocasiones de recursos suficientes, lo que supone en la práctica una **democratización del conocimiento y superación de brecha digital.**

<details id="bkmrk-filosof%C3%ADa-del-arduin"><summary>Filosofía del Arduino ver vídeo</summary>

Arduino y su IDE son la primera solución que aparece en educación con todas las ventajas que hemos enumerado, y esto hace que todos los nuevos prototipados y semejantes tengan algo en común, siempre son compatibles con Arduino

<span style="font-weight: 400;">Para entender bien la filosofía de Arduino y el hardware libre, os recomendamos este documental de 30 minutos.[ Arduino the Documentary](http://www.vimeo.com/18390711)</span>

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="https://player.vimeo.com/video/18390711?h=b5844e7753" width="640"></iframe>

</details><details id="bkmrk-scratch%3A-software-li"><summary>Scratch: software libre para el desarrollo del pensamiento computacional</summary>

Scratch es un lenguaje de programación visual desarrollado por el grupo Lifelong Kindergarten del MIT Media Lab. Scratch es un software libre. Esto significa que está disponible gratuitamente para todos y que se distribuye bajo una licencia de software libre, la Licencia Pública General de Massachusetts (MIT License). Esta licencia permite a los usuarios utilizar, modificar y distribuir el software de manera libre, siempre y cuando se respeten ciertas condiciones. Entre otras cosas, la licencia de Scratch permite a los usuarios utilizar el software para cualquier propósito, incluyendo fines comerciales. También permite modificar el software y distribuir las modificaciones, siempre y cuando se incluya una copia de la licencia y se indique que el software ha sido modificado. En resumen, Scratch es un software libre que permite a los usuarios utilizar, modificar y distribuir el software de manera libre y gratuita, siempre y cuando se respeten las condiciones de la licencia. De hecho, gracias a que está licenciado de esta forma, han surgido decenas de variaciones de Scratch para todo tipos de propósitos, eso sí, siempre educativos y relacionados con las enseñanzas de programación y robótica

</details>#### **<span style="color: #169179;">3. BBC micro:bit y la Teoría del Cambio</span>**

BBC micro:bit, a veces escrito como Microbit o Micro Bit, es un pequeño ordenador del tamaño de media tarjeta de crédito, creado en 2015 por la BBC con el fin de promover el desarrollo de la robótica y el pensamiento computacional entre la población escolar del Reino Unido. Actualmente su uso está extendido entre 25 millones de escolares de 7 a 16 años de más de 60 países.

[![e74cc3a97963070daee67213f9ccf5268388bd01-790x635.webp](https://libros.catedu.es/uploads/images/gallery/2023-03/scaled-1680-/e74cc3a97963070daee67213f9ccf5268388bd01-790x635.webp)](https://libros.catedu.es/uploads/images/gallery/2023-03/e74cc3a97963070daee67213f9ccf5268388bd01-790x635.webp)*Tarjeta BBC micro:bit V1. Fuente: [https://microbit.org](https://microbit.org). CC BY-SA 4.0.*

Aunque el proyecto fue iniciado por la BBC, su desarrollo fue llevado a cabo por 29 socios tecnológicos de primera línea. Por ejemplo, la implementación del Bluetooth integrado en la tarjeta corrió a cargo de la fundación propietaria de la marca, Bluetooth SIG, una asociación privada sin ánimo de lucro.

**El hardware y el software resultantes son 100% abiertos**, y están gestionados por una fundación sin ánimo de lucro que comenzó a funcionar en el año 2016, la [Micro:bit Educational Foundation](https://archive.microbit.org/es/about/). La fundación basa sus actuaciones en su Teoría del Cambio,

<details id="bkmrk-teor%C3%ADa-del-cambio-y-"><summary>Teoría del cambio y más sobre microbit</summary>

Teoría del cambio puede resumirse en tres principios:

- El convencimiento de que la capacidad de comprender, participar y trabajar en el mundo digital es de vital importancia para las oportunidades de vida de una persona joven.
- La necesidad de emocionar y atraer a las personas jóvenes por medio de BBC micro:bit, especialmente a las que podrían pensar que la tecnología no es para ellas.
- Diversificar a los estudiantes que eligen las materias STEM a medida que avanzan en la escuela y en sus carreras, para hacer crecer una fuente diversa de talento, impulsando la equidad social y contribuyendo a crear una tecnología mejor.

Para desarrollar sus principios, la fundación trabaja en tres líneas de acción:

- El desarrollo de hardware y software que contribuyan a despertar el entusiasmo en las personas jóvenes hacia la tecnología y hacia las oportunidades que presenta.
- La creación de recursos educativos gratuitos y fáciles de usar que permitan al profesorado enseñar de forma atractiva y creativa.
- La colaboración con entidades asociadas que compartan una misma visión para ofrecer programas educativos de alto impacto en todo el mundo.

<p class="callout info">Uno de los objetivos de la Micro:bit Educational Foundation es llegar a 100 millones de escolares en todo el mundo.</p>

En correspondencia con las líneas de acción y con los principios expuestos, el sistema resultante es muy económico: tanto las placas como los accesorios producidos por terceras empresas tienen un precio muy contenido. Además, dado el carácter abierto del proyecto, están disponibles algunos clones totalmente compatibles, como Elecrow Mbits o bpi:bit. Estos clones son incluso más potentes y económicos que la placa original.

El universo micro:bit destaca por su **alta integración de software y hardware**: basta un clic de ratón para cargar las librerías necesarias para que funcione cualquier complemento robótico, como sensores, pantallas, tarjetas de Internet de las Cosas, robots, casas domóticas, etc.

La programación de la placa se realiza desde un ordenador a través de un navegador cualquiera, estando disponibles **12 lenguajes de programación**. De nuevo, por ser un sistema abierto, existen múltiples soluciones de programación, aunque las más común es [MakeCode](https://makecode.microbit.org/).

[![MakeCode.png](https://libros.catedu.es/uploads/images/gallery/2023-03/scaled-1680-/makecode.png)](https://libros.catedu.es/uploads/images/gallery/2023-03/makecode.png)*Captura de pantalla del editor MakeCode, [https://makecode.microbit.org/#](https://makecode.microbit.org/).*

El sitio web MakeCode permite programar con bloques y también en Python y en Java, traduciendo de un lenguaje a otro instantáneamente. No se necesita ningún registro en la plataforma para poder programar.

Los programas también pueden guardarse descargados en el ordenador compilados en código de máquina. Al subir de nuevo el programa al editor, se realiza una decompilación automática al lenguaje de bloques, Python o Java. Los programas guardados en código de máquina se pueden cargar directamente en micro:bit, que en el escritorio de un ordenador se maneja como una simple unidad de memoria USB.

MakeCode contiene además múltiples recursos como tutoriales, vídeos, fichas de programación, cursos para el profesorado, ejemplos y propuestas de proyectos y experimentos, todo ello en varios idiomas y clasificado por edades desde los 7 años.

Otra solución muy usada para programar micro:bit es [MicroPython](https://python.microbit.org/v/3), creada por Python Software Foundation, otra organización sin ánimo de lucro.

[MicroCode](https://microsoft.github.io/microcode/#H4sIACVEGGQAAwEAAP//AAAAAAAAAAA=) permite que los más pequeños, a partir de los 6 años de edad, programen micro:bit mediante un sistema de fichas dispuestas en líneas de acción. Están disponibles un tutorial introductorio en 20 idiomas, una guía del usuario y muchos ejemplos. El proyecto es de código abierto.

Micro:bit también es programable en **Scratch** con sólo añadir una extensión al editor.

Todos los entornos de desarrollo descritos disponen de un simulador de micro:bit, por lo que ni siquiera resulta necesario disponer de una tarjeta física para aprender a programar.

Una vez realizada la programación, la placa y sus complementos pueden funcionar desconectados del ordenador por medio de un cargador de móvil, una batería externa o un simple par de pilas alcalinas.

</details><details id="bkmrk-versiones-y-caracter"><summary>Versiones y características de micro:bit</summary>

A pesar de su pequeño tamaño, micro:bit es un sistema potente. Existen dos versiones de la placa. La más moderna, llamada micro:bit V2, tiene las siguientes características:

- Procesador de 64 MHz.
- 512 KB de RAM Flash y 128 KB de RAM.
- Matriz de 5 x 5 LED rojos.
- Dos pulsadores mecánicos y un tercer pulsador de apagado y reset.
- Un pulsador táctil.
- Micrófono y altavoz.
- Acelerómetro y brújula.
- Sensores de luz y de temperatura.
- Comunicación con otras placas por Bluetooth de bajo consumo.
- Alimentación a 3 V o por USB.
- 25 pines de entradas y salidas para conectar motorcitos, sensores, placas de Intenet de las Cosas, robots y, en general, cualquier otro tipo de accesorio.
- 200 mA de intensidad de corriente disponibles en las salidas para alimentar accesorios.

</details>#### **<span style="color: #169179;">4.- LA IMPORTANCIA DEL OPEN SOURCE / CÓDIGO ABIERTO EN EDUCACIÓN</span>**

La creación, distribución, modificación y redistribución del hardware y software libre así como su utilización, están asociados a una serie de valores que deberían ser explicados en la escuela a nuestros alumnos para dar una alternativa a la versión mercantilista de que cualquier creación es creada para obtener beneficios económicos.

En GNU, pusieron especial énfasis en la difusión del software libre en colegios y universidades, promoviendo una serie de valores fundacionales:

<details id="bkmrk-valores-gnu-%C2%A0compart"><summary>Valores GNU</summary>

##### <span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol; mso-bidi-font-weight: bold;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>**Compartir**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"> </span></span>El código fuente y los métodos del hardware y software libre son parte del conocimiento humano. Al contrario, el hardware software privativo es conocimiento secreto y restringido. El código abierto no es simplemente un asunto técnico, es un asunto ético, social y político. Es una cuestión de derechos humanos que la personas usuarias deben tener. La libertad y la cooperación son valores esenciales del código abierto. El sistema GNU pone en práctica estos valores y el principio del compartir, pues compartir es bueno y útil para el progreso de la humanidad. Las escuelas deben enseñar el valor de compartir dando ejemplo. El hardware y software libre favorece la educación pues permite compartir conocimientos y herramientas.

##### **Responsabilidad social**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>La informática, electrónica, robótica... han pasado a ser una parte esencial de la vida diaria. La tecnología digital está transformando la sociedad muy rápidamente y las escuelas ejercen una influencia decisiva en el futuro de la sociedad. Su misión es preparar al alumnado para que participen en una sociedad digital libre, mediante la enseñanza de habilidades que les permitan tomar el control de sus propias vidas con facilidad. El hardware y el software no debería estar bajo el poder de un desarrollador<span style="mso-spacerun: yes;"> </span>que toma decisiones unilaterales que nadie más puede cambiar.

##### **Independencia**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Las escuelas tienen la responsabilidad ética de enseñar la fortaleza, no la dependencia de un único producto o de una poderosa empresa en particular. Además, al elegir hardware y software libre, la misma escuela gana independencia de cualquier interés comercial y evita permanecer cautiva de un único proveedor. Las licencias de hardware y software libre no expiran

##### **Aprendizaje**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"><span style="font-family: OpenSymbol;"> </span></span><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Con el open source los estudiantes tienen la libertad de examinar cómo funcionan los dispositivos y programas y aprender cómo adaptarlos si fuera necesario. Con el software libre se aprende también la ética del desarrollo de software y la práctica profesional.

##### **Ahorro**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"><span style="font-family: OpenSymbol;"> </span></span><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Esta es una ventaja obvia que percibirán inmediatamente muchos administradores de instituciones educativas, pero se trata de un beneficio marginal. El punto principal de este aspecto es que, por estar autorizadas a distribuir copias de los programas a bajo costo o gratuitamente, las escuelas pueden realmente ayudar a las familias que se encuentran en dificultad económica, con lo cual promueven la equidad y la igualdad de oportunidades de aprendizaje entre los estudiantes, y contribuyen de forma decisiva a ser una escuela inclusiva.

##### **Calidad**

<span style="font-family: OpenSymbol; mso-fareast-font-family: OpenSymbol; mso-bidi-font-family: OpenSymbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"><span style="font-family: OpenSymbol;"> </span></span><span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Estable, seguro y fácilmente instalable, el software libre ofrece una amplia gama de soluciones para la educación.

</details><details id="bkmrk-etiqueta-en-los-a%C3%B1os"><summary>Para saber más</summary>

En los años 90, era realmente complicado utilizar un sistema operativo Linux y la mayoría de la cuota del mercado de los ordenadores personales estaba dominada por Windows. Encontrar drivers de Linux para el hardware que tenía tu equipo era casi una quimera dado que las principales compañías de hardware y de software no se molestaban en crear software para este sistema operativo, puesto que alimentaba la independencia de los usuarios con respecto a ellas mismas.

Afortunadamente, y gracias a la creciente presión de su comunidad de usuarios, estas situaciones pertenecen al pasado, y las compañías fabricantes de hardware han tenido que variar el rumbo. Hoy en día tenemos una gran cantidad de argumentos en los que nos podemos basar para dar el salto hacia cualquier sistema operativo basado en Linux. Tal y como podemos leer en educacionit.com, podemos encontrar las siguientes ventajas:

- Es seguro y respeta la privacidad de los usuarios: Aunque hay compañías linuxeras, como Oracle, Novell, Canonical, Red Hat o SUSE, el grueso de distribuciones y software Linux está mantenido por usuarios y colectivos sin ánimo de lucro. De esta forma, podemos confiar en que una comunidad que tiene detrás millones de usuarios, pueda validar el código fuente de cualquier de estas distribuciones, asegurándonos la calidad de las mismas, compartir posibles problemas de seguridad, y sobre todo, estar bien tranquilos con la privacidad y seguridad de nuestros datos e información personal, aspecto que debería ser crítico y determinante a la hora de trabajar con los datos de menores de edad en las escuelas y colegios.
- Es ético y socialmente responsable: La naturaleza de Linux y su filosofía de código abierto y libre hace posible que cualquier usuario con conocimientos pueda crear su propia distribución basada en otras o probar las decenas de versiones que nos podemos encontrar de una distribución Linux. Este es el caso de Ubuntu por ejemplo. Gracias a esta democratización de los sistemas operativos, incluso han podido aparecer en nuestras vidas nuevos dispositivos basados en software y hardware libre como Arduino y Raspberry Pi.
- Es personalizable: el código abierto permite su estudio, modificación y adaptación a las necesidades de los diferentes usuarios, teniendo así no un único producto sino una multiplicidad de distribuciones que satisfacen las necesidades de los diferentes colectivos a los que se dirijan. Especialmente útiles son las distribuciones educativas libres, que pueden ser adaptadas a las necesidades de las escuelas.
- Está basado en las necesidades de los usuarios y no en las de los creadores de hardware y software
- Es gratis. La mayoría de las distribuciones Linux son gratuitas y de libre descarga
- Es fácil de usar. Una de las barreras que durante años ha evitado a muchos usar Linux es su complejidad. Las distribuciones orientadas al consumo doméstico cumplen los estándares de simplicidad y necesidades que cualquier usuario sin conocimientos de tecnología pueda necesitar. El entorno gráfico es sencillo, intuitivo, e incluso se puede customizar para que se pueda parecer a los más conocidos como Windows y MacOS. Además, vienen con la mayoría de aplicaciones que cualquier usuario puede necesitar: ofimáticas, edición de audio y vídeo y navegación por Internet.
- Es suficiente. Tiene su propio market de aplicaciones. Como el resto de sistemas operativos ya sea para ordenadores o dispositivos móviles, también podemos encontrar un lugar único donde poder descargar cientos de aplicaciones para todos los gustos y necesidades.

Por estas razones, el software libre se ha expandido por toda la comunidad educativa en los últimos años de manera exponencial. Un buen ejemplo de lo que estamos hablando es **Bookstack**, este sistema de edición de contenidos para cursos que utiliza Aularagón así como el uso de **Moodle** como plataforma de enseñanza y aprendizaje. En cuanto a sistema operativo para ordenadores, en Aragón disponemos de nuestra propia distribución Linux: Vitalinux EDU. Tal y como podemos leer desde su página web: **Vitalinux EDU (DGA)** es la distribución Linux elegida por el Gobierno de Aragón para los centros educativos. Está basada en Vitalinux, que se define como un proyecto para llevar el Software Libre a personas y organizaciones facilitando al máximo su instalación, uso y mantenimiento. En concreto Vitalinux EDU (DGA) es una distribución Ubuntu (Lubuntu) personalizada para Educación, "tuneada" por los requisitos y necesidades de los propios usuarios de los centros y adaptada de forma personalizada a cada centro y a la que se ha añadido una aplicación cliente Migasfree. De ésta forma, obtenemos:

1. Un **Sistema Ligero.** Permite "revivir" equipos obsoletos y "volar" en equipos modernos. Esto garantiza la sostenibilidad de un sistema que no consume recursos de hardware innecesariamente ni obliga a la sustitución del hardware cada poco tiempo en esa espiral de obsolescencia programada en la que se ha convertido el mercado tecnológico.
2. **Facilidad en la instalación y el uso** del sistema mediante programas personalizados.
3. Un Sistema que **se adapta al centro** y/o a cada aula o espacio, y no un centro que se adapta a un Sistema Operativo.
4. **Gestión de equipo y del software de manera remota** y desatendida mediante un servidor Migasfree.
5. **Inventario** de todo el hardware y software del equipo de una forma muy cómoda.
6. Soporte y apoyo de una **comunidad** que crea, comparte e innova constantemente.

</details>

# 1 Introducción

# 1.2 Material

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

El precio de este kit es aproximadamente [50€](https://docs.google.com/spreadsheets/d/e/2PACX-1vS8HWZ4aCeZcHxtyiAZuvF63jOnPJccLIWO2GYEuB8PjXXIWHIIPILGmwHAgAKJHSFQWrMAu5zVqXMF/pubhtml)

El Kit de préstamo de Aulargón y en este presupuesto **no incluye la Raspberry** del apartado 4 Avanzado para montar un servidor Blynk local  
El kit de préstamo incluye todo este material ya montado

<iframe height="300px" id="bkmrk--14" src="https://docs.google.com/spreadsheets/d/e/2PACX-1vS8HWZ4aCeZcHxtyiAZuvF63jOnPJccLIWO2GYEuB8PjXXIWHIIPILGmwHAgAKJHSFQWrMAu5zVqXMF/pubhtml?gid=0&single=true&widget=true&headers=false" width="800px"></iframe>

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

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

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

Es una placa de desarrollo basado el el **SoC** ([Sytem on a chip](https://es.wikipedia.org/wiki/System_on_a_chip)). ESP8266 e incorpora la comunicación Wifi que tanto falta en el Arduino.

Desde que salió el ESP01 como primer módulo del ESP8266, se ha evolucionado mucho, mejorando la popularidad, potencialidad y bajando los precios. Actualmente (2020) se fabrica el ESP32. Ver [CURSO ESP32 EN EL AULA.](https://libros.catedu.es/books/esp32-en-el-aula)

Nosotros utilizamos en el Rover el NodeMCU basado en el ESP12E conocida como **NodeMCU** que apareció en el 2014 que se programaba con [Lua](https://libros.catedu.es/www.lua.org).

Con el paso del tiempo esta placa se programa en varios lenguajes, siendo la más interesante desde el punto pedagógico que se pueda programar en el didáctico **entorno Arduino**.

<p class="callout info">Existen disparidad en los fabricantes, en este curso se va a utilizar la generación segunda de 8 pines</p>

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

De [Luis Llamas](https://www.luisllamas.es/esp8266-nodemcu/) CC-BY-NC-SA

Para más información recomendamos la página de Luis Llamas (https://www.luisllamas.es/esp8266-nodemcu/)

## <span style="color: rgb(22, 145, 121);">**Shield motor para NodeMCU**</span>

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

Esta shield permite conectar motores en los 4 primeros terminales azules con el NodeMCU que se coloca en el zócalo. Para saber cómo funcionan los motores con esta shield [ver aquí](http://arduinoamuete.blogspot.com/2017/02/doitcar-kit-programacion-con-arduino.html)

También tiene unos machos para las entradas y salidas digitales del NodeMCU y uno para la entrada analógica. Esto lo vermos en [conexiones](https://catedu.github.io/Rover-arduino/capitulo-uno/conexiones.html).

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

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

Se elige este chasis por su bajo coste y con tracción 4x4 (en Marte no hay carreteras asfaltadas 🤣).

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

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

*Créditos: CC-BY-NC-SA [Luis Llamas](https://www.luisllamas.es/arduino-dht11-dht22/)*

Es un sensor que mide de forma sencilla tanto la temperatura como la humedad. Este sensor aparece en el [curso de Aularagón Arduino con código](https://catedu.github.io/programa-arduino-mediante-codigo/medida_de_la_temperatura_y_la_humedad_ambiente.html)

Su conexión es sencilla :

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

*Créditos: CC-BY-NC-SA [Luis Llamas](https://www.luisllamas.es/arduino-dht11-dht22/)*

Para saber más recomendamos la página de [Luis Llamas](https://www.luisllamas.es/arduino-dht11-dht22/)

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

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

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

De Desconocido - [Popular Science Monthly Volume 64, Dominio público](https://commons.wikimedia.org/w/index.php?curid=16542713)

[Edwin Helbert Hall](https://es.wikipedia.org/wiki/Edwin_Herbert_Hall) descubrió en 1879 que en presencia de un campo magnético, un conductor que conduzca una corriente se le producía un campo eléctrico porque las cargas eléctricas se desviaban de su trayectoria principal, nuestro sensor simplemente mide ese campo eléctrico:

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

De [Luis Llamas](https://www.luisllamas.es/detectar-campos-magneticos-con-arduino-y-sensor-hall-a3144/) CC-BY-NC

El sensor tiene un led de color rojo que indica que hay una lectura de campo magnético.

Nuestro rover analizará si las rocas que hay cerca de él tienen ferritas midiendo su componente magnético. Una aproximación tosca de los rovers actuales pero sirve para acercar el mundo de la medición remota al alumnado :

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--15" src="//www.youtube.com/embed/NphWPvi9cy4" width="560"></iframe>

Nuestro robot detectará si hay un imán cerca o no .

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--16" src="//www.youtube.com/embed/ZqYQaWH_yE4" width="560"></iframe>

## <span style="color: rgb(22, 145, 121);">**Sensor de luz LDR.**</span>

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

El LDR es una resistencia que varia con la luz. La conexión interna de este sensor analógico hace que **cuanto más luz menos valor nos proporciona** por lo tanto va al revés. Esto será importante para la confifuración de nuestros proramas, por ejemplo el medidor "Gauge" de la APP Blink de este vídeo va de 1023 a 0 para medir correctamente la cantidad de luz:

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--17" src="//www.youtube.com/embed/n6m_8mGBwXY" width="560"></iframe>

# 1.3 Conexiones

## Conexiones motores y batería

Este es el esquema de conexión de los motores y de la batería con el Shield :

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

Una alternativa a la conexión de la batería es utilizar un PowerBank y diréctamente al NodeMCU como podemos ver en la foto :

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

Otra posibilidad es utilizar baterías 18650 [ver](https://www.instructables.com/Simplest-Wifi-Car-Using-ESP8266-Motorshield/) pero ojo con usar estas baterías [ver+](https://catedu.github.io/rover-marciano-alphabot/desventajas.html)

## Conexiones NodeMCU sensores con la Shield.

El sensor de efecto Hall y el sensor DHT22 lo conectaremos a las entradas digitales, nosotros hemos elegido

- DHT22 a D5
- Efecto Hall al D6

Es recomendable no usar D4 ni D0 pues los utilizaremos como Led

El sensor de luz LDR al ser analógico, lo conectaremos en la única entrada analógica que tiene esta shield

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

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

# 2 ARDUINOBLOCKS

# Introducción

<p class="callout info">Esto no pretende ser un tutorial exhaustivo de STEAMAKERSBLOCKS, sino una guía rápida.  
STEAMAKERSBLOCKS es un programa que tiene muchas posibilidades. Si quieres saber más sobre ARDUINOBLOCKS tutoriales, ejemplos, foro.... te recomendamos [http://arduinoblocks.didactronica.com/](http://arduinoblocks.didactronica.com/) o el libro [Arduino blocks - libros y tutoriales](http://www.arduinoblocks.com/web/site/doc)</p>

<p class="callout warning">**<span style="color: rgb(22, 145, 121);">IMPORTENTE SABERLO: TENEMOS UN CHAT DE Ayuda en STEMAKERSBLOCKS </span>**</p>

<p class="callout success">hay chat de **Telegram** con una comunidad de profesores y técnicos de la empresa que apoya Arduinoblocks donde puedes encontrar proyectos, enlaces interesantes y lo más importante: Puedes preguntar tus dudas o problemas [https://t.me/innovadidactic\_comunidad](https://t.me/innovadidactic_comunidad)   
[![logogrupotelegramarduinoblocks.jpg](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/logogrupotelegramarduinoblocks.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-09/logogrupotelegramarduinoblocks.jpg)</p>

#### <span style="color: rgb(22, 145, 121);">**¿Por qué una programación con bloques?**</span>

Arduino se programa en lenguaje C++ (con algunas variaciones para simplificarlo). Para programar normalmente se utiliza el IDE (“Integrated Development Environment"/"Entorno de Desarrollo Integrado") de Arduino, que permite escribir el código, compilar el programa (crear el programa binario para el procesador Arduino) y grabarlo en la placa Arduino a través del puerto USB. El IDE de Arduino se puede descargar [desde la web oficial](https://www.arduino.cc/en/Main/Software). Es totalmente libre *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

[![2022-04-13 12_45_21-PROYECTO 00 CONOCEMOS ARDUINO. - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-12-45-21-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-12-45-21-proyecto-00-conocemos-arduino-pdf-xchange-viewer.png)   
*(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

Sin embargo pensando en edades más tempranas se han desarrollado formas más sencillas e intuitivas de programar Arduino como son los **lenguajes de programación por bloques**. De todos estos lenguajes cabe destacar **STEAMAKERSBLOCKS**.

Gracias a este lenguaje visual podemos programar las placas Arduino sin necesidad de escribir ni una sola línea de código, de esta forma podemos empezar a realizar proyectos con Arduino de una forma muy rápida y a edades más tempranas. La única desventaja es que el lenguaje por código tiene todo el potencial que requiere la programación de un experto.

Mismo programa creado con el IDE de Arduino en C++ (imagen de la izquierda) y con Arduinoblocks (imagen de la derecha).  
 *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

*[![2022-04-13 12_47_24-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-12-47-24-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-12-47-24-proyecto-00-conocemos-arduino-pdf-google-drive.png) José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

 Para trabajar con Arduinoblocks debemos ir a su página web [http://www.arduinoblocks.com/](http://www.arduinoblocks.com/) desde cualquier navegador y para cualquier sistema operativo (Windows, Linux, Mac). *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

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

![2025-10-22 10_31_17-.png](https://libros.catedu.es/uploads/images/gallery/2025-10/scaled-1680-/2025-10-22-10-31-17.png) antes![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-yvragro3.png)

**STEMAKERSBLOCKS** es un programa creado por el profesor Juanjo López. Gracias a su entorno gráfico facilita la programación de placas Arduino a todos los niveles. Esta herramienta permite programar a personas sin conocimientos previos de programación, pero su versatilidad y potencia es tan grande que expertos programadores también pueden utilizarlo. *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

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

De [Juan José López Almendros](https://faberllull.cat/en/resident.cfm?id=38252&url=juan-jose-lopez-almendros.htm) CC-BY-SA

La programación en **STEMAKERSBLOCKS** se realiza con bloques al estilo AppInventor o Scratch, <span style="text-decoration: underline;">*se puede utilizar a partir de 8 años*</span>. No tenemos que escribir líneas de código y no nos permitirá unir bloques incompatibles evitando así posibles errores de sintaxis. La plataforma **STEMAKERSBLOCKS** genera, compila y sube el programa a la placa Arduino por medio de la conexión USB. Una vez subido el programa, la placa el Arduino no necesitará de la conexión al PC para funcionar pudiendo alimentarla con baterías o una fuente de alimentación para que funcione de forma autónoma.

**STEMAKERSBLOCKS** actualmente funciona con todos los navegadores de última generación: Mozilla Firefox, Google Chrome, Opera, Safari,... *(José Andrés Echevarría @cantabRobots CC-BY-NC-SA)*

Por otro lado, tal y como se describe en la [Wiki](https://wiki.vitalinux.educa.aragon.es/index.php/Rob%C3%B3tica_con_Vitalinux) de **Vitalinux**, **STEMAKERSBLOCKS** funciona perfectamente con todos los sistemas operativos, pudiendo ser fácilmente instalable en equipos individuales y a nivel de centro dentro del soporte de **Vitalinux**.

# Crear cuenta

Registrándonos como usuarios de la plataforma **Steamakerblocks** podemos aprovechar todas estas posibilidades:

- Guardar tus proyectos en la nube de **Steamakerblocks** .
- Añadir información al proyecto: descripción, componentes utilizados, imágenes, etc.
- Añadir archivos adjuntos relacionados con el proyecto: esquemas, fotos, archivos para impresión 3D, aplicaciones, etc.
- Compartir proyectos con el resto del mundo.
- Importar proyectos compartidos por otros usuarios.
- Valorar y comentar proyectos.
- Programar directamente Arduino desde el propio navegador (con la aplicación: **Steamakerblocks -Connector**).
- Utilizar la consola serie desde el propio navegador.

Entramos en [https://www.steamakersblocks.com/](https://www.steamakersblocks.com/) e iniciamos sesión

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

Y rellenamos el formulario

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

*Autor José Andrés Echevarría @cantabRobots CC-BY-NC-SA*

# Cuentas alumnado

Tal y como dice el tutorial de Juanjo López : *Permite a un usuario registrado con email, crear y administrar nuevas cuentas de usuario dentro de una organización, centro educativo o institución.*

- ❤️Permite crear usuarios alumnos sin necesidad de ceder ningún tipo de datos
- 😍Puedes pasar proyectos a los alumnos, vacíos o empezados
- 🥳Tú puedes ver los proyectos de los alumnos y ponerles comentarios

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

- Si lo quieres en papel, te recomendamos el tutorial de Juanjo López son 12 diapositivas muy bien explicados 
    - [Repositorio Github](https://github.com/arduinoblocks/documentacion/blob/master/usuarios_gestionados.pdf)
    - [Repositorio en steamakerbloks.com](https://www.steamakersblocks.com/web/site/download?relativePath=%2F01+Gu%C3%ADas+Arduinoblocks-Connector+y+gesti%C3%B3n%2FGU%C3%8DA+-+Usuarios+Gestionados+para+profesores+y+centros+educativos.pdf)
- Prueba con Catedu: 
    - [https://www.steamakersblocks.com/](https://www.steamakersblocks.com/)
    - usuario alumnox.catedu donde x de 1 a 20
    - contraseña \[donde esta catedu en minúsculas\]

# ArduinoBlocks connector

<p class="callout danger">**Espera !!!** Aún no conectes tu placa (ESP32, Arduino, TDR STEAM...)</p>

##### **<span style="color: #169179;">PRIMER PASO Descargar e instalar Connector</span>**

Para poder usar la herramienta **Steamakerblocks** tenemos que ejecutar antes **Connector**. Lo descargamos de la misma página de **Steamakerblocks** según el sistema operativo que usemos: Windows (**W7 E INFERIORES NO FUNCIONA**), Linux ....

Entra en [https://www.steamakersblocks.com/](https://www.steamakersblocks.com/) y en Recursos, tienes la web para descargar este programa:

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

Lo descargamos y lo **instalamos.**

En el caso de tener equipos Vitalinux, es fácilmente accesible e instalable desde la aplicación **Vitalinux Play** o si se desea una instalación masiva en el centro a través de su página de [soporte](https://soporte.vitalinux.educa.aragon.es/):

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

##### **<span style="color: #169179;">SEGUNDO PASO: INSTALAR LOS DRIVERS</span>**

<p class="callout warning"><span style="color: rgb(0, 0, 0);">Si no hacemos estos pasos, cuando conectamos la placa, siempre sale en el COM1, le damos a subir y sale error</span></p>

<span style="color: rgb(0, 0, 0);">En [http://www.arduinoblocks.com/web/site/abconnector5](http://www.arduinoblocks.com/web/site/abconnector5) tenemos abajo ARDUINO SERIAL DRIVERS</span>

<p class="callout info"><span style="color: rgb(0, 0, 0);">RECOMENDAMOS EL PRIMER ENLACE Y EL TERCERO</span></p>

<span style="color: rgb(0, 0, 0);">[![2024-06-26 11_27_26-Coding with blocks ;).png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-26-11-27-26-coding-with-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-26-11-27-26-coding-with-blocks.png)</span>

<span style="color: rgb(0, 0, 0);"><span style="color: rgb(22, 145, 121);">**En el primero** </span>el instalador está en este enlace [https://cdn.sparkfun.com/assets/learn\_tutorials/7/4/CDM21228\_Setup.exe](https://cdn.sparkfun.com/assets/learn_tutorials/7/4/CDM21228_Setup.exe)</span>

<span style="color: rgb(0, 0, 0);">[![2024-06-26 11_28_55-How to Install FTDI Drivers - SparkFun Learn.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-26-11-28-55-how-to-install-ftdi-drivers-sparkfun-learn.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-26-11-28-55-how-to-install-ftdi-drivers-sparkfun-learn.png)</span>

<span style="color: rgb(0, 0, 0);"><span style="color: rgb(22, 145, 121);">**El segundo** </span>sólo si quieres utilizar Arduinos no oficiales, de fabricantes chinos, que tiene el CH340g y hay que leerse la página, paciencia</span>

<span style="color: rgb(0, 0, 0);">**<span style="color: rgb(22, 145, 121);">El tercero</span>** es necesario el 2102 si utilizas el ESP32 el instalador esta en este enlace, es una carpeta comprimida, la descomprimes y está el ejecutable instalador [https://www.silabs.com/documents/public/software/CP210x\_Windows\_Drivers.zip](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip)</span>

[![2024-06-26 11_38_15-CP210x USB to UART Bridge VCP Drivers - Silicon Labs.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-26-11-38-15-cp210x-usb-to-uart-bridge-vcp-drivers-silicon-labs.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-26-11-38-15-cp210x-usb-to-uart-bridge-vcp-drivers-silicon-labs.png)

concretamente hay que ejecutar este (al menos que el equipo sea muy viejo de 32bits)

[![2026-01-19 08_54_16-CP210x_Windows_Drivers - Explorador de archivos.png](https://libros.catedu.es/uploads/images/gallery/2026-01/scaled-1680-/2026-01-19-08-54-16-cp210x-windows-drivers-explorador-de-archivos.png)](https://libros.catedu.es/uploads/images/gallery/2026-01/2026-01-19-08-54-16-cp210x-windows-drivers-explorador-de-archivos.png)

##### **<span style="color: #169179;">COMPROBAR QUE DETECTA LA PLACA</span>**

Ahora **conectamos la placa** (ESP32, Arduino, NodeMCU, KeyStudio TDR STEAM...) a nuestro ordenador, y observamos si lo detecta, en Windows entramos en Administrador de dispositivos:

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

Y vemos que en los puertos COM se ha detectado correctamente la placa:

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

<p class="callout danger">En el caso de que no aparezca, es que no se han instalado correctamente los *drivers* de Arduino. Entonces vamos a la página oficial de Arduino y descargamos el programa **ARDUINO IDE** : [https://www.arduino.cc/en/software](https://www.arduino.cc/en/software) y lo instalamos. Al instalar este programa se instalan los drivers en nuestro ordenador. <span style="text-decoration: underline;">No hace falta ejecutarlo.</span></p>

<span style="color: #000000;">En el caso de equipos con sistema operativo Linux (como Vitalinux) el puerto serie tiene la forma **/dev/XXXX**</span>

##### <span style="color: #169179;">**YA PUEDES EJECUTAR ARDUINOBLOCKS CONNECTOR**</span>

Ahora buscamos el programa ArduinoBlocks connector que hemos descargado e instalado en el primer paso y lo **ejecutamos**.

[![2024-06-26 12_36_52-AB-Connector v5.3.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-26-12-36-52-ab-connector-v5-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-26-12-36-52-ab-connector-v5-3.png)

### <span style="background-color: #fcdbdb;">**ATENCIÓN** <span style="color: #4d0706;">No podemos cerrar la ventana mientras utilizamos *Arduinoblocks*, la <span style="font-size: 32.662px;">minimizamos</span> simplemente.</span></span>

En caso contrario, Arduinoblocks no se puede comunicar con nuestra placa Arduino, NodeMCU, KeyStudio, etc ....

##### **<span style="color: #169179;">YA PUEDES EJECUTAR ARDUINOBLOCKS</span>**

Entramos en la web ARDUINOBLOCKS [http://www.arduinoblocks.com/](http://www.arduinoblocks.com/) nos logueamos e iniciciamos un proyecto, Vemos que en el editor que aparece ya los puertos COM (si no te aparece, dale a la rueda actualizar)

<p class="callout warning">Aparecen varios COM,  **elegir el último que tiene que coincidir con el que has visto en el segundo paso**, no necesariamente es el COM más alto.  
Si se queda una ruleta de espera demasiado tiempo, entonces, actualizar la página o darle a actualizar el botón 1 de la figura :</p>

[![arduinoblocks-com.jpg](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/arduinoblocks-com.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-04/arduinoblocks-com.jpg)

Una vez elegido el COM ya puedes darle al botón amarillo **SUBIR** cuando has realizado tu proyecto pero antes de subir, por si acaso dale a **guardar** el proyecto que has realizado.

En el caso de equipos con Linux veremos algo así:

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

<p class="callout info">**¿Tengo que hacer los cuatro pasos cada vez?**  
No, sólo la primera vez para asegurar los drivers del Arduino, las siguientes veces que te conectes lo único que tienes que hacer es el tercer y cuarto paso</p>

<p class="callout warning">**IMPORTANTE: TENER EL SOFTWARE ARDUINOBLOCKS ACTUALIZADO** para que funcionen los nuevos bloques que se incorporan en Arudinoblocks</p>

# Empezando

Entramos en Proyectos y podemos ver nuestros proyectos creados como también empezar uno.

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

Y nos aparece tres opciones :


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

En esta ventana podremos elegir que tipo de proyecto vamos a realizar:

- **Proyecto Personal**: Iniciar un nuevo proyecto que sólo será accesible para el usuario. Posteriormente se puede compartir al resto de la comunidad si se desea.
- **Proyecto Profesor**: Iniciar un proyecto como profesor. De esta forma no se inicia un proyecto como tal, sino que se especifican los datos del proyecto y se genera un código para que los alumnos se puedan suscribir al proyecto. El profesor podrá supervisar y valorar los proyectos de sus alumnos.
- **Alumno**: De esta forma nos unimos a un proyecto planteado por el profesor. Nosotros realizaremos el proyecto como si de un proyecto personal se tratara, pero el profesor podrá supervisar y valorar nuestro trabajo.

<p class="callout info">*Adaptado de [este enlace.](https://drive.google.com/file/d/1fRIZWhedmk2-lMZ7EeTXg5NjnBKDyCnN/view) José Andrés Echevarría @cantabRobots CC-BY-NC-SA*</p>

Lo primero que tenemos que elegir es para qué tipo de placa se hace el proyecto.

- En el caso de que estés con el kit de CATEDU **Rover marciano con Arduinoblocks** el tipo de proyecto es para <span style="color: #e03e2d;">**ESP8266 / NodeMCU**</span>
- En el caso de que estés con el kit de CATEDU **Arduino con Arduinoblocks** el tipo de proyecto es para <span style="color: #e03e2d;">**Arduino UNO**</span>
- En el caso de que estés con el kit de CATEDU **STEAMAKERSBLOCKS en el aula** <span style="text-decoration: underline;">tienes dos opciones </span>totalmente válidas: 
    - <span style="color: #e03e2d;">**ArduinoUno**</span>
    - <span style="color: #e03e2d;">**ArduinoUno + Imagina TdR STEAM**</span>
- <span style="color: #000000;">En el caso de que estés con el kit de CATEDU  **ESP32 en el aula** <span style="text-decoration: underline;">tienes dos opciones</span> totalmente válidas:</span>
    - <span style="color: #ba372a;">**ESP32 STEAMakers**</span>
    - <span style="color: #ba372a;">**ESP32 STEMakers + Imagina TdR STEAM**</span>
- <span style="color: #000000;">En el caso de que estés con el kit de CATEDU  **SMARTHOME ESP32** <span style="text-decoration: underline;">tienes que elegir</span>:</span>
    - <span style="color: #ba372a;">**ESP32 STEAMakers**</span>
- 

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

<p class="callout danger">**ATENCIÓN** luego **NO** se puede cambiar. Es decir, un proyecto realizado para un tipo de placa, no se puede cambiar a otro tipo de placa (la razón es simpe: las instrucciones cambian)</p>

Luego el nombre y el resto de campos es optativo pero **importante y buena costumbre** rellenarlos, sobre todo si el proyecto lo **compartimos**:

- Descripción
- Componentes
- Comentarios

#### **<span style="color: #e03e2d;">Área de programación del proyecto</span>**

Este es el área sobre el que se trabaja en Arduinoblocks. En esta área arrastraremos y colocaremos los bloques que vamos a utilizar para crear nuestro programa.

En el área de trabajo hay un Zoom (2) para ampliar o reducir la imagen, un icono para centrar  
(1) y un icono donde podremos borrar los bloques que no utilicemos (3).

[![2022-04-13 19_02_05-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-19-02-05-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-19-02-05-proyecto-00-conocemos-arduino-pdf-google-drive.png)

<p class="callout info">*Adaptado de [este enlace.](https://drive.google.com/file/d/1fRIZWhedmk2-lMZ7EeTXg5NjnBKDyCnN/view) José Andrés Echevarría @cantabRobots CC-BY-NC-SA*</p>

Las principales secciones del área de programación son las siguientes :

[![2022-04-13 19_03_07-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-19-03-07-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-19-03-07-proyecto-00-conocemos-arduino-pdf-google-drive.png)

<p class="callout info">*Adaptado de [este enlace.](https://drive.google.com/file/d/1fRIZWhedmk2-lMZ7EeTXg5NjnBKDyCnN/view) José Andrés Echevarría @cantabRobots CC-BY-NC-SA*</p>

#### **<span style="color: #e03e2d;">*Ver el código*</span>**

**ArduinoBlocks** genera el código de Arduino a partir de los bloques. El programa se puede compilar y subir directamente a la placa Arduino gracias a la aplicación **ArduinoBlocks-Connector**, sin embargo si deseamos ver o descargar el código podemos realizarlo desde el área de bloques.

[![2022-04-13 19_05_37-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-13-19-05-37-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-13-19-05-37-proyecto-00-conocemos-arduino-pdf-google-drive.png)

<p class="callout info">*Adaptado de [este enlace.](https://drive.google.com/file/d/1fRIZWhedmk2-lMZ7EeTXg5NjnBKDyCnN/view) José Andrés Echevarría @cantabRobots CC-BY-NC-SA*</p>

<p class="callout success">Siempre, desde un **lenguaje de programación en bloques** podemos obtener su equivalente a **Código de Arduino IDE (**de hecho es lo que hacen los programas), y luego con las funciones de **Código de Arduino IDE** el software lo pasa a **lenguaje máquina** que es la que se graba el Arduino, **pero no al revés** es decir, no existen programas que dado un código máquina o código Arduino IDE lo pasen a bloques gráficos, (igual que no hay programas que lean el código máquina que hay grabado en un Arduino y lo pasen a código Arduino IDE). Esto no es del todo 100% verdadero pues la Ingeniería inversa en informática trata pues de eso: obtener la fuente aunque sea parcial, pues si obtienes el código legible, puedes alterar lo que quieras.  
Cuando compras un programa comercial, te dan el lenguaje máquina ilegible. Mientras que los programas de software libre se publica el código fuente legible para que todo el mundo pueda mejorarlo.</p>

Por ejemplo en la siguiente figura, el programa gráfico **mBlock** que se utiliza en Arduino, mBot, etc... pasa sus instrucciones de lenguaje de programación de bloques parecido a Scratch a lenguaje de **Código de Arduino IDE** y Arduino IDE graba instrucciones binarias de **lenguaje máquina** al Arduino.

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

**¡¡A disfrutar!!**   
Consejo: Te recomendamos visitar el canal de Youtube de Arduinoblocks [https://www.youtube.com/c/ArduinoBlocks](https://www.youtube.com/c/ArduinoBlocks)

# Intermitente

Nuestro primer programa que vamos a hacer es un intermitente en D4

> **tip** ¿Por qué con D4 y no con otro? Porque D4 tiene un led integrado en la placa, también D0.

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

> **danger**
> 
> ## ATENCIÓN
> 
> Estos leds van al reves, (configuración [pop-down](https://catedu.github.io/programa-arduino-mediante-codigo/resistencias_pullup_y_pulldown.html)) luego **para encender el led, D4 tiene que estar a nivel bajo**, y al revés para apagarlo, D4 en nivel alto.

El programa es muy sencillo y lo completamos que se pueda visualizar por la salida puerto serie, por eso al iniciar ponemos el puerto serie a 9600 baudios.

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

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) y en **Cónsola** podemos ver el contenido del puerto serie.

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

# ¿Qué es Arduino?

{{@2936}}

# Software del Arduino

{{@7552}}

# Sensores

{{@7009}}

# Sensores del rover Arduino

La ventaja de ARDUINOBLOCKS es que tiene ya incorporado una cantidad de bloques con sus librerías y funciones integradas por lo que el alumno no tiene que pelear con códigos y situaciones especiales, simplemente arrastrar el bloque y funcionar:

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

## Probando el sensor LDR.

Vamos a probar este sensor que está conectado en una entrada analógica, para ello simplemente que escriba su valor en el puerto, y veremos cómo va cambiando.

Es recomendable para la lectura de los sensores, crear variables que almacenen los valores leídos, para luego utilizar estos valores:

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

El siguiente código lee el sensor cada 2 seg. y lo vemos por el puerto serie. Podemos comprobar que **cuanto más luz, la lectura es menor.**

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

Guardamos el proyecto, lo subimos al Arduino y pulsamos en consola para ver cómo cambia los valores.

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

## Probando el sensor DHT22.

Vamos a probar este sensor, que mide a la vez temperatura y humedad. Con el bloque correspondiente, [nos ahorramos bastante código](https://catedu.github.io/programa-arduino-mediante-codigo/control_de_temperatura_y_humedad.html).

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

## Probando el sensor Hall.

Este sensor tiene también su bloque :

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

Podemos construir un programa análogo al anterior y veremos que su salida es simplemente 0 o 1 depende si acercamos o no un imán.

# Actuadores y otras salidas

{{@7010}}

# Motores en el rover Arduino

Los motores **derechos** se gobiernan con la siguiente instrucción :

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

- Activando el pin D1 encendemos los motores
- El pin D3 en ON van hacia delante, si queremos que vayan hacia atrás, ponemos D3 en OFF
- El valor PWM del pin D1 es la potencia que transferimos al motor, puede ser desde 0 hasta 1023

Recomendamos leer [esta página](https://catedu.github.io/programa-arduino-mediante-codigo/un_caso_especial_seales_pwm.html) sobre el significado de las salidas PWM.

Para los motores **izquierdos** se gobiernan con la siguiente instrucción :

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

- Activando el pin D2 encendemos los motores
- El pin D4 en ON van hacia delante, si queremos que vayan hacia atrás, ponemos D4 en OFF
- El valor PWM del pin D2 es la potencia que transferimos al motor, puede ser desde 0 hasta 1023.

Recomendamos ejecutar estas instrucciones y jugar con estos valores para ver si están bien conectados los motores :

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

# 3 BLYNK

# Internet de las cosas IoT

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

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

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

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

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

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

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

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

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

# Qué es Blynk

Bliyk pertenece al mundo del Internet de las cosas IoT que has visto anteriormente. Hay dos opciones en IoT.

- MQTT ocupa pocos datos pero es lento
- Instantaneo: Blynk Aquí utilizaremos Blynk para comunicarnos casi instantáneamente. Con el **Rover con Arduino** esto es imprescindible ¡¡no queremos que se estrelle!! con **TdR STEAM** no es tan imprescindible, pero si queremos interactuar con él (encender sus leds, hacer un pitido... ) con MQTT puede ser desesperante.

Blynk nos posibilita la conexión de un hardware conectado a Internet: Arduino, Raspberry, NodeMCU, ESP32 ... con la APP Blynk (hay dos APPs que vermos IoT y Legacy) que puedes poner diferentes elementos de control.

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

O sea, se necesitan tres cosas:

1. Un dispositivo para poner la **APP** por ejemplo un móvil Smartphone o una tableta, la APP hay dos tipos: 
    1. **Blynk IoT**
    2. **Blynk Legacy**
2. El dispositivo o **robot** que esté preparado para conectarse por Internet IoT Hardware 
    1. En el caso del Rover con Arduino es el NodeMCU
    2. En el caso de Arduinoblocks en el aula es un Arduino con el ESP01 o ESP8266
    3. En el caso de ESP32 en el aula es un ESP32 que tiene la wifi integrada.
3. Una conexión entre los dos 
    1. En el caso de **Blynk IoT** lo proporciona la empresa, con un servidor remoto en Internet
    2. En el caso de **Blynk Legacy** lo proporcionamos nosotros con una Raspberry que hará de servidor local en nuestra red local. (en los cursos de Catedu para que no te entretengas con esto, te proporcionamos un servidor nuestro).

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

# Blynk legacy y Blynk IoT

Antes de junio 2022 existía **Blynk legacy** en los servidores de [Blynk Inc](https://blynk.io/about) pero a partir de esa fecha, ha dejado de funcionar pasando a **Blynk IoT** ([ver noticia](https://blynk.io/blog/what-will-happen-to-the-legacy-blynk-platform)) esto crea varios inconvenientes:

#### <span style="color: rgb(22, 145, 121);">**VENTAJAS E INCONVENIENTES DE USAR BLYNK LEGACY**</span>

- Compatible con todas las placas en Arduinoblocks
- Muchos centros y proyectos utilizan en sus servidores locales **BLYNK LEGACY** por lo que ARDUINOBLOCKS mantendrá en el futuro su compatibilidad con Blynk legacy.
- La APP se instala en en Google Play (pero con riesgo que ya no dejen de ofertarlo) o fuera de Google Play
- El servidor hay dos opciones 
    - En tu centro hacer un **SERVIDOR LOCAL** lo más fácil es con una Raspberry, en el curso se enseña cómo hacerlo.
    - En un servidor de CATEDU SÓLO PARA LOS CURSOS DE ROBOTICA
- Al utilizar **BLYNK LEGACY** con tu propio servidor tiene la ventaja que no tiene ninguna limitación de widgets y tienes el control de los alumnos, pero si el servidor es local, no se puede utilizar por ejemplo desde casa.

#### <span style="color: rgb(22, 145, 121);">**VENTAJAS E INCONVENIENTES DE USAR BLYNK IoT**</span>

- **BLYNK IoT** tiene limitaciones, la mayoría de widgets son de pago pero los esenciales: switch, slider, led, label, gauge son gratuitos.
- Es una buena opción para que los alumnos puedan trabajar en casa con su robot, estamos a la espera que ARDUINOBLOCKS sea compatible con **BLYNK IoT ACTUALMENTE SÓLO ES POSIBLE CON LA PLACA ESP32 STEAMAKER** <span style="color: #e03e2d;">(OJO hay que tener Arduinoconnector actualizado)</span>

> Ya puedes probar los bloques para el nuevo Blynk IoT [@blynk\_app](https://twitter.com/blynk_app?ref_src=twsrc%5Etfw) con la placa [\#esp32steamakers](https://twitter.com/hashtag/esp32steamakers?src=hash&ref_src=twsrc%5Etfw) de [@Innovadidactic](https://twitter.com/Innovadidactic?ref_src=twsrc%5Etfw) y [@ArduinoBlocks](https://twitter.com/ArduinoBlocks?ref_src=twsrc%5Etfw) 🤖👩‍🎓🧑‍🎓📡🌐[\#iot](https://twitter.com/hashtag/iot?src=hash&ref_src=twsrc%5Etfw) [\#blynk](https://twitter.com/hashtag/blynk?src=hash&ref_src=twsrc%5Etfw) [\#esp32](https://twitter.com/hashtag/esp32?src=hash&ref_src=twsrc%5Etfw) [\#steamakers](https://twitter.com/hashtag/steamakers?src=hash&ref_src=twsrc%5Etfw) [\#steam](https://twitter.com/hashtag/steam?src=hash&ref_src=twsrc%5Etfw) [\#dashboard](https://twitter.com/hashtag/dashboard?src=hash&ref_src=twsrc%5Etfw) [pic.twitter.com/kzPNkSpbAV](https://t.co/kzPNkSpbAV)
> 
> — ArduinoBlocks (@ArduinoBlocks) [November 19, 2022](https://twitter.com/ArduinoBlocks/status/1593933520547749889?ref_src=twsrc%5Etfw)

# 4 BLYNK LEGACY

# Conseguir la App BLYNK LEGACY

La APP de **BLYNK LEGACY** no la encontramos en el buscador de Google Play de forma tradiccional, pues está sin mantenimiento, tenemos varias opciones para descargar la APP.

<p class="callout warning">**<span style="color: #e03e2d;">OJO</span> no confundir** Blynk (legacy) que es el que vamos a trabajar  
[![BLYNKEGACY.PNG](https://libros.catedu.es/uploads/images/gallery/2022-08/scaled-1680-/blynkegacy.PNG)](https://libros.catedu.es/uploads/images/gallery/2022-08/blynkegacy.PNG)   
con Bynk IoT que **sí** que lo encuentras en el buscador de Google Play  
[![BlynkIoTApp.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/blynkiotapp.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/blynkiotapp.png)</p>

#### <span style="color: #169179;">**OPCIÓN A Desde Google Play**</span>

En este enlace aún tiene la APP antigua, pero es de propiedad de Blynk Inc luego **no es de extrañar que desaparezca.**

[https://play.google.com/store/apps/details?id=cc.blynk](https://play.google.com/store/apps/details?id=cc.blynk)

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

#### **<span style="color: #169179;">OPCION B Fuera de Google Play</span>**

##### OPCIÓN B: ANTES DE LA INSTALACIÓN

**No nos tenemos que fiar de descargar APK de repositorios fuera de Google Play**, luego una vez descargado, pasamos el fichero por una página de Antivirus, por ejemplo

[https://www.virustotal.com/gui/home/upload](https://www.virustotal.com/gui/home/upload)

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

No nos tiene que dar ningún virus

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

Para instalarlo en tu móvil:

Primero, tenemos que llevar el fichero .apk a tu dispositivo, recomendamos usar email, por ejemplo enviándote a ti mismo un correo electrónico y lo consultas desde el móvil.

Segundo, tenemos que instalarlo y para ello hay que decirle que confiamos con apps instaladas fuera del repositorio oficial (Google Play), como depende las pantallas del modelo de tu móvil, puedes encontrar cualquier tutorial en internet cómo se hace pero prácticamente es llegar a la misma pantalla en seguridad/privacidad- permitir apps de orígenes desconocidos.

[![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)

Tercero instalarlo

Cuarto, deshacer el segundo paso

##### OPCIÓN B DESCARGA

 Puedes buscar en un navegador esta APP, encontraras varios sitios para descargarla, por ejemplo aquí:

- [https://blynk.uptodown.com/android/descargar ](https://blynk.uptodown.com/android/descargar)
- [https://blynk.en.uptodown.com/android/download/3921223](https://blynk.en.uptodown.com/android/download/3921223)
- Github: [https://github.com/BlynkMobile](https://github.com/BlynkMobile)
- [Desde este repositorio nuestro](https://drive.google.com/drive/folders/1nIsAxo20EsEgVHCtCFyMwFTeWUHxCrYF?usp=share_link)

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

# Crear cuentas

Antes se creaban cuentas en Blynk usando el correo electrónico: Cada usuario en la APP de Blynk podía crearse una cuenta, enviando un email. El servidor local Blynk puede enviar correos electrónicos si tiene configurado un fichero que se llama mail.properties y se envía el correo con las credenciales. No obstante esta opción de crear cuenta **ha desaparecido** de la APP (En CATEDU ya *barruntábamos* esto, que Blynk Inc al quitar crear nuevos usuarios es que pensaba quitar este servicio Blynk legacy).

No obstante, la creación de usuarios mediante emails era un problema pues menores de 16 años no pueden tener emails ni redes sociales, ni whatsapps (¿oigo risas?).

<p class="callout success">**En el curso vas a utilizar los servidores de CATEDU luego tendrás asignado 12 cuentas de alumnos + un profesor** Recibirás un email con los nombres de usuario y las contraseñas</p>

#### <span style="background-color: #ffffff; color: #169179;">**¿Y fuera del curso?** </span>

En este caso necesitarás tener un servidor Blynk legacy local que tal y como lo explicamos en los siguiente capítulos, montado en una Raspberry.

Entramos en la **carpeta de Blynk en nuestra Raspberry**, ya sea por VNC, o con una pantalla, teclado y ratón o por SSH y lo que hay que hacer es crear unos ficheros texto que se llamen **emailusuario.Blynk.user** los emails de los usuarios pueden ser inventados, por ejemplo en la figura puedes ver que en la raspberry hay dos usuarios <user1@yo.es> <user2@yo.es> luego los ficheros textos son **user1@yo.es.Blynk.user** y el otro es **user2@yo.es.Blynk.user**.

Entrando por VNC o pantalla, teclado y ratón:

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

Entrando por SSH

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

El contenido por ejemplo del fichero **user2@yo.es.Blynk.user** es:

> {"name":"**user2@yo.es**","email":"**user2@yo.es**","appName":"Blynk","region":"local","ip":"ip\_local\_raspberry","pass":"uffzlHwvejaeZZz2PzqmKuB22OACUDRLWvKEl7RCDQI=","lastModifiedTs":1663010486621,"lastLoggedIP":"192.168.1.73","lastLoggedAt":1635057921978,"profile":{},"isFacebookUser":false,"isSuperAdmin":false,"energy":99600,"id":"**user2@yo.es-Blynk**"}

Luego lo único que tienes que hacer para crear nuevos usuarios es **crear ficheros texto que se llamen <userx@yo.es.Blynk.user> y con contenido igual que el anterior pero cambiando el numero 2 por x** (si quieres respetar <userx@yo.es> pero puedes inventarte cualquier email ficticio)

<p class="callout info">**¿Por qué puede ser que el contenido de un fichero pueda tener más información o menos que otros?** Porque en esos ficheros txt tiene la información de los proyectos creados por el usuario </p>

<p class="callout info">**¿Entonces si el fichero <user1@yo.es.Blynk.user> tiene toda la información del usuario y todas sus proyectos... si ese usuario quiere llevarse sus proyectos a otro servidor Blynk sólo tiene que copiar y pegar es fichero texto?**  
Respuesta : SI , así de sencillo, ese fichero texto (por lo tanto libre de virus) tiene toda la información.</p>

<p class="callout info">**¿En la APP no se almacena ningún proyecto?**  
Ninguno, todos los proyectos están almacenados en esos ficheros txt  
si no hay conexión con el servidor, en la APP no aparece NADA</p>

<p class="callout info">**Vale, ya sé crear los nombres de usuarios ¿Y las contraseñas?**  
En teoría están encriptadas en el fichero texto, como puedes ver, sale uffzlHwvejaeZZz2PzqmKuB22OACUDRLWvKEl7RCDQI= eso significa *alcorisa*  
Pero tranquilo, luego veremos en el panel de control cómo se pueden poner las contraseñas sin encriptar</p>

+información [aquí](https://osoyoo.com/2021/10/24/how-to-create-new-user-account-in-local-blynk-legacy-server/)

# Entrando en el Blynk Legacy: El panel de control

##### <span style="color: #169179;">**Como entro en el panel de control**</span>

- <span style="color: #169179;">**En el curso de CATEDU**</span>
    - Habrás recibido un email con la URL para entrar en la administración web del Blynk Legacy, con usuario y contraseña
- **<span style="color: #169179;">Fuera del curso de CATEDU usando tu servidor local</span>**
    - Desde cualquier ordenador conectado en la misma red local que la raspberry, ejecutas en un navegador la siguiente dirección:
    - Si la IP de la Raspberry es 192.168.1.112 entonces entramos en:
    - [https://192.168.1.112:9443/admin](https://192.168.1.112:9443/admin)

##### <span style="color: #169179;">**Vale, ya estoy ¿y ahora qué?**</span>

Seguramente te saldrá la siguiente advertencia por el certificado SSL, dale a **Configuración avanzada** y luego a **Acceder a (la IP del servidor Blynk Legacy) sitio no seguro**

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

Luego entramos con el usuario y contraseña que nos han proporcionado

##### <span style="color: #169179;">**Cambiando las contraseñas de los alumnos**</span>

Y podemos ver los usuarios creados con los ficheros textos mencionados anteriormente

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

Entrando en un usuario PODEMOS GENERARLE UNA CONTRASEÑA, por supuesto la pones normal, sin encriptar  
También puedes borrar el usuario si no nos interesa este usuario.

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

# En la APP

##### **<span style="color: #169179;">Conectar con el nuevo usuario</span>**

Entramos en la APP de Blynk que hemos visto anteriormente como descargarla e instalara y entramos en **Log In**   
[![appblynk1.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/appblynk1.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/appblynk1.jpg)

Y ponemos el nombre de usuario que hemos creado anteriormente, y la contraseña, la que hayamos definido en el panel de control  
  
<span style="color: #e03e2d;">**IMPORTANTE**</span>: Entra en **CUSTOM** y pon **LA DIRECCIÓN IP DEL SERVIDOR BLYNK LEGACY**

- **Si es dentro del curso de CATEDU habrás recibido un email de las IPs y de los puertos que hay que poner en esta APP de Blynk Legacy**
- **Si es fuera del curso, la IP** DE LA RASPBERRY, O SEA DEL SERVIDOR LOCAL BLYNK y **puerto 9443**

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

##### <span style="color: #169179;">**Crear un nuevo proyecto**</span>

Podemos ver los proyectos que hay ya almacenados, vamos a crear un nuevo proyecto:

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

Nos preguntará por el **DEVICE:**

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

- En **Arduinoblocks en el Aula**, la placa es el TDR STEAM colocado en un Arduino con el ESP01 conectado, luego **DEVICE <span style="color: #e03e2d;">Arduino Uno</span> CONNECTION TYPE <span style="color: #e03e2d;">Wifi</span>**
- En **Rover con Arduino**, la placa es un NodeMCU v2, luego **DEVICE <span style="color: #e03e2d;">NodeMCU</span> CONNECTION TYPE <span style="color: #e03e2d;">Wifi</span>**
- En **ESP32 en el Aula**, la placa es un ESP32 con el Imagina TDR STEAM, luego **DEVICE <span style="color: #e03e2d;">ESP32 DevBoard</span> CONNECTION TYPE <span style="color: #e03e2d;">Wifi</span>**

Empieza un nuevo proyecto, tienes un montón de energía y widgets para hacerlo:

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

**Crea un nuevo proyecto**, y así se crea en el servidor Blynk local un **TOKEN** que ahora veremos qué es

Aquí tienes la captura de un proyecto o dashboard creado para el kit Imagina TDR Steam

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

# Poner el TOKEN en ARDUINOBLOCKS

##### <span style="color: #169179;"><span style="color: #169179;"><span style="font-size: 19.6px;">**¿Cómo**</span></span> **conseguir el TOKEN?**</span>

##### <span style="color: #169179;">**OPCION A: QUE LO HAGA EL ALUMNO En la APP**</span>

<span style="color: #000000;">Es la opción más sencilla, entrar en Devices **pulsar en el Token y se copiará en el portapapeles** del móvil, luego ir a cualquier aplicación para poder enviarla al PC (email, whatsapp...) y pegarla en Arduinoblocks en la instrucción que luego veremos.</span>

<span style="color: #000000;">[![devices-app-blynk.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/devices-app-blynk.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/devices-app-blynk.png)</span>

##### <span style="color: #169179;">**OPCION B: QUE LO HAGA EL PROFESOR En el panel de control**</span>

Entramos en el panel de control del servidor Blynk y podemos ver en los usuarios creados los tokens

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

Entrando en un usuario PODEMOS VER SUS PROYECTOS Y LOS TOKENS

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

<p class="callout danger">**RECUERDA: UN PROYECTO UN TOKEN**</p>

#### <span style="color: #169179;">**¿Qué se hace con ese TOKEN? Se pone en ARDUINOBLOCKS:**</span>

Entramos en ArduinoBlocks y vamos al bloque de comunicaciones IoT - Blynk legacy

<p class="callout danger">**ATENCIÓN: ARDUINOBLOCKS CONNECTOR tiene que estar actualizado, al menos v5 (octubre 2022)**</p>

Tenemos que poner los datos de la **IP servidor BLYNK LOCAL**, y el **TOKEN** del proyecto

- **DENTRO DEL CURSO CATEDU** Habrás recibido un email con las IPs y los puertos a poner en Arduinobloks
- **SI ES EN TU SERVIDOR BLYNK LOCAL** Hay que poner la IP de la Raspberry o tu servidor local y **EL PUERTO 8080**

En el caso de que es un proyecto con **ARDUINO** o **TDR-STEAM- ARDUINO** con **ESP01** sale :

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

En el caso de sea un proyecto con **NodeMCU o ESP32** como en el curso del Rover con Arduino o IoT en el aula sale :

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

# Endender LED

Vamos a empezar a hacer algo....  
  
Si antes [hicimos un intermitente por D4](https://catedu.github.io/Rover-arduino/capitulo-dos/intermitente.html), ahora vamos a encender el LED en D0:

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

Y el servidor BLYNK hará de puente entre nuestra App y el NodeMCU :

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

### Primer programa con Blynk: Encender D0 : 1 Conseguir el Token

Empezamos en la APP Blynk creamos un nuevo proyecto:

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

En la siguiente pantalla pregunta por el dispositivo, le decimos ESP8266 y le ponemos un nombre:

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

Y nos dice que el **Token** nos lo ha enviado por correo electrónico **MENTIRA**, el token lo vemos tal y como hemos visto anteriormente.

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

<p class="callout warning">Recuerda : **Un proyecto en BLYNK = Un Token**</p>

### Primer programa con Blynk: Encender D0 : 2 Poner los controles

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

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

Seleccionamos el botón

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

Nos aparece el botón

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

Pulsamos sobre él para entrar en sus propiedades y cambiamos que vaya de 1 a 0 pues recuerda que este pin va al revés RECUERDA QUE EL NODEMCU TRABAJA CON **LOGICA INVERSA**

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

Pulsamos en PIN y le decimos que sea el **GP16**

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

##### <span style="color: #169179;">**¿Pero no era el D0? ¿Qué es eso del GP16?**</span>

**La nomenclatura de los pines cambia, el D0 es el GP16, viene de GPIO General Port Input Output. El D4 es el GP2** ¿Por qué los fabricantes nos lían? 🤔

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

##### **<span style="color: #169179;">Primer programa con Blynk: Encender D0 : 3 ARDUINOBLOCKS</span>**

Ahora le tenemos que decir a nuestro NodeMCU la configuración de la Wifi, y el Token que hemos recibido, ¿cómo? muy fácil, con ARDUINOBLOCKS

Abrimos un proyecto y ponemos esta instrucción :

<p class="callout warning">EL TOKEN ES EL QUE HEMOS CONSEGUIDO</p>

Novedad: las capturas a veces cambian, ahora el nombre de la wifi y la clave está en el mismo bloque de Blynk Iniciar

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

Donde :

- **WIFI SSID** el nombre de la Wifi donde queremos que se conecte nuestro rover
- **WIFI CLAVE** la contraseña de la WIFI
- **IP Servidor** PONEMOS LA IP del servidor Blynk Legacy. 
    - En el curso CATEDU habrás recibido un email con las IPs y el puerto
    - Fuera del curso, tendrás que poner la IP local de tu servidor y el puerto 8080
- **Codigo Auth** es el TOKEN que has conseguido

##### **<span style="color: #169179;">¿Nada más?</span>**

**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)

![](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)

 Luego al botón:

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

Y podemos ver cómo se enciende y apaga el led D0

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

<p class="callout info">Recuerda : Un proyecto en BLYNK = Un Token</p>

<p class="callout info">**RETO: AHORA CON D4**</p>

# Encender gradualmente LED

Para ello vamos a incorporar un Slider

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

Y de propiedades que vaya al GP2 y que vaya al revés de 1023 a 0

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

**El programa en ARDUINOBLOCKS es el mismo !!!** no hace falta tocar nada de lo visto anteriormente !!! O sea el nombre de la wifi, su contraseña, la IP del servidor Blynk Legaci, y el token, que es el mismo pues estamos en el mismo proyecto o dashboard.

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

# Medir la luz del LDR

Ahora añadimos otro control **Gauge**

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

Elegimos de PIN el analógico (sólo hay uno). [Recuerda](https://catedu.github.io/Rover-arduino/capitulo-dos/sensores.html) que el LDR está conectado al pin analógico.

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

Y como va al revés, vamos a poner el medidor al revés: de 1023 a 0

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

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--3" src="//www.youtube.com/embed/n6m_8mGBwXY" width="560"></iframe>

##### <span style="color: #169179;">**¿Y en Arduinoblocks?**</span>

Es el mismo !!!! no hay que tocar nada !!!

# Medir Temperatura y Humedad con el DHT22

Este caso es distinto, pues

- En el **Rover marciano con Arduino** el DHT22 está conectado al pin D5 digital del NodeMCU
- En el **Arduinobloks en el aula**, el DHT11 de la placa Imagina TDR Steam está conectado al pin D4 digital del Arduino
- En el **IoT en el Aula**  el DHT11 de la placa Imagina TDR Steam está conectado al pin D4 digital del ESP32

<p class="callout danger">Pero los dos miden dos variables **Temperatura** Y **Humedad**</p>

<p class="callout warning">**🤔😳¿Cómo hacemos para medir dos variables en un sensor que está conectado a un sólo PIN?🤔😳**</p>

<span style="color: #169179;">**Solución PINES VIRTUALES:** </span>si, has leído bien, vamos a utilizar **pines virtuales**.

##### <span style="color: #169179;">**En ARDUINOBLOCKS**</span>

Vamos a ARDUINOBLOCKS y establecemos dos pines virtuales, uno para la temperatura y otro para la humedad, arbitrariamente he puesto V2 y V3 pero puede ser cualquiera.

- Para el kit de **ROVER MARCIANO CON ARDUINO** poner pin **D5** 
    - Si el sensor es AZUL entonces DHT11 si el sensor es BLANCO entonces DHT22

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

- Para el kit que tenga la placa **TDR STEAM IMAGINA** es decir los cursos **ARDUINO BLOCKS EN EL AULA y ESP32 EN EL AULA** poner pin **D4** 
    - Si el sensor es AZUL entonces DHT11 si el sensor es BLANCO entonces DHT22

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

<p class="callout warning">**Fíjate** que hay dos maneras de programar estos eventos:  
- en el primero, utilizamos un bucle propio de Blynk que simplemente cada segundo lee el sensor y los almacenan los pines virtuales V2 y V3  
- en el segundo no se ha utilizado ese bucle propio de Blynk sino simplemente dentro de Bucle hemos puesto otro bucle que se ejecuta cada 2 segundos, y dentro una funciona que se llama LECTURAS. dentro de lecturas esta la lectura de los pines virtuales V2 y V3  
  
Da igual. Nosotros tenemos preferencia por el segundo método, nos parece más elegante y más controlable.</p>

##### <span style="color: #169179;">**En la APP de Blynk**</span>

Y en Blynk incorporamos un Gauge que sea al PIN VIRTUAL V2.

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

Modificamos también los límites, pues por defecto sale 0 a 1023 y se vería muy bajo la temperatura, ponemos -10 a 30. Si es para el Rover marciano de Arduino, allí se puede llegar a -50ºC y si es para el TDR Steam será en Aragón, el récord lo tiene [Fuentes Claras con -30ºC.](https://www.youtube.com/watch?v=DgT1THxQ89w)

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

Para la humedad hacemos lo mismo:

- Pin virtual V3
- Límites 0% a 100%

Resultado :

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

# Medir el campo magnético

El programa en ARDUINOBLOCKS es: (no cambiamos el bloque iniciar con el nombre de la wifi, su contraseña, la IP del servidor Blynk Legacy y el Token pues estamos añadiendo Gadgets al mismo proyecto o dashboard :

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

Y el programa en Blynk

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

Ten en cuenta que va al revés, cuando hay un imán, se pone a 0 **NODE MCU TRABAJA CON LÓGICA INVERSA**

El resultado es (acercando un imán):

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

## Reto:

- Escribir un programa que encienda el pin D4 cuando se acerque un imán

# A por los motores

Cambiamos nuestro programa de ARDUINOBLOCKS utilizando unos pines virtuales para controlar los motores, arbitrariamente le hemos puesto V1 y V2 de tal manera que cuando se reciba un valor de estos pines virtuales, fijan la potencia de los motores:

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

Ponemos dos sliders verticales

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

Y configuramos uno para V5 y otro para V6:

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

<p class="callout warning">**<span style="background-color: #fee3d3; color: #6a2802;">No te olvides de pulsar el botón de la Shield para que le de energía a los Motores</span>**</p>

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

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--4" src="//www.youtube.com/embed/fhz5tYRrmAk" width="560"></iframe>

# A divertirnos con un Joystick

Este elemento es muy gamificador y nos posibilitará ir hacia atrás

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

Hay que tener en cuenta que los valores del Joystick son los siguientes :

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

Luego la programación en Arduinoblocks es la siguiente :

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

# Proyecto final

Vamos a juntarlo todo :

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--4" src="//www.youtube.com/embed/g1jwdec86aA" width="560"></iframe>

## **<span style="color: #169179;">En Arduinoblocks</span>**

Creamos una función **SENSORES** que lee los tres sensores digitales en tres pines virtuales

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

Unas funciones **adelante**, **atrás derecha** e **izquierda** (he multiplicado el valor de la potencia por dos para que sea más sensible el Joystick)

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

Configuramos Blynk Legacy para que nos lea nuestra Wifi, nuestro Token la IP de nuestro servidor Blynk Legacy y si se recibe los valores V0 y V1 del Joystick que vayan a las variables X e Y

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

Y finalmente el programa principal

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

El proyecto es público y lo tienes en este enlace (hay que estar logueado en Arduinoblocks)

[http://www.arduinoblocks.com/web/project/486534](http://www.arduinoblocks.com/web/project/486534)

## **<span style="color: #169179;">La APP Blynk</span>**

Ponemos los siguiente controles

1. El Joystick con los pines virtuales V0 y V1
2. El Gauge de Temperatura a V2
3. El Gauge de Humedad a V3
4. El Gauge de efecto Hall a V4
5. El Gauge de Luz al analógico
6. Un botón al D4

El panel está completo :

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

# 5 CÓMO MONTAR UN SERVIDOR BLYNK LEGACY LOCAL

# Servidor local Blynk

Ya que Blynk Inc ha dejado sin soporte a **Blynk legacy**, tenemos que conseguir un **SERVIDOR BLYNK LOCAL** que haga de puente entre nuestro robot y nuestra App.

Se puede hacer en:

- Una **Raspberry** fácil, barato y poco consumo.
- En un ordenador con Windows
- En un ordenador con Linux

<p class="callout danger">EL CURSO DE CATEDU FACILITA UN SERVIDOR BLYNK en Internet. ES DECIR NO ES LOCAL</p>

<p class="callout success">SI TU CENTRO ES UN **CENTRO VITALINUX** seguramente tendrá un servidor local. Ponte en contacto con nosotros soportecatedu@educa.aragon.es y te lo instalamos remotamente.</p>

## Desventajas de usar un servidor local

Nuestro equipo robot y nuestro móvil **tiene que estar en la misma red local** esto imposibilita que el alumno pueda trabajar en casa, necesita el servidor local.

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

## Energía y control

Los alumnos tienen TODA la energía para hacer sus proyectos por lo tanto pueden usar tantos gadgets como quieran

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

Además de tener control vía web de todos usuarios, pues tú eres el administrador.

# 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 la Raspberry con el Blynk local, sólo tienes que conectarlo a tu red y ponerle una IP fija

{{@4309}}

# Raspberry: Qué hay que hacer para empezar

Lo primero que tenemos que conseguir es:

- Tener una Raspberry con el sistema operativo propio de la raspberry instalado, antes se llamaba Raspbian, ahora [Raspberry Pi OS](https://www.raspberrypi.com/software/)
- Comunicarnos con la Raspberry por comandos SSH
- Una vez hecho esto que es lo básico instalaremos el servidor Blynk

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

Ahora vamos a ver unas páginas para

- Instalar un **sistema operativo** en una Raspberry
- Una vez instalado hay que **conectarlo a la red wifi** y **ponerle una IP FIJA**
- Para **comunicarse vía comandos SSH**, aconsejamos hacerlo de forma remota, pues lo contrario implica tener siempre una pantalla, teclado y ratón conectado en la Rasperry

<p class="callout info">**¿Qué Rasberry habría que comprar?**  
Aconsejamos una que tenga la Wi-fi incorporada, nosotros hemos hecho pruebas con la Raspberry Pi 3B+ y con la Raspberry Pi4 y no encontramos diferencias de velocidad para estos propósitos de robótica, luego por la mitad de precio aconsejamos la [Raspberry Pi 3B](https://www.raspberrypi.com/products/raspberry-pi-3-model-b-plus/)</p>

# Rasbperry: Poner un Sistema Operativo

{{@4308}}

# Raspberry: Conectarlo a la red

{{@4309}}

# Raspbery: Conexión SSH

{{@4310}}

# Raspberry: Cambiar usuario y contraseña

{{@4311}}

# Raspberry: Apagar

{{@4312}}

# Raspberry VNC

{{@4313}}

# Raspberry: Instalar Java 8

Una vez que tenemos la Raspberry funcionando y accesible por SSH o por VNC es el momento de instalar el servidor Blynk, primero hay que, para instalar Blynk, se necesita la **versión 8 de Java**

Seguimos las instrucciones de[ https://github.com/Peterkn2001/blynk-server#blynk-server](https://github.com/Peterkn2001/blynk-server#blynk-server)

Entramos en la ventana de comandos SSH y ejecutamos las siguientes órdenes, si en algún momento nos pide confirmación \[Y/n\] es porque faltan descargar paquetes o confirmación de instalación, por lo tanto aceptamos.

Con esta orden busca las actualizaciones

**sudo update**

y ya ejecutamosque instala la versión 8 de java (curiosamente no funciona con la versión 64 bits de Raspberry OS sino con la de 32 bits)

**sudo apt install openjdk-8-jdk**

Por último una vez finalizado, comprobamos la versión que coge por defecto

**java –version**

Tiene que salir Openjdk version 1.8.0 etc...

## Si no sale esa versión...

Suele pasar que tenga ya instalado la versión 11, tenemos que obligar a que sea la 8 por defecto, para ello ejecutamos

**sudo update-alternatives --config java**

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

Si seleccionamos el 2 nos lo pondrá como por defecto (sale con un (\*). Podemos comprobar que ya nos sale la versión con la orden :

**java –version**

Pero esto no nos sirve, pues al reiniciar la Raspberry volverá a la versión 11.

Para ponerlo por defecto, edita el fichero *environment*

**sudo nano /etc/environment**

Y si en la orden **sudo update-alternatives --config java** salía que la carpeta donde está la versión 8 es */usr/lib/jvm/java-8-openjdk-armhf/jre/bin/java* luego tenemos que poner en el fichero *environment* :

**JAVA\_HOME="/usr/lib/jvm/java-8-openjdk-armhf/jre/bin/java"**

Guardar, reiniciar

**sudo reboot**

Y comprueba

**java –version**

Y tiene que salir :

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

## Para más cosas

Por ejemplo, desinstalarlo, volver a la 11, etc.. visitar esta página : [https://phoenixnap.com/kb/install-java-raspberry-pi](https://phoenixnap.com/kb/install-java-raspberry-pi)

# Raspberry: Instalar y ejecutar el servidor Blynk local

#### <span style="color: #169179;">**1 Descarga Blynk**</span>

Crea una carpeta en tu directorio home, por ejemplo Blynk

**mkdir Blynk**

Y descarga Blynk :

 wget "https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar"

El enlace [https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar](https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar) conviene actualizarlo, recomendamos visitar la página [https://github.com/Peterkn2001/blynk-server#blynk-server](https://github.com/Peterkn2001/blynk-server#blynk-server) y coger la última versión de aquí [![blynkserver.jpg](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/blynkserver.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-09/blynkserver.jpg)

#### <span style="color: #169179;">**2 Configurar server.properties**</span>

Necesitamos crear un fichero de configuración para las diferentes opciones que queremos en nuestro servidor Blynk.

Entra en la carpeta creada Blynk y crea el fichero *server.properties*.

**cd Blynk**

**sudo nano server.properties**

A continuación se muestra un posible contenido de server.properties.

```python
initial.energy=1000000
allow.reading.widget.without.active.app=false
user.message.quota.limit=100
logs.folder=./logs
user.dashboard.max.limit=100
lcd.strings.pool.size=6
server.ssl.key=./server_embedded.key
webhooks.response.size.limit=96
hardware.mqtt.port=8440
table.rows.pool.size=100
terminal.strings.pool.size=25
admin.email=admin@blynk.cc
admin.rootPath=/admin
user.widget.max.size.limit=20
listen.address=
blocking.processor.thread.pool.limit=6
stats.print.worker.period=60000
enable.db=false
force.port.80.for.csv=false
enable.raw.db.data.store=true
restore.host=blynk-cloud.com
csv.export.data.points.max=43200
restore=false
user.profile.max.size=256
allow.store.ip=true
allowed.administrator.ips=0.0.0.0/0,::/0
net.interface=eth
webhooks.frequency.user.quota.limit=1000
http.port=8080
web.request.max.size=524288
user.devices.limit=50
async.logger.ring.buffer.size=2048
user.tags.limit=100
server.ssl.key.pass=
admin.pass=admin
hard.socket.idle.timeout=10
product.name=Blynk
data.folder=/Path
map.strings.pool.size=25
profile.save.worker.period=60000
https.port=9443
log.level=info
server.ssl.cert=./server_embedded.crt
force.port.80.for.redirect=true
notifications.queue.limit=2000
notifications.frequency.user.quota.limit=5
server.host=192.168.137.1
app.ssl.port=8443
hardware.default.port=8442
hardware.ssl.port=8441
hardware.mqtt.port=8440

```

Para la explicación de cada línea, aconsejo consultar esta [página](https://www.sysadminsdecuba.com/2020/04/instalando-blynk-server-localmente/) en el apartado *Configuración avanzada del servidor local*

#### <span style="color: #169179;">**3 Ejecutar el servidor Blynk local**</span>

En la Raspberry por comandos SSH, entramos en la carpeta donde hemos creado el servidor Blynk

**cd Blynk**

Y ejecutamos el servidor Blynk instalado, pero que cargue la configuración de server.properties que en nuestro caso como el la Raspberry el usuario se llama catedu la carpeta es catedu:

**java -jar server-0.41.16-java8.jar -dataFolder /home/catedu/Blynk -serverConfig /home/catedu/Blynk/server.properties**

Curiosamente la primera vez que ejecutas esta instrucción te sale los datos del usuario <admin@blynk.cc> **y su contraseña sin encriptar** que por defecto es admin. Si no has tomado nota, ejecutar la instrucción anterior no sirve de nada pues ya ha creado el fichero texto de este usuario.

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

La única forma de que te vuelva a mostrar la contraseña es borrar el fichero texto y ejecutar otra vez la orden java -jar server....

#### <span style="color: #169179;">**4 Que la orden de ejecución se haga automáticamente cada vez que se reinicie la Raspberry**</span>

Para no repetir estos dos comandos cd Blynk y java -jar server-0.41.16-java8.jar -dataFolder /home/catedu/Blynk -serverConfig /home/catedu/Blynk/server.properties cada vez qye reiniciamos la Raspberry puedes generar un script para que lo ejecute automáticamente, puedes ver buenos tutoriales en Internet.

En internet puedes ver varios métodos:

**Método1** es entrar en /etc y editar el fichero rc.local y añadir esta línea

> java -jar server-0.41.16-java8.jar -dataFolder /home/catedu/Blynk -serverConfig /home/catedu/Blynk/server.properties &amp;

**Método 2** usar el comando **crontab -e** y poner al final la siguiente línea **@reboot java java -jar server-0.41.16-java8.jar -dataFolder /home/catedu/Blynk -serverConfig /home/catedu/Blynk/server.properties**

#### <span style="color: #169179;">**5 Probarlo**</span>

Si la IP de la Raspberry es 192.168.1.112 entonces entramos en:

[https://192.168.1.112:9443/admin](https://192.168.1.112:9443/admin)

##### **Vale, ya estoy ¿y ahora qué?**

Seguramente te saldrá la siguiente advertencia por el certificado SSL, dale a **Configuración avanzada** y luego a **Acceder a (la IP del servidor Blynk Legacy) sitio no seguro**

<div class="pointer-container" id="bkmrk-%C2%A0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-lyv4brj6.jpeg)

Si quieres generar certificados SSL propios para que no salga la anterior pantalla consulta [aquí](https://www.sysadminsdecuba.com/2020/04/instalando-blynk-server-localmente/)

Tienes que entrar con el usuario y contraseña fijada en **server.properties** :

```python
 # Default admin name and password. Will be created on initial server start
admin.email=admin@blynk.cc
admin.pass=admin
```

<p class="callout info">Si quieres cambiar la contraseña, tienes que hacerlo como un usuario normal en la página de administración tal y como hemos visto en el capítulo [Entrando en el Blynk local: El panel de control](https://libros.catedu.es/books/arduinoblocks-en-el-aula/page/entrando-en-el-blynk-local-el-panel-de-control)</p>

#### <span style="color: #169179;">**6 Para saber más :**</span>

- [https://github.com/Peterkn2001/blynk-server#blynk-server](https://github.com/Peterkn2001/blynk-server#blynk-server)
- [Intalación de Blynk : How to Install a Blynk Local Server on Raspberry Pi](https://circuitdigest.com/microcontroller-projects/how-to-install-a-blynk-local-server-on-raspberry-pi)
- [Configuración de server.properties.](https://diyprojects.io/blynk-how-to-install-a-private-local-server-on-raspberry-pi-3-unlimited-energy-test-wemos-dht22/#.YImMULUzY2y)

#### <span style="color: #169179;">**7 Para saber más : Configurar mail.properties**</span>

Este aparatado ya comentamos que no lo aconsejamos, pues los alumnos no suelen tener email y la APP ya no permite crear usuarios con email, pero si queremos que envíe los tokens por email, hay que crear este fichero para que el servidor envíe por email los tokens de los proyectos

Entra en la carpeta creada Blynk y crea el fichero *mail.properties*.

**cd Blynk**

**sudo nano mail.properties**

A continuación se muestra una muestra del posible contenido de mail.properties :

```python
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=Your EMAIL ID
mail.smtp.password=Password
```

Utilizando **Your EMAIL ID** y **Password** los datos de una cuenta de gmail tuya. En esa cuenta tienes que permitir accesos no seguros. Aquí se muestra dónde está en la pantalla de configuración de Gmail :

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

Para saber más

- [Configuración mail](https://github.com/blynkkk/blynk-server#requirements)

# En Windows Instalar Java 11

Entramos en la web de Oracle - Java - Technologies - JavaSE y descargamos e instalamos el servidor Java 11, si nuestro ordenador no es viejo, seguro que soportará la versión 64

[https://www.oracle.com/es/java/technologies/javase/jdk11-archive-downloads.html](https://www.oracle.com/es/java/technologies/javase/jdk11-archive-downloads.html)

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

<p class="callout info">Seguramente para la descarga Oracle nos pide que nos registremos. No entendemos el por qué pero efectivamente es necesario proporcionar un email y a ese email envía un enlace para el registro, Una vez registrado ya permite la descarga</p>

Instalamos el servidor Java descargado.

Para que Windows encuentre la ruta del Java instalado cuando ejecutemos comandos, le tenemos que decir en qué camino está la carpeta del java instalado está. Para ello vamos a **C -&gt; Archivos de programa -&gt; Java -&gt; Jdk11...-&gt; carpeta bin** y copiamos la ruta :

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

Nos vamos al sistema

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

Y configuración avanzada del sistema - variables de entorno- path - editar - nueva y pegamos la ruta que hemos copiado anteriormente

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

# En Windows Instalar Blynk local

Descargamos el servidor Blynk server desde

[https://github.com/blynkkk/blynk-server/releases](https://github.com/blynkkk/blynk-server/releases)

o desde [https://drive.google.com/file/d/1nPZxn-9Q9q0ceUhCiZGd4WRC1c8pufEQ/view?usp=sharing](https://drive.google.com/file/d/1nPZxn-9Q9q0ceUhCiZGd4WRC1c8pufEQ/view?usp=sharing)

y lo pegamos en una carpeta, por ejemplo en c:\\Blynk\_server

Creamos **mail.properties y server.properties** como ficheros nuevos, los editamos con un procesador de texto y pegamos el código que hemos explicado [aquí ](https://libros.catedu.es/books/rover-marciano-con-arduinoblocks-e-internet-de-las-cosas-iot/page/43-blynk)

[![blynk-server-windows.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/blynk-server-windows.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/blynk-server-windows.png)

<p class="callout warning">Ojo: Ten en cuenta que Windows le gusta colocar sus propias extensiones. Si editas un fichero con un procesador de textos, por ejemplo el bloc de notas, le añadirá .txt, si lo editas con Word le añadirá la extensión .docx, tienes que asegurarte que no se añada ninguna extensión, que los nombres de los ficheros sean **mail.properties y server.properties** y no otros. Ten activo la visualización de las extensiones para asegurarte que windows no añada las suyas</p>

[![blynk-server-windows-2.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/blynk-server-windows-2.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/blynk-server-windows-2.png)

# En Windows Ejecutar Blynkserver

Entramos en comandos de windows como administrador

[![2022-09-01 20_07_49-.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/2022-09-01-20-07-49.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/2022-09-01-20-07-49.png)

Y ejecutamos esta instrucción

**java -jar server-0.41.17.jar -dataFolder /Path**

de esta manera se crean las carpetas logs y static que nos dicen los errores que podemos encontrar

La primera pantalla nos dirá el nombre la url, el nombre de usuario y la contraseña para entrar en el servidor blynk

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

# En Linux

Seguimos las instrucciones de [https://github.com/Peterkn2001/blynk-server#blynk-server](https://github.com/Peterkn2001/blynk-server#blynk-server)

Pero si tu centro tiene Vitalinux, ponte en contacto con nosotros <soportecatedu@educa.aragon.es> para instalar en un ordenador Vitalinux el servidor Blynk de forma local

# Créditos

Agradecimientos a :

CONSEJERÍA DE EDUCACIÓN Y FORMACIÓN PROFESIONAL DEL GOBIERNO DE CANTABRIA

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

Autoría

Javier Quintana (2021)

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)