# IoT-Wifi-Blynk

# ¿Qué es Blynk?

{{@6255}}

{{@5685}}

# Blynk legacy y Blynk IoT

{{@7053}}

{{@5685}}

# Conseguir la App BLYNK LEGACY

{{@7054}}

{{@5685}}

# Servidor local Blynk

{{@5143}}

{{@5685}}

# Crear cuentas

{{@5134}}

{{@5685}}

# Entrando en el Blynk local: El panel de control

{{@5147}}

{{@5685}}

# En la APP

{{@5148}}

{{@5685}}

# Poner el TOKEN en ARDUINOBLOCKS

{{@5149}}

{{@5685}}

# Primer programa: Encender los pines rojo y verde

Vamos a ver un primer programa de la APP al TDR STEAM

Una vez dentro del proyecto de la App aparece todo un panel si nada, añadimos controles apretando al + que hay en la parte superior

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

Seleccionamos el botón

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

Nos aparece el botón

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

Pulsamos sobre él para entrar en sus propiedades, le decimos que vaya de 0 a 1 (es decir que cuando se apriete, que envíe un 1) que sea tipo **switch** (no pulsador, sino interruptor), le ponemos un color **rojo** para indicar que es el led rojo, y como el TDR-STEAM el led rojo lo tiene en el D12 le decimos que el **pin** es **DIGITAL** y **D12**

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

Hacemos lo mismo con el **azul** pero **D13**

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

En Arduinoblocks dejamos el token tal y como hemos aprendido anteirormente

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

#### ¿Nada más?

<div class="pointer-container" id="bkmrk-%C2%A0-0"><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>**Nada más !!** así de sencillo. Le damos a **subir** (teniendo el programa Arduinoblocks conector minimizado, eso lo podemos ver enseguida pues detecta en que COM está conectado, en la figura sale COM5)

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

Vamos a la APP de BLYNK, Pulsamos al botón de **play** ▶ de arriba arriba y vemos el estado NO TIENE QUE APARECER UN PUNTO ROJO si aparece es que nuestra placa no está conectada

[![Blink-chivato.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/blink-chivato.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/blink-chivato.png)

Hay que tener algo de paciencia hasta que se comunica con la Raspberry, cuando no aparece el punto rojo, pulsamos en los botones y tienen que encenderse y apagarse correctamente los leds rojo y azul de nuestro TDR Steam

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

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

<div class="pointer-container" id="bkmrk-%C2%A0-3"><div class="pointer anim is-page-editable"><div class="input-group inline block"> </div></div></div><div class="pointer anim is-page-editable" id="bkmrk--6"></div>{{@5685}}

# Segundo programa RGB y el potenciómetro

#### **<span style="color: #169179;">LED RGB</span>**

En la APP de Blynk ponemos el gadget "Cebra"

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

Y lo configuramos según sus pines. El led RGB en el TDR Steam está conectado a los siguientes pines

- Red D6
- Green D9
- Blue D10

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

#### <span style="color: #169179;">**Potenciómetro**</span>

<span style="color: #000000;">El potenciómetro está conectado en A0 podemos insertar un gadget Label y lo configuramos como tal:</span>

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

<p class="callout success">**<span style="color: #000000;">¿En Arduinoblocks no hay que añadir nada?  
</span>**<span style="color: #000000;">Nada !!! cuando son gadgets que leen directamente de los pines (digitales o analógicos) NO HACE FALTA MÁS CÓDIGO que el de conectar el servidor Blynk</span></p>

<span style="color: #000000;">[![embedded-image-ikTcrZO3.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-iktcrzo3.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-iktcrzo3.jpeg)</span>

{{@5685}}

# Tercer programa Medir la luz del LDR

Nuestro segundo programa será al revés del TDR Steam a la APP

Ahora añadimos otro control **level H**

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

Elegimos de PIN el analógico, el LDR está conectado al pin analógico A1 y como el LDR aumenta según la *oscuridad* vamos a poner que vaya de 1023 en formato negro.

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

Sin modificar nada del programa de ARDUINOBLOCKS vamos a darle al PLAY y ¡¡ Y FUNCIONA !!!

{{@5685}}

# Cuarto programa: Medir Temperatura y Humedad con el DHT11

{{@5138}}

{{@5685}}

# Quinto programa: Lectura sensor LM35 y receptor infrarrojos

Podríamos hacer una lectura de estos sensores, sin necesidad de tratamiento ninguno, tal y como hemos hecho en la lectura de la luz con LDR, simplemente se añade un gadget a la APP de Blynk que :

- Lea el pin D11 que es donde está el sensor de infrarrojos
- Lea el pin A2 que es donde está el sensor de temperaturas LM35

Los resultados serían totalmente incorrectos !!!

- El sensor de infrarrojos lanza un código que al leerlo el pin D11 en la APP aparecería encendidos y apagados sin poder leer qué código es lo que dice
- En el sensor de temperaturas, es un sensor conectado al A2 por lo que en la APP mediría desde 0 hasta 1023, y esto no sólo habría que mapearlo a temperaturas, sino tratarlo correctamente pues el LM35 da lecturas de dos decimales.

En **Arduinoblocks** tenemos dos bloques específicos para tratar estas lecturas, las llevamos a **pines virtuales** y que los gadgets de la APP visualicen los valores de estos pines virtuales. Otro uso de los pines virtuales.

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

Ponemos dentro de la función LECTURAS los siguientes dos bloques :

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

Como vemos, Arduinoblocks procesa la lectura de estos dos sensores, y simplemente se almacenan en los pines virtuales V7 y V8

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

Ponemos para la lectura de la temperatura, un display que visualice el número V7

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

Para el sensor de infrarrojos igual pero que visualice V8

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

Lo **subimos** el programa Arduinoblocks al Arduino TDR Steam, pulsamos el **play** en la APP, esperamos a que se conecte y el sensor de temperatura muestra su valor perfectamente

<p class="callout info">Curiosamente dan unas lecturas algo diferentes el DHT11 y el LM35, el correcto es el LM35 pues el DHT11 no es un sensor muy preciso.</p>

Para ver los códigos que se leen en Infrarrojos, hay que pulsar los números del mando a distancia.

{{@5685}}

# Sexto programa Leer eventos del TDR Steam

Hasta ahora hemos enviado eventos al TDR Steam, y leer sensores del TDR Steam pero .... ¿y leer un evento? por ejemplo leer si se pulsa los pulsadores D2 y D7

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

Añadimos un gadget que se llama LED

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

y leerá de un pin virtual pin V4 y otro gadget para V5

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

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

Pondremos el siguiente código, simplemente lee que si se pulsa pues que encienda el led en el APP

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

{{@5685}}

# Séptimo programa: El timbre

El timbre es algo especial, si ponemos una música, el Arduino está tan ocupado y el código engorda que da muchas desconexiones, si es el ESP32 lo aguanta bien.

En la APP ponemos un slider asociado a un pin virtual, por ejemplo a V9

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

Y en Arduinoblocks añadimos un bucle que lea ese pin virtual V9 y que lo almacene en una variable numérica, que lo hemos llamado *timbre*

Si esta variable, ha cambiado el valor, que haga un tono. si te fijas el valor máximo del slider se ha puesto a 2000, el máximo tono audible es 20.000, pero el slider no lo permite, por lo tanto, el truco es multiplicarlo por 10

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

{{@5685}}

# ¿Todo junto?

Si que se puede pero con la placa Arduino alguna vez se desconecta, pues no tiene un microprocesador muy potente. Con ESP32 sí que lo aguanta bien.

En la APP el dashboard o proyecto queda:

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

Y en ARDUINOBLOCKS

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

{{@5685}}