Saltar navegación

Curso IOT - 19/12/2022

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 20 de diciembre de 2022 por Tic ctif madrideste

19 visualizaciones

Descargar la transcripción

No me la deja compartir. Ahora, ¿qué te comparto? Ya tengo la pantalla completa. 00:00:04
Vale, pues enséñame, enséñame, abre el puerto serie de Arduino. Vale, y ahora vuelve al navegador. 00:00:17
Espera, una pregunta, tu portátil, o sea, esta prueba la tienes que hacer con el móvil, entiendo. 00:00:40
Claro, claro, pues se lo estoy haciendo con el móvil. Si donde me da el problema es el móvil. 00:00:49
yo en el móvil 00:00:54
me he conectado a la P 00:00:56
y te dice que está conectado 00:00:57
¿no? 00:01:01
sí, sí 00:01:02
hace una cosa, asegúrate 00:01:03
de que en la barra de direcciones pone 00:01:06
http:// 00:01:08
y no https 00:01:09
tiene que poner 00:01:11
http:// 00:01:14
192.168.4.1 00:01:15
http 00:01:17
con la S ¿no? 00:01:21
no, sin la S 00:01:27
Por cierto, no sé si soy solo yo 00:01:29
Y ahora la dirección 00:01:36
Sí, no sé si soy solo yo 00:01:38
pero tu micrófono se escucha muy entrecortado 00:01:40
¿Os pasa a los demás? 00:01:42
No, yo lo oigo bien 00:01:45
¿Sí? 00:01:46
Ya lo he puesto, lo está intentando 00:02:01
Vale, mientras tanto 00:02:03
enséñame el código de Arduino, por favor 00:02:05
Vale, baja abajo 00:02:07
Ah, claro 00:02:18
Es que en el loop te falta la función 00:02:29
que atiende las peticiones 00:02:32
de los clientes 00:02:34
En el loop 00:02:35
Claro, mira los ejemplos 00:02:37
del manual 00:02:40
Ah, quizá ha puesto solo delay 00:02:40
Vale, vale, perdona 00:02:44
Sí, hay una función que se llama 00:02:45
No me lo sé 00:02:47
es como Handel Clients o algo así 00:02:48
Server Handel Clients 00:02:51
y luego está 00:02:53
la de anterior 00:02:54
tiene que estar ambas 00:02:57
ya, ya, ya 00:02:59
pruébalo y si no es eso 00:03:01
sigamos mirando, paramos 00:03:03
ahora te digo 00:03:04
de acuerdo 00:03:05
bueno 00:03:07
alguna 00:03:10
¿puedes dejar de compartir, por favor? 00:03:11
ya lo he dejado 00:03:15
Sí, es que va con cierto retraso. Voy a compartir yo. 00:03:15
¿Guille estás por ahí? ¿No me escucha Guille? 00:03:25
En el chat sí que está. 00:03:36
¿Y vosotros le oís? 00:03:43
No. 00:03:45
Ah, vale. Le acabo de escribir a la que me dice. 00:03:45
Bueno, mientras resolvemos los problemas de conexión con Guille, vamos a ver cuántos estáis ya. 00:03:57
Vale, estamos casi todos. 00:04:05
¿Vale? ¿Alguna pregunta más antes de empezar esta última sesión del año? ¿No? Vale, estupendo. Bueno, pues la idea de hoy es casi en exclusiva, trataremos el tema de MQTT, ¿vale? 00:04:06
MQTT va a ser para nosotros la base de todo lo que veamos a partir de ahora. 00:04:29
Es decir, ya a partir de aquí ya damos por supuesto que sabemos manejar correctamente el Arduino, 00:04:35
todo lo que hemos visto hasta ahora. 00:04:42
La parte web no la vamos a tratar más en principio, a no ser que queráis hacer algo con ella 00:04:43
o que queráis implementar ciertas partes del concurso de la lámpara, del proyecto de fin de curso. 00:04:50
Y entonces nos centraremos ya simplemente en todas las comunicaciones que se realizarán a través de MQTT. 00:05:00
Os cuento un poquillo cómo funciona, aunque lo tenéis descrito también con cierto detalle en el manual. 00:05:05
Estamos en la página 117-118 00:05:13
Y os cuento un poquillo 00:05:17
Me gusta un poco más pintar 00:05:20
Entonces, ¿qué es MQTT? 00:05:22
Bueno, MQTT básicamente es un protocolo de comunicaciones 00:05:26
Es un protocolo que permite que se hablen diferentes dispositivos electrónicos entre ellos 00:05:31
Está orientado a que se hablen las máquinas entre sí 00:05:36
Y vamos a empezar por describir cuáles son los principales elementos de los que consta, ¿vale? 00:05:40
Digamos que tenemos siempre un punto central, MQTT es una estructura en estrella, ¿vale? 00:05:49
Donde tenemos como punto central lo que llamaríamos servidor en otras plataformas, aquí se le llama bloque, ¿vale? 00:05:56
Una especie de intercambiador, ¿vale? 00:06:07
Además del broker tenemos otros dispositivos que van a ser dispositivos publicadores que se van a encargar de enviar información al broker y por otro lado vamos a tener dispositivos suscriptores que lo que van a hacer va a ser estar, digamos, van a configurar el broker para cuando llegue un cierto mensaje que el broker se encargue de hacerles llegar esta información. 00:06:10
Por favor, interrumpidme si alguna de las cosas que cuento no se entienden del todo, para que lo pueda contar de otra manera. 00:06:41
Guille, ¿estás ahí ya? 00:06:52
Disculpa, Jorge, no. 00:06:59
¿Cómo, perdón? 00:07:01
Que no, no me ha funcionado. 00:07:05
No te ha funcionado. Vale, luego lo revisamos, ¿vale? 00:07:07
Vale, luego lo vemos. 00:07:10
Vale. Bueno, entonces, como decía, en esta infraestructura o en este protocolo están estos tres roles, ¿vale? Los publicadores, que son los responsables de enviar información, los suscriptores, que son los que están interesados, son los consumidores, son los que están interesados en recibir una cierta información y el broker que facilita la comunicación entre unos y otros. 00:07:11
Antes de continuar un poco más en detalle de esto, sí que me gustaría hacer notar un poco la diferencia o el cambio sustancial con respecto a cómo se hacía antes MQTT para comunicar diferentes dispositivos. 00:07:50
Aquí entramos quizá ya un poco más en la parte de las redes de comunicaciones, pero es importante que sepamos esto para que en cada circunstancia sepamos elegir qué tecnología es la que más nos interesa. 00:08:07
Cuando nosotros estamos en nuestra casa o en nuestro centro educativo, tenemos un router y ese router es el que nos da acceso a internet. 00:08:19
Este puede ser el router de mi casa, este puede ser el router del colegio y este es el router de otro centro. 00:08:33
y detrás de este router pues cuelgan diferentes dispositivos 00:08:41
pues aquí hay una tele, aquí hay un móvil, aquí hay un ordenador 00:08:48
aquí está un SP32 y de aquí sucede lo mismo 00:08:52
de aquí están colgando diferentes dispositivos 00:08:58
y de aquí lo mismo, de aquí cuelga una red y aquí diferentes dispositivos 00:09:00
lo que hay dentro de las redes, lo que estoy pintando, señalando ahora en rosa 00:09:09
esto es lo que se conoce como LAN 00:09:16
es la red de área local 00:09:19
y digamos que dentro de esta red 00:09:22
todos los dispositivos, a no ser que hayamos hecho una configuración muy extraña 00:09:26
se pueden hablar entre ellos 00:09:30
es fácil que se comuniquen porque digamos que comparten el medio 00:09:32
y comparten la dirección IP y comparten otra serie de requisitos necesarios 00:09:36
para que la comunicación se establezca 00:09:40
dentro de una red LAN la comunicación es sencilla 00:09:42
Sin embargo, originalmente por temas de seguridad y últimamente por otros factores más económicos, yo desde internet, desde mi ordenador de mi casa que está aquí, no puedo conectarme directamente con el SP32 que está en mi centro educativo. 00:09:45
¿por qué? 00:10:04
porque digamos que cuando 00:10:06
sabéis 00:10:08
una pequeña encuesta manotada 00:10:09
¿podéis levantar la mano por favor los que sepáis 00:10:12
lo que es una dirección IP? 00:10:14
bueno, a la margen de lo que he estado 00:10:16
contando en el curso 00:10:18
que sepáis que una dirección IP 00:10:21
una pública, una privada, un poquito de 00:10:22
estas cosillas 00:10:24
o que sepáis la diferencia entre una IP pública y una privada 00:10:25
vale, pues 00:10:30
si no nos recuerda rápidamente 00:10:39
vale 00:10:42
Digamos que las IPs con las que trabajamos dentro de una red local suelen ser siempre, o bueno, tienen que estar siempre dentro de unos determinados rangos 00:10:43
¿Vale? Esos rangos son 192.168.algo.algo, ¿vale? O 172.16.algo.algo o 10.algo.algo.algo, ¿vale? 00:10:55
Todas esas IPs son privadas, ¿vale? Son las direcciones que digamos que podemos utilizar libremente dentro de las redes LAN, 00:11:11
dentro de nuestras redes de aire local y no hay ningún problema, ¿vale? Están específicamente reservadas para esta tarea. 00:11:20
Sin embargo, estas redes no están pensadas, o estas IPs no están pensadas para que se puedan interconectar con otras redes, ¿vale? 00:11:28
Cuando no forman parte de Internet, por así decirlo. Las IPs que forman parte de Internet son, bueno, pues otras que empiezan por otras cosas diferentes. 00:11:37
Aquí en España suele ser habitual tener una IP 213.algo, ¿vale? O 97 también es habitual, 213.x.x.x, .x, .y, .z, ¿vale? 00:11:47
Digamos que estas IPs son las que sí que se pueden mover entre ellas porque hay una serie de elementos aquí dentro, ¿vale? 00:11:59
Dentro de lo que se conoce como Internet hay una serie de elementos que se llaman routers, 00:12:06
que son los que son capaces de intercomunicar la información, crean esa malla de internet para que yo desde este router pueda encontrar el camino para llegar al destino que quiera, que es este otro router. 00:12:10
Entonces, todos nuestros routers, o por simplificar, voy a decir que todos nuestros routers tienen dos IPs. Tienen una IP que está en la red interna. ¿Alguien me sabría decir cuál es la IP que tienen en la red interna de los routers, por lo general? 00:12:29
la primera del rango 00:12:45
eso es, es decir que si estamos en una red 00:12:50
que es 192.168.0.algo 00:12:53
vale, pues el router 00:12:57
normalmente o siempre que compramos un router 00:12:58
estos de los típicos ISPs 00:13:01
de Movistar, de Vodafone 00:13:03
de cualquiera de estos 00:13:06
siempre vienen configurados con la dirección 00:13:07
192.168.algo.1 00:13:09
vale, pero sin embargo este router 00:13:12
tiene otra dirección IP 00:13:14
aquí, en la parte que da aquí internet 00:13:16
y esa dirección ya será una de las normales 00:13:20
80, 17, 40, 54, por ejemplo. 00:13:23
Mientras que el cole a lo mejor tendrá una 213.4.100.2 00:13:28
Estas IPs normalmente 00:13:33
no somos capaces, o digamos que 00:13:36
no es fácil verla. Y por cierto, podemos saber 00:13:39
cuál es nuestra dirección 00:13:44
si lo preguntamos en Google 00:13:45
si preguntamos 00:13:49
what is my IP 00:13:51
o cuál es mi dirección 00:13:52
pues aquí me va a decir 00:13:53
cuál es la IP que tiene mi router 00:13:55
en este caso 00:13:56
en mi casa 00:13:58
esta es la IP que tenemos 00:13:59
¿vale? 00:14:01
pues todos vosotros 00:14:02
tendréis una IP 00:14:03
del router 00:14:05
en la parte exterior 00:14:06
¿vale? 00:14:07
hasta aquí bien 00:14:08
que tenemos 00:14:09
como hay dos tipos de IPs 00:14:10
¿alguna duda? 00:14:12
vale, entiendo que no 00:14:14
Entonces, como os decía, los elementos que forman parte de una red interna, pues aquí este dispositivo, este dispositivo, este dispositivo y este dispositivo sí que se pueden albergar entre sí, pero yo no puedo, como decía, desde aquí, yo no puedo hacer este camino y entrar a esta máquina en concreto. 00:14:20
¿Por qué? Porque digamos que el router bloquea. 00:14:46
El router tiene una especie de firewall que hace que todas las peticiones que lleguen hacia aquí, 00:14:50
digamos que se sepa, o sea, él sabe que el destino es el mismo. 00:14:59
No deja entrar información hacia alguien que esté en la propia red de área local. 00:15:03
Entonces, para que esto funcionara, para que yo pueda conectarme desde internet 00:15:09
a uno de los dispositivos que está dentro de mi casa 00:15:13
se tiene que hacer una técnica 00:15:16
que se conoce como 00:15:17
port nothing 00:15:19
lo que 00:15:21
en España se suele hablar 00:15:25
de abrir los puertos 00:15:28
¿qué es lo que hace eso? pues que 00:15:30
yo expongo aquí un puerto, por ejemplo 00:15:37
si aquí tengo mi SP32 00:15:38
que tiene, ¿alguien se acuerda del puerto 00:15:40
que se abría para 00:15:42
el servidor, para servir páginas web? 00:15:44
el 80, pues entonces 00:15:49
yo abro aquí, este es un SP32, que tiene una página web y tiene abierto el puerto 00:15:51
80. Entonces lo que hace nuestro router cuando queremos abrir los puertos, cuando queremos 00:15:58
que alguien desde internet pueda acceder a esta máquina, es abrir una ventanita con 00:16:03
un puerto que puede o no ser el mismo que el de abajo y digamos que es capaz de redireccionarlo 00:16:10
para que llegue a la máquina correcta. 00:16:16
De esta forma, cuando desde este ordenador yo pongo la IP de este router y el puerto 80, 00:16:19
entonces ya sí que se puede hacer este tráfico que estábamos describiendo antes, 00:16:28
ya sí que puedo hacer este caminito, llego al router y el router me deriva en el puerto adecuado 00:16:35
de la máquina adecuada de la red. 00:16:43
¿Esto os suena a algunos o algunas? 00:16:46
No. 00:16:51
Bueno, hay algunos servicios de red, por ejemplo, algunos juegos en la PlayStation 00:16:54
que requieren que abras puertos para que funcionen ciertas cosas correctamente. 00:16:59
El emule. 00:17:04
El emule, vale, antiguamente. 00:17:05
Vale, pues tienes que abrir un puerto para poder compartir ficheros. 00:17:08
Bueno, pues como podéis ver, pues esto no es trivial. 00:17:12
Primero porque para que la comunicación entre, vamos a llamar A, 00:17:15
y B, se puede realizar, hacen falta varias cosas. 00:17:21
Primero, hacen falta que la persona que controla B 00:17:27
tenga nociones técnicas de cómo se toca el router. 00:17:30
Hay que hacer una configuración en el router. 00:17:35
Por otro lado, hace falta que A sepa cuál es la IP del router 00:17:42
tras el cual está el dispositivo B. 00:17:49
Y esto no es tan fácil como pudiera parecer porque habéis visto que mi IP, la que me ha dado ahora, es esta. 00:17:53
Pero si yo reinicio el router o si yo me espero a pasado mañana, esta IP ya no será la misma, ¿vale? 00:18:00
Porque las IPs públicas son cambiantes, son dinámicas, ¿vale? No están fijadas. 00:18:06
De forma que este router que hoy es esta IP, pasado mañana puede ser la 104.7.8.16 y esta ya no es válida. 00:18:12
De forma que cuando A trate de conectarse a la IP antigua, esto no le va a funcionar. 00:18:27
Entonces, digamos que para que esto funcione siempre hay que configurar una cosa que se llama DNS dinámico, 00:18:32
que también añade una capa más de complejidad. 00:18:38
Y luego hay un tercer problema y es que muchos proveedores están empezando a hacer una cosa que se llama CGNAT, 00:18:47
que no quiero entrar mucho en detalles, pero que dificulta que podamos hacer incluso esta configuración. 00:18:53
Entonces, digamos que todas estas dificultades que tenemos aquí hacen que sea complicado 00:18:59
o que desde luego no sea para Legos en materia de redes, pues eso, exponer un puerto de un dispositivo, 00:19:07
o hacer que el IoT funcione con sistemas tradicionales de enrutamiento y de NATI de redes. 00:19:15
¿Se entiende cómo podríamos hacerlo de una manera y por qué esta solución es un poco complicada? 00:19:26
¿Algún comentario? ¿Sí? ¿No? Vale. 00:19:34
Vale, entonces, en contraposición a esto que acabamos de ver, 00:19:46
La solución que vamos a utilizar nosotros es la siguiente 00:19:54
Yo vuelvo a tener mi internet 00:19:58
Vuelvo a tener el router de mi centro educativo 00:20:04
Tras el cual están conectadas un SP32, otro SP32, el ordenador del aula, lo que sea 00:20:11
Y yo tengo aquí por otro lado mi casa 00:20:18
Debajo del router y aquí tengo mi portátil 00:20:23
aquí tengo un móvil y aquí tengo otro ordenador 00:20:25
¿vale? entonces hasta ahora todo es 00:20:29
parecido a lo que os había contado antes, pero aquí vamos a añadir un elemento más 00:20:33
aquí lo que vamos a añadir va a ser al servidor 00:20:37
¿vale? vamos a meter a nuestro servidor de MQTT 00:20:40
¿vale? ¿que qué es lo que va a hacer? bueno pues lo que va a hacer va a ser 00:20:44
él ya tiene expuesto un puerto, ya tiene un puerto 00:20:53
habilitado que es público, que es el 11883 en nuestro caso, ahora lo veremos, que es 00:21:02
accesible desde cualquier dispositivo de Internet. Da igual si está detrás de un router, da 00:21:11
igual si está detrás de un firewall, en principio no hay problema porque ya no hace 00:21:17
falta exponer puertos. Y digamos que si este ordenador o este dispositivo que es el elemento 00:21:22
A, la Raspberry Pi, si tiene acceso, si ella puede a través de sus routers y de la red 00:21:27
de internet llegar hasta aquí, este camino, esta unión que se ha efectuado desde el punto 00:21:34
A hasta el punto MQTT ya es bidireccional. Por este mismo camino, por así decirlo, se 00:21:40
puede transmitir información de ida y de vuelta. Y si ahora tengo el punto B, que estaba 00:21:47
aquí, en la red de mi casa, y efectúo 00:21:52
también esa conexión 00:21:56
hacia el mismo lugar, a pesar 00:21:58
de que el punto A y el punto B no están unidos 00:22:02
entre sí, como ambos son 00:22:05
capaces de hablar con el servidor de mi QTT, 00:22:08
ambos pueden transferirse información el uno con el otro. 00:22:11
¿Vale? En cualquiera de los dos sentidos. 00:22:14
¿Dudas? 00:22:19
¿Comentarios? ¿Vale? No sé si 00:22:20
No sé si veis mi pantalla, pero está un poco triste. Estoy viendo siglas. ¿Podéis evitar la cámara? No sé si pongo carita de pena. Vale, gracias. Es que entre que no me decís nada por el chat, no me respondéis y no os veo las caras, se hace difícil. Gracias. 00:22:25
¿Vale? ¿Algún comentario con respecto a lo que acabo de comentar? ¿De qué problema soluciona el MQTT? 00:22:47
¿Vale? Digamos que nos evita todo el tema de los tres problemas que estábamos hablando antes, ¿vale? Ya no hace falta ser un experto en redes, no hace falta configurar un DS dinámico y ya nos da igual si nuestro proveedor habilita un CGNAT 00:22:56
Porque, digamos que al utilizar un servidor MQTT que ya está disponible en Internet, todo el mundo puede acceder a él y da igual en qué configuración estemos poniendo nuestro ordenador A y nuestro ordenador B, o nuestro dispositivo A y nuestro dispositivo B. 00:23:11
Entonces, teniendo esto… 00:23:27
¿Pregunta? 00:23:28
Sí. Gracias. 00:23:29
Pero entonces, ¿entonces la seguridad cómo se ve alterada? 00:23:31
Porque todo esto de abrir puertos es para mantener la seguridad. 00:23:38
¿Y ahora? 00:23:42
Ahora, desde el punto de vista de A y de B, la seguridad es máxima. 00:23:44
Porque no han expuesto ningún puerto en su router. 00:23:49
Es como si no existieran. 00:23:52
De cara a alguien que pueda... 00:23:53
Vamos a suponer que aquí hay un malo. 00:23:56
este es el router del malo 00:23:57
y aquí está el malo 00:24:01
si el malo 00:24:05
hace una especie de ataque 00:24:07
o mira a ver que puertos abiertos 00:24:10
tiene nuestro router 00:24:12
se va a encontrar con que 0 puertos están abiertos 00:24:12
tanto en este 00:24:16
como en este 00:24:17
de forma que quien está detrás 00:24:18
de su router sigue protegido 00:24:21
y el que digamos que se expone un poco 00:24:23
es el servidor de MQTT 00:24:25
Que sí que sería visible que tiene este puerto abierto hacia Internet. 00:24:27
Pero ahora ya veremos que lo que vamos a hacer aquí va a ser configurar un usuario y una clave 00:24:33
para que no todo el mundo pueda poder utilizar este servidor como intercambiador de información. 00:24:38
Entonces es mucho más seguro que las otras soluciones. 00:24:48
Y además confiamos aquí en que los programadores del servidor Mosquito, 00:24:52
que es el que vamos a utilizar como servidor de MQTT 00:24:58
como broker de MQTT, pues saben lo que 00:25:00
hacen, están al día, van actualizando 00:25:02
van corrigiendo fallos de seguridad 00:25:04
y que la información que hay aquí puede estar 00:25:06
protegida. ¿Alguna 00:25:08
otra consulta? 00:25:12
Yo tengo una 00:25:18
pregunta, el otro día lo comentaste un poco 00:25:18
entonces ese servidor 00:25:20
MQTT 00:25:22
si tú quieres usarlo 00:25:23
se lo alquilas a alguien 00:25:26
tú puedes 00:25:28
comprarte un 00:25:29
¿Una máquina y cómo se gestionan esos servidores? 00:25:32
Tienes varias opciones. 00:25:37
Puedes, bueno, veremos algunas opciones incluso gratuitas. 00:25:41
Hay, por ejemplo, el propio servidor de los que diseñan Mosquito. 00:25:44
Tienen un servidor que es gratuito, que es abierto y lo puedes utilizar. 00:25:50
Lo que pasa es que está hasta la bandera. 00:25:54
Hay un montonazo de gente, hay cientos de miles de personas utilizándolo 00:25:57
y es posible que alguien escriba información que te puede llegar a molestar a ti. 00:26:00
Entonces, esta posibilidad yo la descarte para el curso y yo la descartaría también para el aula. 00:26:06
Entonces, la segunda opción que nos queda, que se subdivide luego en varios tipos, es hacer uso de un servidor propio. 00:26:14
Nosotros para el curso vamos a utilizar un servidor que hemos montado específicamente para este curso. 00:26:20
estaremos solo nosotros 22 00:26:25
y luego este servidor seguirá operativo durante unos pocos meses más 00:26:27
para que podáis ir utilizándolo mientras encontréis alguna alternativa 00:26:34
la alternativa en caso de que el servidor de Sin Dormir deje de estar disponible 00:26:37
pues sería lo más sencillo y lo más barato es alquilar un VPS 00:26:42
eso se paga por mes, los hay tan baratos como desde 3 euros al mes 00:26:46
y ahí se monta el MQTC, se puede montar también uno de red 00:26:50
y entonces ya sería cuestión de instalar los programas tal y como expliqué el otro día al final de la clase. 00:26:54
Y esas máquinas sí que tienen una IP fija y se puede acceder a ellas desde cualquier punto de Internet. 00:27:03
Y eso, los precios suelen estar, pues depende, para cosas muy sencillitas son 3 euros. 00:27:10
Servidores que utilizamos nosotros en SendoalMid ya empiezan a valer 30-40 euros porque son más potentes, 00:27:14
tienen que ser capaces de satisfacer a muchos clientes simultáneos, etc. 00:27:19
Pero para empezar, para un aula, yo creo que uno de 3 euros, 4 euros podría ser suficiente. 00:27:26
O luego está la otra opción, que es la que hablábamos el otro día con Juanra, 00:27:30
que es que la Comunidad de Madrid proporcione un servidor de MQTT 00:27:33
para todos los profesores para que los podáis comunicar. 00:27:38
Pero creo que no va a caer esa breva. 00:27:42
Gracias. 00:27:45
Entonces, bien en cuanto a la infraestructura que se monta para que nosotros podamos hacer, 00:27:49
Es decir, siempre que yo tenga un ordenador, una máquina, un móvil, un SP32, un lo que sea, que pueda llegar, que pueda hablarse con mi servidor de MQTT, la comunicación se va a poder realizar. 00:27:55
Entonces, ahora volviendo al dibujito original en el que os presentaba los tres roles, pues el broker es el punto central, el broker es el servidor, es el que centraliza las comunicaciones. 00:28:07
Mientras que los publicadores son aquellos dispositivos, típicamente sensores, que lo que hacen es mandar información periódicamente acerca de cómo se encuentra una planta. 00:28:19
Por ejemplo, aquí podríamos tener este sensor. Esto podría ser un sensor de temperatura que estuviera mandando periódicamente la temperatura. 00:28:34
Pues 20 grados, ¿vale? Y al cabo de un rato, 21 grados, al cabo de un rato, 19 grados, ¿vale? 00:28:44
Entonces, la información se va almacenando dentro del broker, ¿vale? 00:28:49
Podemos tener a la vez otro sensor diferente, que también sea publicador, que también le escriba al broker, 00:28:54
y en este caso es otro dispositivo que lo que da es la humedad, ¿vale? Pues 35%, 70%, lo que sea, ¿vale? 00:29:01
Esta información, digamos, que se va recogiendo por el broker y está a disposición de cualquiera que se quiera suscribir, ¿vale? 00:29:11
Digamos que el broker acepta información de cientos de decenas de, bueno, decenas de miles de publicadores y, en principio, lo que hace es recogerlas y enviárselos a quien esté suscrito hacia esa cierta información, ¿vale? 00:29:19
Entonces, para que nos quede un poco clara la asociación, un publicador generalmente es un sensor, ¿vale? Aunque luego veremos matices de todo esto. 00:29:38
Y un suscriptor, típicamente, pues sería no un actuador, sino un visualizador, ¿vale? 00:29:48
Imaginemos que yo tengo en mi casa una serie de sensores y luego tengo una pantallita central en la cual puedo ver la temperatura de cada una de las habitaciones de mi casa, ¿vale? 00:29:55
Pues esa pantallita, que podría ser un SP32, estaría suscrito a todos los sensores de temperatura, estaría suscrito a todos los sensores de humedad y según le vaya llegando la información, pues pintaría una serie de barritas para indicarle al usuario cómo está la temperatura y la humedad de cada habitación. 00:30:06
¿Se entiende un poco la idea de qué es un publicador y qué es un suscriptor? 00:30:24
Sí. 00:30:29
os planteo una 00:30:29
pregunta, vamos a suponer 00:30:35
voy a poner aquí un elemento nuevo 00:30:37
que es un motor de una persiana 00:30:42
y por otro lado 00:30:44
tenemos aquí un pulsador doble 00:30:53
pulsador doble o dos 00:30:56
o dos pulsadores, me da igual 00:31:00
el típico que tiene 00:31:04
flechizos hacia arriba, flechizos 00:31:06
hacia abajo, y supongamos que 00:31:08
tenemos esta comunicación a través 00:31:12
de MQTT. 00:31:14
¿Qué roles 00:31:16
pensáis que debería tener 00:31:17
el pulsador doble y qué 00:31:20
rol o roles debería 00:31:22
tener el motor de la persiana? 00:31:24
Si queremos que con este 00:31:26
control se actúe sobre este elemento. 00:31:27
¿El pulsador sería publicador? 00:31:40
¿Y la persiana también? 00:31:42
¿Y la persiana 00:31:44
también? Claro, para saber dónde está, 00:31:45
en qué punto está. 00:31:47
Tenemos esa información, ¿no? 00:31:49
¿Y a quién le publica? 00:31:51
Bueno, o puede ser que publique, porque esto es un elemento que solo tiene subir y bajar. 00:31:57
Bueno, vamos a suponer que la persona también es capaz de informar de si está arriba, abajo o en el medio. 00:32:07
¿Está bien esto? ¿Ya con esto funcionaría? 00:32:13
El motor tendría que ser suscriptor, ¿no? Para recibir las órdenes del botón, del pulsador. 00:32:16
Correcto. Este motor tiene que estar suscrito al tema, introduzco aquí ya la palabra importante de MQTT, que es que digamos que cada elemento que está conectado al broker publica en un tema, publica lo que se conoce en móviles como topic. 00:32:23
Yo escribo en tal topic y habrá uno o más dispositivos que estén suscritos a ese topic. 00:32:43
Por ejemplo, un topic, luego veremos que esto no se suele poner así, pero un topic adecuado. 00:32:50
Imaginemos que yo tengo todas las ventanas de mi casa tienen persianas automáticas. 00:32:57
Pues yo podría poner un topic sería pulsador, pulsador persianas, salón y como tengo dos ventanas en el salón, pues dos. Este sería el tema en el que publico. 00:33:00
pulsador persiana guión salón guión 2 00:33:22
entonces este 00:33:24
la persiana tendría que estar 00:33:26
suscrita a este topic 00:33:28
a este tema para que cuando 00:33:30
este 00:33:32
sensor mande un 1 00:33:34
que un 1 significa abrir 00:33:36
y un 2 significa bajar por ejemplo 00:33:38
pues este 1 le llegará 00:33:40
a la persiana 00:33:43
recibirá un 1 y empezará 00:33:46
a girar el motor 00:33:48
en un sentido 00:33:49
Cuando le llegue un 2, pues empezará a girar el motor en el sentido contrario. ¿Se entiende? Este otro sensor de temperatura a lo mejor publica, pues, sensor, temperatura, cocina, ¿vale? 00:33:51
Y así la pantallita que teníamos aquí antes, ¿vale? Pues se suscribe a este topic, se suscribe al topic que hayamos decidido poner aquí, también se puede suscribir al estado de lo que ha ordenado este pulsador y también si este de aquí, como decíamos, también es capaz de mandar información de persiana arriba, ¿vale? 00:34:15
Este también podría estar suscrito y puede representar que la persiana del salón está subida. 00:34:42
Y en todos estos casos, ya os digo, ni este elemento, ni este, ni este, ni este, ni este, tienen que tener un puerto abierto. 00:34:50
Digamos que con que sean capaces todos de llegar al broker, la comunicación ya se realiza de forma adecuada. 00:34:59
¿Dudas, consultas? ¿Se entiende bien qué es lo que nos permite así a grandes rasgos el MQTP? 00:35:07
Sí, sí, no os preocupéis porque 00:35:19
nos vamos a pegar 00:35:26
con ello, vamos a 00:35:27
de hecho, una de las prácticas 00:35:29
que más me gustan de este curso 00:35:32
la vamos a hacer hoy 00:35:33
y es que entre vosotros 00:35:35
vais a poder encenderos 00:35:38
LED los unos a los otros 00:35:40
trabajaremos por parejas, incluso por grupos 00:35:41
de tres o de cuatro 00:35:44
y haremos que uno encienda las luces a otros 00:35:44
entonces es chulo 00:35:47
vamos a ver cosillas interesantes 00:35:50
bueno pues esto como breve introducción 00:35:52
a MQTT yo creo que puede valer 00:35:57
vamos a ver que no me haya dejado nada interesante 00:35:59
bueno aquí tenemos un pequeño ejemplo 00:36:01
de varios roles, aquí tenemos un publicador 00:36:15
que es un sensor de temperatura 00:36:17
que le manda la información al broker 00:36:19
tenemos el móvil, la pantalla del móvil, que puede ser publicadora para ciertas cosas 00:36:21
o suscriptora para otras, aquí aparece como suscriptor, ¿por qué? 00:36:30
porque queremos que se muestre en el móvil el valor de la temperatura que hay 00:36:34
pero por otro lado también tenemos como suscriptor el sistema de aire acondicionado 00:36:38
que está leyendo este valor del termómetro para decidir cómo tiene que comportarse 00:36:43
Si tiene que echar frío, calor, ¿vale? Y por otro lado tenemos Node-RED, que va a ser un sistema transversal que, digamos, que se publica, puede publicar cosas para actuar sobre el aire acondicionado o puede estar suscrito a diferentes elementos para reflejar la información en una pantalla, en una página web acerca de cómo se encuentra la planta. 00:36:49
Bueno, llegamos a esta parte que es una de las cosas que tenemos que tener más en cuenta cuando trabajamos con MQTT. 00:37:18
El ejemplo que yo os he puesto antes, este de pulsador-persianas-salón-2, pues nos puede sacar de un apuro o si tenemos prisa o no queremos pensar demasiado lo podemos hacer así. 00:37:27
Pero esto no es lo suyo y menos cuando ahora mismo en esta práctica vamos a ser 20 personas, imaginemos que cada uno de nosotros quiere llevar esto al aula. Entonces cada uno de estos 20 profesores que estáis aquí, si lo va a replicar con sus 20-25 alumnos, pues bueno, son 400 y pico topics que se van a estar ahí mezclando. 00:37:39
Con lo cual, que estén separados de esta manera no es demasiado lógico. O, por poner un ejemplo un poco más industrial, imaginemos que yo lo que quiero hacer es monitorizar y ser capaz de controlar o de por lo menos de representar el estado de las habitaciones de un hotel. 00:38:00
y ese es justo el ejemplo que aparece en el manual. 00:38:20
Tenemos un hotel que lo que tiene son divisiones por plantas 00:38:25
y dentro de cada planta se divide por habitación 00:38:31
y dentro de cada habitación tenemos una división por cada tipo de sensor. 00:38:33
Entonces aquí tenemos que, digamos que de la gran central, 00:38:39
que es el nombre del hotel en concreto que hemos elegido para este ejemplo, 00:38:42
pues tenemos N plantas, cada planta tiene N habitaciones y ahí nos encontramos con varios sensores de temperatura 00:38:48
o de humedad, o de luminosidad, de consumo energético, de consumo de agua, etc. 00:38:55
De forma que si yo soy un sensor de temperatura, vamos a poner que yo soy sensor de temperatura, 00:39:00
sensor de temperatura 00:39:09
de la habitación 00:39:12
712 00:39:15
¿Dónde? 00:39:19
Yo, como soy un sensor, lo que hago es publicar 00:39:21
¿En qué topic 00:39:23
debería publicar? 00:39:25
¿Alguien me ayuda? 00:39:27
Según lo que tenéis en el manual 00:39:31
¿Publicador, no? 00:39:32
Sí, sí, soy publicador 00:39:40
pero ¿en qué topic? 00:39:41
¿En dónde debería publicar? 00:39:42
para que fuera coherente, para que no hubiera un jaleo tremendo de información 00:39:44
en el MQTT que gestiona esta cadena de hoteles. 00:39:49
¿En temperatura? 00:39:53
Si es un sensor de temperatura, los tópicos que son planta, habitación, temperatura, valor, 00:39:55
¿con esto es fuerte? 00:39:59
Claro, pues, imagínate que estamos hablando de una cadena hotelera. 00:40:01
Esta cadena hotelera tiene 17 hoteles en toda España, 00:40:05
pero, en concreto, este sensor pertenece a la central, 00:40:08
y dentro de la central 00:40:13
también hay 00:40:17
sus carpetas, temperatura 00:40:18
bueno, o no, todo lo contrario 00:40:20
pues ya está la cadena 00:40:23
planta, habitación 00:40:24
y temperatura 00:40:26
entonces, ¿qué escribiría aquí? 00:40:28
planta 00:40:31
claro, según lo que aparece 00:40:31
a ver, perdón 00:40:36
según aparece en la documentación 00:40:37
pues yo escribiría 00:40:40
planta 07 00:40:41
planta 07 00:40:43
habitación 12 00:40:47
correcto 00:40:51
y ya temperatura 00:40:53
ah por cierto 00:40:54
cuidado con esto 00:40:56
con la tilde 00:40:58
no utilicéis tildes 00:40:59
habitación 12 00:41:03
y aquí tendríamos 00:41:05
temperatura 00:41:06
porque es el 00:41:08
y aquí fijaos que los 00:41:10
separa en valor y consigna 00:41:14
¿alguien sabe qué es cada cosa? 00:41:17
¿qué es valor y qué es consigna? 00:41:19
¿nos lo quiere explicar? 00:41:21
es toda la palabra 00:41:26
valor sería el valor de la temperatura 00:41:27
y consigna podría ser la temperatura 00:41:36
a la que quiero llegar 00:41:38
exactamente, es como se suele organizar 00:41:39
entonces como yo soy un sensor 00:41:41
yo escribo aquí, este es mi topic 00:41:43
yo voy a publicar en 00:41:47
gran central, planta 07, habitación 12 00:41:49
de temperatura, valor, y aquí, en este topic, pondré un 22, por ejemplo, 00:41:51
que es la temperatura que hay en esa habitación en concreto. 00:41:57
Pero este sería el topic. 00:42:02
Que resulta que ahora estamos hablando no del sensor de temperatura, 00:42:07
sino de la pantallita, digamos que cada habitación tiene una pequeña pantallita táctil 00:42:12
que le permite al cliente ajustar su temperatura. 00:42:16
¿dónde escribiría 00:42:19
esa temperatura si el cliente pone 00:42:20
un 17? 00:42:23
porque tiene mucho calor, quiere que esté la habitación 00:42:24
en el 17, o sea, ese sensor 00:42:26
esa pantalla de táctil, está claro que como 00:42:31
ordena cosas 00:42:33
tiene que ser una publicadora, ¿verdad? 00:42:35
tiene que mandar información al MQTT para que 00:42:37
alguien lo escuche 00:42:39
es la misma ruta, escribiríamos 00:42:40
en gran central, gran 07, habitación 00:42:46
12, temperatura, barra, consigna 00:42:48
entonces 00:42:50
en este momento 00:42:52
tiene que haber, digamos que tenemos 00:42:54
un publicador 00:42:57
que es el sensor 00:43:00
un publicador que es 00:43:02
la pantalla, el interfaz 00:43:05
y tiene que haber 00:43:07
un suscriptor que es 00:43:09
el aire acondicionado 00:43:16
¿a qué estará suscrito? 00:43:17
wow 00:43:23
a la pantalla 00:43:23
a todo 00:43:28
exactamente, tiene que ver 00:43:30
qué pide 00:43:32
el cliente, pero también 00:43:34
tiene que saber qué temperatura hay. 00:43:36
¿Sí? 00:43:45
Sí. 00:43:48
Vale, entonces esto parece un poco jaleo, 00:43:51
pero luego resulta 00:43:54
mucho más sencillo 00:43:55
organizarse de esta manera 00:43:56
y además permite hacer cosas 00:43:58
como muy potentes. 00:44:00
Ahora veremos el tema 00:44:03
de los... 00:44:04
¿Me sale el nombre? 00:44:07
¿Me sale el nombre en castellano? 00:44:09
O sea, en inglés, los comodines. 00:44:11
Eso, nos permite hacer cosas muy impotentes con poco trabajo. 00:44:17
Fijaos, aquí tenemos un topic que es un poco raro. 00:44:24
Este gran central, más temperatura, valor. 00:44:29
¿Qué es lo que significa? 00:44:34
Bueno, pues yo cuando soy suscriptor, puedo estar suscrito a diferentes temas, a diferentes topics. 00:44:34
Y eso se hace mediante estos dos comodines. 00:44:43
Un comodín de nivel me permite, es como una especie de cualquier cosa que esté en este nivel, 00:44:46
mientras que un comodín multinivel es todo lo que cuelgue a partir de aquí. 00:44:53
Os pongo un par de ejemplos. 00:44:58
Bueno, vamos a suponer que esta pantalla, la pantalla de la que hablábamos antes, esta de aquí, le permite al cliente ver diferentes cosas. 00:44:59
Por un lado tiene la temperatura, por otro lado puede ver la humedad y por otro lado puede ver la luminosidad, por ejemplo. 00:45:14
Y luego tiene una pantallita táctil aquí que le permite subir la temperatura o bajarla. 00:45:22
vamos a poner que esto es así 00:45:29
entonces este dispositivo 00:45:31
que esto podría ser perfectamente un SR32 00:45:34
con una pantalla 00:45:36
¿a qué temas 00:45:37
tendría que estar suscrito? 00:45:43
para poder representar todo lo que acabo 00:45:46
de pintar aquí 00:45:48
a la habitación 12 con el comodín multinivel 00:45:49
a partir de ahí 00:45:59
o con el comodín y luego barra valor 00:46:00
claro 00:46:05
Yo lo que haría sería, si yo fuera este dispositivo, me suscribiría a Gran Central, barra planta 07, barra habitación 12, cualquier cosa, barra valor. 00:46:06
¿vale? porque yo solo quiero que me lleguen 00:46:32
los valores, no las consignas 00:46:38
¿vale? para poder representarlas 00:46:40
aquí, aquí y aquí 00:46:43
que quiero representar por ejemplo 00:46:44
que me ponen xx 00:46:46
con respecto a 00:46:49
la temperatura que me han pedido 00:46:50
o al revés, temperatura que quiero 00:46:52
con respecto a temperatura que hay 00:46:55
¿vale? pues entonces sí que podría 00:46:56
estar suscrito directamente a 00:46:59
eso me llegaría 00:47:01
gran central, tanta 07, habitación 12 00:47:12
cualquier sensor que hubiera 00:47:15
y cualquier cosa que cuelgue 00:47:17
cualquier sensor, me llegaría 00:47:19
tanto los valores como 00:47:21
las consignas 00:47:22
¿También podrías ponerle el comodín 00:47:25
multinivel a la altura de temperatura? 00:47:32
En este caso sí 00:47:34
porque digamos que 00:47:36
como solo va a haber sensores 00:47:38
o digamos que como es una cosa que controla la habitación 00:47:39
yo en vez de hacer esto podría suscribirme aquí, aquí, aquí 00:47:42
y este ya sería el todo. 00:47:47
Lo único que tenéis que tener en cuenta es que después de poner la almohadilla 00:47:51
no puede haber nada más después a la derecha. 00:47:54
Yo no puedo hacer por ejemplo esto, no puedo suscribirme a todo barra valor. 00:47:58
Esto es incorrecto. 00:48:04
Cuando pongo una almohadilla después de ella ya no puede haber ninguna otra información. 00:48:10
Mientras que si yo quiero suscribirme a todas las cosas de la planta 7, a todos los sensores de temperatura de la planta 7, yo sí que puedo hacerlo. 00:48:14
Puedo hacer gran central, aquí pondría planta 07, de todas las habitaciones, de todos los sensores y solo quiero los valores. Esto es correcto. 00:48:25
¿Se va entendiendo un poco la potencia que nos permite tener estas divisiones por jerarquías de los topics, de los temas que utilizamos? 00:48:49
Vale, importante. Bueno, esto ya lo he comentado. 00:49:07
En teoría, el servidor que utilizamos, Mosquito, tiene soporte para Unicode. 00:49:13
Eso lo que significa es que podemos recibir tildes, señas, ccdillas, cualquier cosa que esté en el teclado español. 00:49:18
Pero hay servidores que pueden no soportar un ICODE 00:49:25
Y por otro lado el SP32 tampoco lo lleva muy bien 00:49:33
El tema de las tildes 00:49:36
Así que mi recomendación es que no pongáis tildes en ningún topic 00:49:39
Como parte de ningún... 00:49:44
Aunque haya una falta de ortografía en habitación 00:49:46
Como aparece aquí 00:49:49
Pues mejor que esté así 00:49:50
Bueno, si os parece 00:49:52
Vamos a hacer una primera práctica 00:49:55
Y nos vamos a descargar la librería 00:49:59
Que nos permite que el SP32 pueda hablar de una forma sencilla 00:50:01
Con el servidor de MQTT que hemos preparado 00:50:05
Entonces, esta librería, la PubSubClient 00:50:08
Os la pego en el chat 00:50:12
Si podéis instalarla en vuestra instalación de Arduino 00:50:13
Pues genial 00:50:25
Guillermo, ¿Guille está aquí por ahí? 00:50:25
No sé si antes lo escuchabas o no 00:50:28
Guille, vale 00:50:30
bueno, pues nada, vamos mientras 00:50:54
estrado 00:50:57
¿qué librería era? 00:50:57
es que estaba 00:51:03
la galería, ¿no? 00:51:04
la he puesto en el chat 00:51:07
Jorge, a mí me aparecen varias galerías 00:51:08
MQ, TTP 00:51:18
Pops of Client 00:51:20
de Heide Gital 00:51:21
es la que si te fijas en el manual 00:51:23
es la de 00:51:26
Nick O'Leary 00:51:30
Nicoleri, vale 00:51:31
Está abajo del todo 00:51:32
Llegando al final 00:51:34
Una cosa, Jorge 00:51:38
Yo acabo de fichar 00:51:43
Se me ha ido el santo al cielo 00:51:44
Llevo aquí desde las 5 00:51:45
Se supone que tengo retraso 00:51:46
Y ya falté un día por lo del hospital 00:51:48
Sí, yo dije que estabas al principio 00:51:50
Juan Ramón, ¿se puede arreglar? 00:51:53
Sí, sí, sí 00:51:56
Sergio Gutiérrez, ¿verdad? 00:51:57
Sí, sí, sí, perdona 00:51:58
Vale, vale 00:51:59
Hola, yo aprovecho ya el inciso ese 00:52:01
yo me tengo que ausentar para una visita médica 00:52:05
ahora a las 6, supongo que a las 6 estaré 00:52:07
porque salí cerca por el barrio 00:52:09
porque voy a colgar ahora y luego me incorporo 00:52:10
si llevo a tiempo 00:52:13
Acuérdate de subir luego el justificante 00:52:18
de la falta 00:52:21
Sí, te había escrito un correo 00:52:22
Lo sé, lo sé 00:52:24
Luego el justificante, lo apunto, gracias 00:52:25
Genial 00:52:28
¿Cuál es la penúltima que aparece ahí? 00:52:29
Esta que estoy marcando yo en la pantalla. 00:52:39
Es que no se ve, Jorge, la que está... 00:52:47
A ver, PubSubClient, y ya está. 00:52:49
Es PubSub... 00:52:53
Si tenéis el manual, es la que aparece reflejada en el manual. 00:52:54
Ya, pero que no sale en las librerías. 00:52:58
Sí, sí, tiene que aparecer. 00:53:00
Esta de aquí. 00:53:02
En el manual, en la página, ciento... 00:53:03
Un segundito. 00:53:05
Ciento veinte. 00:53:07
By Nicoleri. 00:53:08
Eso es. 00:53:10
Vale, ya está. 00:53:11
sale como la antepenúltima 00:53:12
o así, como ha dicho Sergio 00:53:14
Jorge, perdona 00:53:15
¿cuál era el último ejercicio 00:53:23
que hicimos el otro día? 00:53:26
en el libro 00:53:28
el último ejercicio que hicimos 00:53:29
bueno, el otro día no hubo ejercicio 00:53:32
pero el último que pedí 00:53:34
el último que pedí 00:53:36
era 00:53:38
es que lo tengo llamado 00:53:39
tema 30 ejercicio 5 00:53:42
pero lo estoy buscando en el libro y no lo encuentro 00:53:43
era algo del móvil, del punto 00:53:46
creo yo 00:53:50
sí, era representar 00:53:51
en el 7 segmentos 00:53:53
lo que sea que nos hubiera llegado 00:53:55
por la página web 00:53:58
esto es 00:53:59
un segundito 00:54:01
es el ejercicio 15 00:54:02
de la página 107 00:54:15
00:54:20
este es el último que hicimos 00:54:27
me hiciste algo del móvil 00:54:34
de una prueba con el móvil del punto 00:54:36
de acceso en el 30 00:54:38
sí, pero no lo pedí como ejercicio 00:54:40
no lo pedí como entrega 00:54:42
no lo digo como entrega 00:54:45
no lo digo como entrega 00:54:47
porque es el último que tengo hecho 00:54:48
para saber cuál es el del libro 00:54:51
Lo último que mandaste del libro 00:54:54
Que yo lo tengo llamado como 00:54:57
Tema 30, ejercicio 5 00:54:58
Pues sí, correcto 00:55:01
Sí, eso es 00:55:04
Ya, pero tema 30 no hay ejercicio 5 00:55:05
00:55:08
Lo estoy viendo aquí 00:55:09
Tema 30, ejercicio 5 00:55:10
Página 109 00:55:13
Pero ese, añade el código anterior 00:55:14
Eso es el que hicimos 00:55:17
00:55:21
vale, vale 00:55:21
vale, gracias 00:55:24
vale 00:55:27
venga, volvemos otra vez al MTP 00:55:33
vale, ¿tenemos ya la librería instalada? 00:55:37
00:55:45
vale, pues entonces nos vamos a 00:55:45
el GitHub 00:55:48
y cogemos el tema 33 00:55:50
el punto 2 00:55:53
La 33.2. 00:56:08
Copiamos este código y lo pegamos sustituyendo, o creando un código nuevo, pero teniendo en cuenta que tiene que haber una pestaña al lado que sea la de Wi-Fi. 00:56:15
Que contenga no esta que estáis viendo aquí, sino la que se conecta a Internet, la que se conecta a nuestro router. 00:56:29
O sea, perdona, la que se conecta al punto de acceso que creamos. 00:56:42
No, la que se conecta al router tuyo. 00:56:48
Vale. 00:56:51
O sea, perdona, Jorge, que para esta práctica tenemos que estar cerca del router, ¿no? 00:56:53
Sí. 00:56:57
Ah, vale, es que yo ahora no estoy. 00:56:58
Ah, sí, sí, pero a partir de ahora ya todo lo que queda de curso ya va a ser imprescindible Internet. 00:57:00
Vale, vale, pues voy a ver si me muevo. 00:57:08
¿Cuál era? ¿El 33.2? 00:57:13
El 33.2, sí. 00:57:16
Y, perdona, que no me da tiempo. 00:57:28
Y la otra pestaña, la de que el ESP se conecte al router, ¿no? 00:57:30
Eso es, la setup wifi. 00:57:37
Entonces aquí quito esto para que me pueda compilar. 00:57:43
Vale, no carguéis este código todavía, ¿vale? 00:57:45
Que os tengo que explicar más cosillas. 00:57:47
Y es importante que me confirméis que todos ya tenéis el código. 00:57:53
Podéis darle a compilar, ¿vale? 00:57:57
Para comprobar que está bien todo. 00:57:59
Y levantadme la mano cuando ya estéis todos, todas con el código compilado. 00:58:03
quiero contar una cosa 00:58:07
pero necesito que estemos 00:58:11
todos al lado 00:58:12
disculpa 00:58:13
¿cuál era el 32 punto? 00:58:21
era el 32 o el 33? 00:58:26
era el 32 o el 33 00:58:38
33, 2 00:58:40
creo que ha dicho 33 00:58:43
73, 2 00:58:45
sí, perdón 00:58:46
ah, por lo que parece 00:58:47
el 32 00:58:48
vale 00:58:49
tiene que compilar 00:58:50
Jorge o da algún error 00:58:52
tiene que compilar 00:58:53
Pero no lo subáis, lo suelo compilar. 00:58:55
A mí me da un error. 00:58:57
Tienes que borrar la línea que pone 00:59:01
comentar esta línea. 00:59:03
Arriba del todo. 00:59:07
El copyright. 00:59:11
No, me da un error en... 00:59:14
Mira, te tiene que dar... 00:59:18
Te tiene que dar un error aquí. 00:59:21
No se ve ahora, Jorge, lo que... 00:59:25
Un segundo. ¿Miguilla? ¿Estás por ahí? ¿Te he escrito un par de veces? Ah, vale, ahora vamos. 00:59:27
Vale, ahora, venga, ahora. ¿No se ve mi pantalla compartida? No. Ah, perdón, vale. ¿Ahora? Vale, esta línea tienes que quitarla. 00:59:47
cuál hay que quitar 01:00:04
es que a mí eso me corta 01:00:10
la que pone 01:00:12
void setup wifi 01:00:14
vamos a ver 01:00:15
esta línea ya para siempre 01:00:18
todo lo que venga, todos los ejercicios 01:00:19
está aquí, pero ya sabéis que está en una pestaña aparte 01:00:21
es decir, hay que quitarla para que nos compile 01:00:24
vale, vale 01:00:26
son tantas cosas 01:00:30
que no se te olvida 01:00:33
José, ¿qué tengo que hacer 01:00:34
para que al abrir 01:00:38
este tema 33.2 01:00:40
me abra también la otra 01:00:41
tengo la parte 01:00:44
se te ha cortado 01:00:46
la micro 01:00:48
José Miguel 01:00:49
no, le he cortado yo sin querer 01:00:51
le he cortado yo 01:00:53
disculpa 01:00:56
José Miguel, discúlpame, espera 01:00:58
Ya, ya estoy 01:01:02
¿Me oyes? 01:01:03
Sí, sí, sí, perfecto 01:01:04
Jorge, lo que quería preguntarte es 01:01:06
¿Qué tengo que hacer para que al abrir 01:01:08
este nuevo programa 01:01:11
el Tiamatente 3.2 01:01:13
he puesto en la misma carpeta al lado 01:01:14
el programa con lo de Wi-Fi 01:01:16
pero no me ha abierto los dos 01:01:17
¿Qué tengo que hacer? 01:01:19
Claro, es que si el fichero lo copias 01:01:21
después de haber abierto 01:01:23
Si el fichero lo copias 01:01:25
después de haber creado 01:01:28
después de ver todo Arduino 01:01:30
el entorno de Arduino no te lo va a ver 01:01:32
entonces tienes que salvar, cerrar y volver a abrir 01:01:34
¿el entorno de Arduino? 01:01:36
eso es, no, solo esa pestaña 01:01:38
solo ese proyecto 01:01:40
compruébalo y me dices 01:01:41
vale, bueno 01:01:43
ya está Jorge, todo bien 01:02:03
solo tengo tres manos levantadas 01:02:04
necesito que vayamos todos a la vez con esto, porfa 01:02:07
a mí me está compilando todavía 01:02:09
vale, yo estaba cambiándome 01:02:15
de sitio, pero ya lo he conseguido 01:02:24
Jorge 01:02:25
la librería esta 01:02:38
de la wifi 01:02:41
la wifi h con tenerla solo en la pestaña 01:02:42
wifi no hace falta duplicarla 01:02:45
no debería hacer falta 01:02:46
pruebo a ver 01:02:49
a mi me parece como que se me queda en el 32% 01:02:51
y no 01:03:03
pero no hay que subir el código 01:03:04
es solo compilarlo 01:03:07
de error no me da 01:03:08
parece un 32% 01:03:10
Ah, ¿no hay que cargarlo 01:03:13
en SP32? 01:03:16
No, no hay que cargarlo 01:03:18
Ah, vale 01:03:20
Pues no, ya dejadlo 01:03:22
pero 01:03:24
ahora explicaré por qué no hay que cargarlo 01:03:25
Vamos a ver 01:03:35
es que puede ser un jaleo si no vamos todos 01:03:37
a hablar con esto 01:03:39
A ver, ¿quién me falta? 01:03:39
Andrés 01:03:46
¿No está por ahí? 01:03:47
¿Eduardo? 01:03:54
Andrés es de los que se ha tenido que ir a las evaluaciones, que ha avisado por el chat. 01:03:59
Y Eduardo ya levanta la mano. ¿Y Rebeca? 01:04:05
Rebeca también se ha tenido que ir. 01:04:09
Vale, vale. Se tocó como todas. 01:04:10
Vale. Estupendo. Entonces, os cuento un poquillo cómo funciona el código. 01:04:13
Vamos a empezar, como siempre, explicando la parte del setup. 01:04:19
entramos luego en el loop y luego ya vemos la función 01:04:23
esta especial de gestión 01:04:28
del MQTT 01:04:33
vale, entonces ¿qué cosas hacemos aquí? bueno pues en el setup 01:04:34
lo único que hacemos es establecemos el pin 26 como entrada 01:04:40
que por cierto ahí tenéis que aseguraros de que hay un pulsador 01:04:44
¿vale? en el pin 26, establecemos la 01:04:48
comunicación por el puerto serie, le pedimos al ASP32 que se conecte a la red Wi-Fi que ya existe 01:04:52
y aquí empezamos ya a hacer cosas relacionadas con MQTT Client. MQTT Client, por otro lado, es un 01:04:58
objeto que hemos creado aquí un poquito más arriba, se crea de esta manera, depende de esta 01:05:05
librería y la forma de crear el objeto es nombre de la librería, como en todas, nombre del objeto 01:05:11
que le podemos llamar como nos dé la gana 01:05:22
y entre paréntesis tenemos que indicarle 01:05:23
de qué forma va a obtener el acceso a Internet, ¿vale? 01:05:26
Y este Wi-Fi corresponde con este otro objeto, ¿vale? 01:05:30
El objeto Wi-Fi Client, llamado Wi-Fi, 01:05:33
es el que le va a proporcionar acceso a Internet, ¿vale? 01:05:35
Para que sepáis qué hace cada parte. 01:05:38
Entonces, una vez que ya tengo acceso a Internet, 01:05:41
el objeto MQTT Client es el que me va a proporcionar 01:05:44
los métodos adecuados para que yo pueda hablar 01:05:46
con el servidor de MQTT y enviar información de un sitio a otro. 01:05:50
Vale, entonces, lo que hago aquí es básicamente especificar cuál va a ser la dirección de 01:05:55
internet del servidor que me va a atender, el servidor de MQTT, y cuál es el puerto 01:06:02
en el que está escuchando ese servidor. 01:06:08
Por cierto, el puerto estándar de MQTT es este, el 1883. 01:06:11
Nosotros utilizamos otro porto diferente, ¿vale? 01:06:16
Para que lo tengáis en cuenta, que es el 11883. 01:06:19
¿Vale? ¿Viene hasta aquí? 01:06:23
Sí. 01:06:30
Vale. 01:06:31
Disculpa, ¿cuál dice que era el estándar? 01:06:33
Sí, quitándole el 1 primero. 01:06:37
Ah, el 1883. 01:06:40
Eso es. 01:06:43
Vale. 01:06:45
Entonces, de este código que tenéis aquí, que es el loop, 01:06:46
por simplicidad, para explicar ahora la parte que me interesa, 01:06:48
vamos a quitar esta parte de aquí. 01:06:51
¿Vale? 01:06:53
Y se me queda un loop así simplificado, ¿vale? 01:07:01
Básicamente lo que hace es que, ¿esos recordáis lo que era? 01:07:04
Mirar. 01:07:11
Exactamente. 01:07:12
Entonces, la función MQTTClient.loop, o el método loop de MQTTClient, 01:07:13
se llama loop porque está pensada para que la pongamos dentro del loop del SP32, ¿vale? 01:07:18
Se tiene que ejecutar periódicamente. 01:07:23
pero resulta que si no se conecta al MQTC 01:07:24
va a devolver un error, va a devolver como un código cero 01:07:33
mientras que si que está conectado pues devolverá un código positivo 01:07:37
de forma que con esta pregunta lo que hacemos es 01:07:40
si al llamar a esta función nos dice que no está conectado 01:07:43
entonces hacemos lo que está aquí 01:07:47
en caso de que sí que estamos conectados, haremos el else 01:07:49
que es lo que me acabo de cargar, ahora lo explicaremos 01:07:55
entonces vamos a suponer que estamos en este estado, porque aquí si os fijáis 01:07:58
yo solo establezco cuál es el servidor de MQTT pero no me conecto 01:08:01
de forma que una vez que se haya ejecutado el setup y entremos en el loop 01:08:06
lo primero que sucederá será que el MQTT dirá no, no estoy conectado 01:08:10
y entonces se llamará a MQTT connect, pues vamos a ver qué es lo que hace 01:08:14
y luego vemos lo que me quedaba 01:08:19
de ver del loop 01:08:21
idme parando por favor si voy demasiado rápido 01:08:23
o comentando 01:08:25
lo que consideréis 01:08:27
vale 01:08:28
espera Jorge, si perdona 01:08:30
habías borrado todo lo que estaba en el loop 01:08:32
no, había borrado todo lo que estaba dentro del S 01:08:34
para que quedara claro 01:08:37
cuál es la estructura 01:08:39
pero no tenemos que borrarlo 01:08:40
no, no, no, esto es para que quede más claro 01:08:42
si no estamos conectados hago esto 01:08:45
y si estamos conectados 01:08:47
hago lo que he borrado, ¿vale? 01:08:48
Vale, vale, hace Jorge. 01:08:52
Vale, entonces, ¿qué es lo que hace, qué es lo que sucede 01:08:55
cuando descubrimos que no estamos conectados? 01:08:58
Bueno, pues se llama a una función que hemos creado nosotros 01:09:00
que se llama MQTT Connect. 01:09:03
¿Qué hace MQTT Connect? 01:09:05
Bueno, pues vamos por líneas. 01:09:07
Escribo por pantalla que me estoy tratando de conectar 01:09:10
y aquí, vamos a ver, vale, ¿qué hace esta línea? 01:09:12
¿Qué pensáis que puede hacer por el nombre del método? 01:09:19
Mientras esté conectado 01:09:30
pues esté la entrada 01:09:31
o un dato o un algo 01:09:33
¿no? Mientras esté conectado está esperando algo 01:09:35
Mientras esté conectado 01:09:37
Mientras no esté conectado 01:09:39
Mientras no haya ningún cliente 01:09:41
conectado 01:09:45
Bueno, mientras no esté conectado 01:09:46
¿vale? Fijaos en esta admiración 01:09:49
que es lo que hace es que mientras no esté conectado 01:09:51
o sea, vamos a suponer 01:09:53
estamos otra vez ante el mismo caso 01:09:55
que os conté cuando empezamos con el wifi 01:09:57
si yo estoy haciendo un dispositivo 01:09:59
que para que funcione, que para que tenga algún sentido 01:10:01
tiene que estar conectado a MQTT 01:10:04
pues tenemos que tener un while 01:10:05
esto es, si no estás conectado 01:10:07
mantente tratando 01:10:10
de conectarte una y otra vez 01:10:11
porque si no estás conectado no vales para nada 01:10:13
lo que hace este while es que 01:10:15
mientras no esté conectado 01:10:17
porque el método connected lo que dice es 01:10:19
verdadero cuando está conectado 01:10:21
y falso cuando no, pues mientras no esté conectado, hacemos esto, ¿vale? ¿Qué es 01:10:23
lo que hacemos aquí? Bueno, pues el método connect, ¿vale? Ojo, no confundir con el 01:10:29
connected. Connected es para hacer preguntas, para preguntar el estado, mientras que connect 01:10:35
es para dar la orden de conéctate, ¿vale? Pues mqttcryen.connect lo que hace es dar 01:10:39
la orden a nuestro SP32 01:10:48
para que se conecte 01:10:50
al servidor de MQTT 01:10:52
¿qué es lo que pasa? servidores de MQTT 01:10:54
normales que podéis montar vosotros 01:10:56
o que ya existan como ejemplos 01:10:59
no nos van a pedir 01:11:00
más que la primera parte 01:11:02
nos pedirán solo esto 01:11:04
¿vale? y aquí 01:11:06
es importante que 01:11:08
yo he puesto mis siglas 01:11:10
donde pone SP32-JGA 01:11:11
por favor 01:11:15
y esto es importante que lo hagamos todos y todas 01:11:15
porque si no vamos a tener problemas 01:11:18
cada uno que ponga sus siglas 01:11:19
¿vale? y de hecho esto 01:11:22
como me lo conozco de otros cursos, bajad toda la mano 01:11:26
por favor, ¿vale? y levantad 01:11:29
la mano cuando hayáis 01:11:37
cambiado las siglas y una vez cambiadas las siglas 01:11:39
ya sí que le podéis dar al botón de subir 01:11:41
¿vale? 01:11:43
Jorge, perdona, es que me han llamado 01:12:05
al timbre, no... 01:12:07
que tenemos que poner el nombre, ¿no? 01:12:08
Sí, mira Gloria, aquí en esta línea 01:12:10
¿vale? donde pone 01:12:12
SP32-JGA 01:12:16
Pues ahí tienes que poner tus siglas, tus iniciales. 01:12:19
Vale, solo en un chequeo, ¿no? 01:12:23
Sí, en esta línea. 01:12:26
Y ya le puedes dar a subir. 01:12:27
Y cuando lo tengas hecho, levantas la mano, por favor. 01:12:29
Y así yo sé que todos me habéis hecho caso. 01:12:31
Es que el problema es que esto que estamos cambiando 01:12:35
es el identificador con el cual nos registramos 01:12:37
en el servidor de MQTT. 01:12:41
Si hay dos usuarios que se registran 01:12:44
con el mismo identificador, 01:12:47
el servidor va a echar la anterior 01:12:49
¿vale? entonces 01:12:51
estaremos constantemente echando el uno al otro 01:12:53
y no funcionará nada y será un desastre 01:12:55
entonces como el curso anterior 01:12:57
ya me pasó que hubo gente que no me hizo caso y dejó 01:12:59
las siglas, pues entonces estaban todo el rato 01:13:01
echándose los unos a los otros 01:13:03
entonces, vale 01:13:04
me falta Antonio 01:13:07
José Miguel 01:13:08
a mí es que se me 01:13:10
queda ahí en el 01:13:12
32% compilando 01:13:15
y no sé por qué 01:13:16
Pero antes no llegó a... 01:13:18
No, al terminar de compilar 01:13:21
no se queda el 32%. 01:13:23
Pero el 32% ya no es compilar, es ya subir el código. 01:13:24
O estar subiendo, no sé. 01:13:27
Vale, haz una cosa. Vete a 01:13:28
herramientas y en 01:13:30
velocidad de subida, ¿qué tienes 01:13:33
marcado? 01:13:34
Herramientas... 01:13:36
¿Dónde estaba la velocidad de subida? 01:13:37
Que no recuerdo. 01:13:44
Upload speed. 01:13:46
¿Dónde está? 01:13:49
como 3 más arriba 01:13:49
de puerto 01:13:55
¿qué velocidad tienes 01:13:56
Antonio? 01:14:09
monitor 01:14:12
serie, es que no sé exactamente 01:14:13
mira mi pantalla por favor 01:14:15
vale 01:14:17
un momento 01:14:19
es que ahí tengo 01:14:22
el puerto 01:14:29
el con 3 y 01:14:30
no sé, es que no veo 01:14:33
muy bien tu pantalla 01:14:38
vale, compárteme tu pantalla 01:14:38
por favor 01:14:45
es que no sé, yo creo que aquí tengo 01:14:46
vale, comenté 01:14:48
es que 01:14:53
no sé por qué, pero creo que aquí 01:14:56
está eso, no me ha cogido la, no sé por qué me ha 01:14:58
cambiado, tengo ahora Arduino Uno 01:15:00
ah, eso explica 01:15:02
que no te parezca 01:15:04
y esto estaba, no me acuerdo 01:15:05
ahora ya no 01:15:08
mira, compárteme la pantalla, te voy guiando 01:15:09
vale, lo mentiro 01:15:12
Y hemos quedado en que Andrés estaba afuera y Rebeca también, ¿verdad? 01:15:14
Sí, ahí en placa, es raro, es como, ¿has instalado de nuevo el Arduino? 01:15:29
No. 01:15:40
¿O has cambiado de usuario con respecto a otros días? 01:15:44
Yo creo que no, lo vuelvo a arrancar. 01:15:47
Dale a gestor de tarjetas 01:15:50
y pon ahí 01:15:54
ESP32, escribe ESP32 01:15:57
No, o sea 01:16:00
ESP 01:16:02
Pues sí, se te ha borrado 01:16:03
A ver, dale a cerrar 01:16:11
Dale a archivo 01:16:13
Dale a 01:16:15
abrir reciente 01:16:19
No, no, ahí no 01:16:20
Vamos a ver el escritorio 01:16:23
que tengo 01:16:26
que tenía por aquí 01:16:27
una carpeta de ejemplos 01:16:32
o de ejercicios 01:16:35
yo que sé, pues cualquiera de estos 01:16:36
bueno, pues haz una cosa 01:16:43
porfa, vete a 01:16:45
cancelar 01:16:47
pero voy a ver en este si 01:16:49
no, no, es que no tienes instalado 01:16:51
el da igual 01:16:53
no tienes instalado 01:16:54
instale archivo 01:16:55
01:16:59
preferencias 01:17:00
instale a donde pone gestor de urls adicionales 01:17:02
01:17:09
y ahí vas a pegar 01:17:10
lo que te voy a mandar 01:17:13
por el chat 01:17:15
ah bueno, la url 01:17:16
eso es, eso lo coges 01:17:26
lo copias 01:17:28
y lo pegas en la ventanita 01:17:29
dale a ok 01:17:31
dale a ok 01:17:37
dale a herramientas 01:17:39
placa 01:17:42
gestor de tarjetas 01:17:44
esp32 01:17:47
escribes 01:17:50
Pues dale a actualizar 01:17:51
Versión 1.0.6 01:18:01
¿Cómo que versión 1.0.6? 01:18:05
Eso es antiquísimo 01:18:10
Bueno, pues nada, eso tardará unos minutillos 01:18:11
¿Nos permites que siga con la explicación? 01:18:16
Sí, sí, por supuesto 01:18:19
Sí, sí, disculpa, voy a... 01:18:20
O mira, si queréis 01:18:23
Como Sony 20 01:18:27
Si os parece 01:18:28
Mientras termina de instalarse Antonio 01:18:30
Hacemos el descanso 01:18:32
Y luego después del descanso 01:18:34
ya continuamos con 01:18:36
la explicación del ejercicio 01:18:38
A mí me parece bien 01:18:39
pero podemos, Jorge, mirar 01:18:42
lo que faltó anterior 01:18:44
o lo dejamos para el final 01:18:46
¿Cómo, cómo, perdón? 01:18:47
Lo que te comenté que no me podía 01:18:48
conectar a la P 01:18:52
Ah, pero yo 01:18:53
necesitaría hacer un descansito. ¿Guille, estás por ahí? 01:18:56
Vale 01:18:59
¿Guille? 01:18:59
O si quieres 01:19:06
lo dejamos para el final de la clase 01:19:06
vale, sí, te lo reviso después de la clase 01:19:08
vale 01:19:11
cuando terminemos 01:19:12
es porque no me puedo 01:19:14
estar ahí 01:19:16
Guillermo está contestando por el chat 01:19:19
vale 01:19:23
vale, vale 01:19:24
pues sí, si no te importa te lo miro después 01:19:26
de la clase 01:19:29
necesito también un poco descansar la voz 01:19:30
vale, vale, perfecto 01:19:33
vale, pues hacemos el descanso 01:19:36
nos vemos en 10 minutillos 01:19:38
no, es muy raro 01:20:16
le pasa también al Rory, es verdad 01:20:18
no sé, yo la sacaría 01:20:19
a tema de Windows 01:20:21
un pequeño descanso, nos vemos en 10 minutos 01:20:22
de acuerdo, entonces cuando actualice esto 01:20:29
ya el programa y todo no tengo que tocar 01:20:31
nada, ¿no? 01:20:33
ya le compila 01:20:36
y sube el código 01:20:37
exactamente, disculpa 01:20:38
nada, nada, venga, hasta ahora 01:20:40
hasta ahora 01:20:42
Gracias. 01:21:14
Hola, buenas tardes. Jorge, estoy aquí y de las SP32 Arduino, de las que aparecen arriba, ¿cuál tengo que coger? 01:25:08
ya que se llama 01:30:09
DOIT 01:30:14
SP32 01:30:16
DEVKIT V1 01:30:18
está al final 01:30:25
o no 01:30:31
ya la tienes 01:30:32
está abajo 01:30:36
a ver está 01:30:41
la de 01:30:44
la ESP 01:30:46
VN IOT1 01:30:48
no, no, no 01:30:50
es justo debajo 01:30:51
no, no me aparece 01:30:55
do it 01:30:57
do it 01:30:57
esp32 01:31:00
devkit v1 01:31:02
vale, bueno, pues a ver si esto me sirve 01:31:04
también, si alguna vez me pasa para que 01:31:06
todo esto está 01:31:08
apuntado en el manual, en el primer 01:31:10
tema, vale, si acaso te pasa 01:31:13
más adelante, que sepas que lo tienes ahí documentado 01:31:14
vale, si es que he ido ahí con 01:31:17
las piezas, pues la verdad 01:31:18
Jorge, perdona 01:31:19
que digo que esto es lo mismo 01:31:24
que decía que esto es lo que me pasó a mí 01:31:25
que se quedó pillado 01:31:28
y se desinstaló todo 01:31:29
y de repente al compilar 01:31:32
ya no estaba 01:31:34
Sí, es parecido, sí 01:31:34
No sé qué habrá pasado 01:31:37
pero no 01:31:43
en todos los años que llevo enseñando a Rubino 01:31:44
nunca a nadie se le había desinstalado 01:31:46
lo digo porque yo 01:31:47
cuando lo volví a instalar no me funcionó 01:31:50
tuve que borrar 01:31:53
las carpetas del sistema 01:31:54
bueno, a ver si con Antonio no hay ese problema 01:31:56
ya, por eso 01:31:59
ahora nos tiras 01:32:00
vale, y entiendo 01:32:02
que todos los demás 01:32:05
aunque se hayáis bajado la mano ya lo teníais, ¿verdad? 01:32:06
¿estamos listos para seguir? 01:32:09
Antonio, ¿te ha compilado? Confírmame, por favor 01:32:11
está en ello 01:32:12
todavía no ha terminado 01:32:15
está ahí 01:32:16
no sé si pararlo y volverlo a arrancar 01:32:18
porque está 01:32:21
ahora parece que sigue un poco 01:32:22
pero me está costando 01:32:24
vale, bueno pues 01:32:25
voy a seguir con la 01:32:28
MTQT 01:32:30
he conectado y ya está 01:32:32
ah, en el porto serie 01:32:35
01:32:38
ahora lo vemos 01:32:40
dejadme que me explique el código 01:32:42
y ahora explicamos paso a paso 01:32:44
qué es lo que está haciendo 01:32:46
y qué es lo que vemos 01:32:48
en el porto de serie. 01:32:49
Entonces, 01:32:50
en esta línea, 01:32:51
como decía antes, 01:32:52
el mqttclient.connect 01:32:54
recibe tres informaciones. 01:32:56
La primera ya la hemos visto. 01:32:59
Es un identificador 01:33:00
que debe ser único 01:33:01
para cada dispositivo 01:33:02
que se conecta a ese servidor. 01:33:05
Nosotros hemos puesto aquí 01:33:07
sp32-jga, 01:33:07
pero podríamos haber puesto 01:33:09
yo qué sé, 01:33:10
lo que fuera, 01:33:12
cualquier cosa. 01:33:12
Ya veremos esto 01:33:13
cómo lo hacemos 01:33:13
luego de forma automática 01:33:14
que sea aleatorio 01:33:17
luego el segundo parámetro 01:33:19
este que aquí aparece como 01:33:21
sindormir.net 01:33:23
esto junto con el tercero 01:33:24
solo es necesario cuando 01:33:27
el servidor de MQTT 01:33:29
cuando el broker requiere usuario y contraseña 01:33:31
porque justamente 01:33:33
sindormir.net es el usuario 01:33:35
y espacio mistela es la contraseña 01:33:36
así que pues nada 01:33:39
eso es lo que hace la conexión 01:33:44
Conéctate al servidor MQTT que establecimos antes con este identificador, con este usuario y con esta contraseña. 01:33:45
Y fijaos que este MQTTClient.connect está dentro de un if. 01:33:53
El if es capaz de evaluar si le ha ido bien, si ha sido capaz de conectarse. 01:33:58
De forma que cuando se ha conectado, lo que hace es decir, por el puerto serie la palabra conectado 01:34:02
y también hace una cosa que veremos un poquito más adelante, que es que de paso, ya que está ahí, 01:34:08
Pues se va a suscribir a un tema que es curso SP32, ¿vale? 01:34:13
Ya veremos esto, que es lo que implica un poquito más adelante, ¿vale? 01:34:18
En caso de que no pueda conectarse, por lo que sea, nos tiene que aparecer una almohadilla 01:34:21
y volver a intentarlo, puesto que estamos dentro de un while, 5 segundos después. 01:34:27
¿Vale? ¿Queda claro lo que hace el MQTT Connect? 01:34:33
de forma que 01:34:36
si todo va bien 01:34:42
mi móvil para que se conecte a él 01:34:44
ahí está 01:34:51
pues nos va a aparecer mensajes parecidos a estos 01:35:00
conectado a la red 01:35:03
la que sea, con IP la que sea 01:35:05
ahora ya la IP no nos da igual 01:35:07
ya no nos interesa la IP para nada 01:35:09
la IP que le ha dado al SP32 01:35:11
no nos es de interés porque 01:35:12
lo vamos a manipular de otra manera 01:35:14
y luego tiene que aparecer lo de conectando al servidor MQTT 01:35:16
punto punto punto conectado 01:35:19
si tenemos esta información 01:35:21
que nos aparece por el puerto serie 01:35:24
significa que está bien 01:35:25
¿a alguien no le aparece esto? 01:35:26
a mí se me queda conectando 01:35:31
¿a la wifi o al MQTT? 01:35:32
al servidor MQTT 01:35:36
salen los asteriscos cada 5 segundos 01:35:37
las almohadillas 01:35:39
pues es raro 01:35:40
es muy raro 01:35:44
a ver, espérate 01:35:45
no puede haber nadie 01:35:48
con tus siglas, ¿verdad? 01:35:50
Salvador 01:35:51
A mí también me salen almohadillas 01:35:53
¿Quién eres? Perdón que no... 01:35:55
Pedro 01:35:57
Yo lo tengo bien, Salvador y lo tengo bien 01:35:58
Vale 01:36:02
Y Pedro 01:36:03
No hay nadie que empiece con P 01:36:05
Ah, sí, Paloma 01:36:07
Pero Paloma de Frutos es 01:36:10
PFC 01:36:12
Y tú eres... PJCV 01:36:13
Vale, es que es raro que haya colisiones 01:36:16
con esto 01:36:18
dadle por favor al botón 01:36:19
de reset, de la placa 01:36:22
del SP32, a ver si soluciona 01:36:24
tanto Pedro como Sergio 01:36:25
vale, un segundito 01:36:27
voy a ver 01:36:34
voy a ver los logs 01:36:36
del servidor 01:36:38
a ver si puedo averiguar que es lo que está pasando 01:36:39
yo ya estoy 01:36:48
¿y qué era? 01:37:00
he reseteado 01:37:03
y ya me sale como que estoy conectado 01:37:04
el mismo cárter que te sale a ti. 01:37:06
Vale. 01:37:09
A ver, ¿le puedes dar, por favor, Sergio, a reiniciar? 01:37:09
Sí, sí, le he dado unas cuantas veces, pero... 01:37:14
Sí, sí, pero dale otra vez para que yo vea los logs del servidor. 01:37:17
Le acabo de dar. 01:37:20
Si no se hubiese conectado a la Wi-Fi, 01:37:28
aparecería el mensaje antes que el de conectando el servidor MQTT, ¿no? 01:37:30
Eso es. 01:37:33
Bueno, si querían los puntitos. 01:37:35
Bueno, voy a mirarlo, a ver. 01:37:37
AVG se acaba de conectar. 01:37:39
A PJCV le ha echado 01:37:41
Pues 01:37:46
A mí me sale 01:37:48
A mí me sale como conectado 01:37:50
Porque me ha echado 01:37:52
Pero a lo mejor fue de antes 01:37:55
A lo mejor es de antes 01:37:57
A lo mejor es que 01:37:59
Es que antes pensaba que estaba conectado 01:38:01
Y se ve que no, que no estaba conectado 01:38:04
Vale 01:38:06
Vale 01:38:07
Aquí hay 01:38:09
Vale, AVG 01:38:11
¿Quién es? 01:38:14
Yo, pero lo que pasa es que me da problemas 01:38:16
aquí 01:38:18
en el puerto serie me sale una resta de caracteres 01:38:18
extraños 01:38:22
me compila bien, pero no 01:38:23
Vale, a ver, compárteme la pantalla 01:38:29
por favor 01:38:32
Sí, un momento 01:38:33
Vale, y a ti Sergio, no te veo en los logs 01:38:38
¿Puedes comprobar 01:38:41
Sergio 01:38:43
que aquí tienes esto 01:38:45
así tal cual? 01:38:47
¿Que el setup está así? 01:38:49
A ver. No veo. 01:38:51
Veo el 01:38:56
puerto serie. 01:38:57
¿Qué? Hasta aquí. ¿Qué quieres? 01:39:00
¿Cómo? ¿No ves? 01:39:02
Sí, nada más que veo tu puerto serie. 01:39:04
No veo tu código. 01:39:05
¿Y os pasa lo mismo a los demás? 01:39:09
Yo estoy 01:39:12
bien. A mí me dice conectado. 01:39:13
No, no. Pregunto que si... 01:39:15
O sea, ¿ahora qué veis? 01:39:17
El COM3 y tu... 01:39:18
Y carácteres raros. 01:39:21
Espérate, ¿quién está compartiendo? 01:39:26
Ah, es que yo estaba compartiendo. 01:39:28
Vale, vale, que esté compartiendo Antonio. 01:39:29
Y eso es la ruta de caracteres que me salen por ahí. 01:39:31
Vale, claro, mira, abajo donde pone 9600 tienes que poner 115.200. 01:39:34
Ah, joder, vale. 01:39:39
No, lo tienes justo abajo. 01:39:42
El siguiente al que está seleccionado. 01:39:47
Vale, y ahora dale a limpiar salida. 01:39:50
no, no, no 01:39:53
y ahora dar el reset 01:39:54
vale 01:39:57
de acuerdo 01:39:59
espera, espera, no te vayas 01:40:01
conectado, vale, déjame que vea los logs 01:40:04
AVG 01:40:08
vale, perfecto 01:40:11
vale, pues parece que está bien 01:40:17
vale, pues te deja de compartir 01:40:21
ya puedo ver eso 01:40:22
y Sergio 01:40:23
¿qué tal? 01:40:26
¿te ha dejado? 01:40:28
No, me sale lo mismo, pero creo que no está conectándose a la Wi-Fi. Estoy mirando aquí 01:40:29
con el móvil los dispositivos conectados a la Wi-Fi y no me suena. Vamos, no lo veo 01:40:38
y de hecho desenchufo el SP32 y los dispositivos que hay conectados a mi Wi-Fi no cambian, 01:40:47
con lo cual no se está conectando 01:40:54
pero es raro porque 01:40:55
ah, pero espera 01:40:57
si no no diría conectado por el puerto serie 01:40:58
ya, eso es lo que me extraña 01:41:04
pero haz una cosa, compárteme la pantalla 01:41:06
porque tú lo conectas a través 01:41:08
del ordenador, o sea, a través del router 01:41:14
o a través del móvil 01:41:16
bueno, lo he conectado a través de un punto de acceso 01:41:17
que a través del router no me cogía bien 01:41:20
la señal 01:41:24
entonces 01:41:25
pues es lo que 01:41:26
es lo que tenía puesto 01:41:30
a ver 01:41:32
¿dónde estás? 01:41:33
que no te veo 01:41:35
vale, y enséñame eso 01:41:36
dale el reset 01:41:52
para que vea 01:41:57
cómo arranca 01:41:58
no, se me ha pillado 01:42:04
vale, haz una cosa 01:42:07
cierra la ventana del puerto serie 01:42:13
se me ha quedado pillado esto 01:42:15
¿qué es esto? ¿todo el ordenador? 01:42:17
bueno, salvo a 01:42:20
Jorge 01:42:28
que no sé 01:42:29
no sé si reiniciar el equipo 01:42:31
o qué, no sé 01:42:34
es que no, ahora el puerto com 01:42:36
se me ha quedado congelado 01:42:38
¿y si quitas el SP32 y lo vuelves a poner? 01:42:39
voy a cambiarlo de puerto USB 01:42:43
a ver 01:42:44
sí, preguntaba 01:42:45
además de Sergio, ¿alguien más tiene problemas? 01:42:48
para que le pueda hacer una mano mientras... 01:42:50
Todos los demás ya estáis como conectados, ¿verdad? 01:42:53
Vale, pues os voy a pedir que descarguéis un programa que se llama MQTT Explorer. 01:42:55
El enlace también está en la documentación y creo que debería estar también para Mac. 01:43:05
Os lo paso en el chat porque esto nos va a venir muy bien para depurar posibles fallos que tengamos con MQTT. 01:43:11
Vale, sí, efectivamente está para Windows 01:43:21
para Mac y para Linux 01:43:25
Jorge, ¿lo descargamos en el ordenador? 01:43:26
Sí, por favor 01:43:56
Vale, Jorge, he visto el leasing 01:43:57
del punto de acceso 01:44:00
y sí le está dando 01:44:02
una IP al ESP 01:44:03
¿Y si tú le haces ping? 01:44:06
No, no me deja, no me está enrutando 01:44:24
pero lo voy a conectar directamente al router 01:44:25
porque como lo tenía así, funcionaba en red local 01:44:27
pero hoy no me está funcionando 01:44:29
qué raro 01:44:32
Sí, ayer no funcionaba. 01:44:33
Vale. 01:44:37
Oye, Jorge, ¿qué descargamos? 01:44:37
¿El portable o...? 01:44:40
Yo tiraría más del instalador, si no te importa meterle. 01:44:43
Este es un programa que vamos a utilizar un montón a partir de ahora. 01:44:51
Claro, pero es que donde pone Windows, al lado pone portable, instale. 01:44:55
No, por portable o instale. 01:45:00
Yo te recomendaría que sí, que te lo dejaras instalado 01:45:02
porque lo vamos a utilizar mucho, pero si por lo que sea 01:45:08
prefieres utilizar el portable, pues el portable 01:45:10
Vale 01:45:12
Vale, no te preocupes Jorge, lo voy a conectar 01:45:14
a la wifi del router 01:45:21
a ver si hoy hay mejor cobertura 01:45:22
y ya está 01:45:24
Vale 01:45:25
Bueno 01:45:26
Mientras Sergio, descarga también el programita este 01:45:29
el método de Explorer 01:45:32
y cuando lo tengáis, abrimos 01:45:33
el programa. Nos tiene que aparecer 01:45:36
una ventana como esta. 01:45:38
¿Verdad? 01:45:43
No se ve. 01:45:45
No se ve nada. 01:45:47
Ah, vale. Es que... 01:45:49
Al haber compartido antes... 01:45:50
Vale. ¿Ahora? 01:45:56
¿Ahora? 01:46:00
Sí, ahora sí. 01:46:02
Ahora sí. 01:46:03
Vale. Esto mismo que os estoy enseñando 01:46:05
está también en el manual, pero os lo digo. 01:46:08
Si estáis aquí en esta ventana, que es la de añadir 01:46:10
conexiones, os voy diciendo lo que tenéis que poner. 01:46:11
¿Vale? 01:46:14
En nombre, en name, pues creo que pondría MQTT de SinDormir. 01:46:14
¿Vale? Protocolo está bien. 01:46:23
Donde pone host hay que poner MQTT.SinDormir.net. 01:46:27
Espera un poco, Jorge. A mí todavía no se me ha instalado. 01:46:35
Ah, vale, vale. 01:46:38
Bueno, básicamente... 01:46:43
A mí no se me ha descargado aún, ¿eh? 01:46:44
A mí es que aún no se me ha descargado. 01:46:46
Vale, vale. 01:46:48
Bueno, pues haced una cosa. 01:46:54
Ir levantando la mano según vayáis terminando de instalarlo. 01:46:55
Mira, Andrés y Rebeca ya están de vuelta 01:46:58
Bienvenidos 01:47:05
Id descargando, Andrés y Rebeca, por favor 01:47:06
Id descargando este programa 01:47:09
Os lo pongo de nuevo en el chat 01:47:11
Ah, mira, ya lo estaba diciendo Guille 01:47:13
Id descargando este programa 01:47:16
Y lo arrancáis 01:47:20
Lo estamos configurando 01:47:22
Y luego ya os echo una mano 01:47:23
Con la parte del SP32 01:47:25
Para que os podáis reenganchar 01:47:31
Yo tengo que irme en otro cuarto de hora 01:47:32
me voy otra vez 01:47:39
Ah, bueno, pues entonces ya directamente 01:47:39
te ves el vídeo 01:47:42
Sí, veré el vídeo o a ver si lo consigo enterar 01:47:44
porque así hoy va a ser complicado 01:47:46
Vale 01:47:48
¿Puede ser un usuario el mismo que has puesto tú? 01:47:49
Eso es 01:48:14
Vale, sin dormir 01:48:15
Y la clave es Paciomistela 01:48:16
Ahí está el programa realmente 01:48:19
¿Cómo, perdón? 01:48:22
el que está puesto en el programa 01:48:24
que hemos hecho 01:48:27
eso es, sí, sí, sí 01:48:28
tanto el SP32 como nosotros vamos a utilizar 01:48:30
el mismo usuario 01:48:32
se podría configurar para que cada uno tuviera un usuario 01:48:34
pero como no es necesario, mientras todos tengamos 01:48:36
identificadores diferentes 01:48:38
pues lo vamos a poner así que es más sencillo 01:48:40
¿y no hay que marcarlo de validar certificado? 01:48:42
yo no veo muy bien el usuario 01:48:46
la contraseña del usuario 01:48:56
es indormir.net y la contraseña 01:48:58
espacio miscelas, es lo mismo que hay en el código 01:49:00
Y el puerto también hay que añadir el 1, ¿no? 01:49:02
El puerto hay que añadir el 1, porque por defecto es el 1883, pero nosotros utilizamos el 11883 01:49:07
Cuando lo tengáis, le dais al botón de salvar, ¿vale? 01:49:13
Y luego le dais al botón de conectar 01:49:20
Ah, ya has dicho que hay que quitarlo de válida y... 01:49:22
Eso es, sí 01:49:31
Eso tiene que estar tal y como aparece aquí o tal y como aparece en el documento, que si no recuerdo mal 01:49:32
también en la página 01:49:39
¿dónde está? 01:49:41
aquí está, en la página 01:49:44
123 01:49:45
también aparece cómo hay que configurarlo 01:49:50
¿vale? y repito 01:49:53
cuando lo tengáis configurado le dais al botón de salvar 01:49:59
que eso nos permitirá 01:50:02
no tener que estar escribiendo 01:50:04
lo mismo el resto de las veces 01:50:06
y luego le damos a conectar 01:50:08
¿vale? y levantando las manos por favor 01:50:10
según lo vayáis teniendo 01:50:23
Jorge, perdona 01:50:24
¿dónde venía la configuración avanzada 01:50:26
para darle una IP estática? 01:50:28
Ah, en el anexo 01:50:33
espérate 01:50:36
ah, espérate, eso no sé si fue 01:50:39
venía en la web de Expressif 01:50:41
no me acuerdo, sé que lo explicaste 01:50:42
el otro día, pero no 01:50:45
no sé si eso lo puse como anexo o lo quité al final 01:50:46
un segundo 01:50:49
o si lo miramos en la página web de Expressif 01:50:50
yo creo que está como anexo 01:50:52
un segundito 01:50:54
no, pues estamos hablando de lo que te digo 01:50:55
te digo como sea 01:51:20
me resulta extraño que 01:51:22
que eso pueda estar 01:51:30
afectándote 01:51:33
yo sí 01:51:36
porque si me dices que 01:51:38
que el mensaje de conectado al servidor 01:51:40
MQTT es posterior a la conexión 01:51:42
a la wifi, pero 01:51:45
ahora la wifi no imprime nada por pantalla 01:51:45
sí, los puntitos 01:51:48
01:51:51
Pero no sale el mensaje de los puntitos. 01:51:52
A mí no me salen ni los puntitos ni... 01:51:54
Es que eso depende 01:51:56
de la función SetupQuiz y que tengas. 01:51:57
Claro, es que la he vuelto a meter dentro 01:52:02
del código porque hoy sí me estaba funcionando 01:52:04
en la pestaña aparte, pero 01:52:07
como el otro día la pestaña aparte daba fallos... 01:52:08
Vale, espera. Compárteme 01:52:11
la pantalla, por favor. La volví a cambiar, entonces... 01:52:12
Voy a mirar a ver si 01:52:18
a ver 01:52:35
¿Vale? Baja un poquito 01:52:35
Bueno, habías quedado en enseñarme el loop 01:52:43
que al final no lo he visto, no sé si lo tengo bien 01:52:48
Me han preguntado, ¿tienes el loop como lo tengo yo? 01:52:51
pero al final no se estaba compartiendo 01:52:55
y no sé si... No, el loop no está bien 01:52:57
Claro, pues eso hemos quedado 01:52:59
pendientes de verlo 01:53:01
Claro, cogete 01:53:03
lo de internet 01:53:05
de GitHub 01:53:06
Sí, el tema 01:53:10
33.2 01:53:12
Pero como habías dicho que había que quitar 01:53:14
no sé qué 01:53:18
No, no, no, era solo para que la explicación quedara más clara 01:53:19
Ah, vale, vale 01:53:22
Pues ya está, el problema entonces es ese 01:53:24
No, no, pero has quitado el... 01:53:25
Ah, vale, perdón 01:53:30
Aún así no creo que sea ese el problema 01:53:32
Ya, no 01:53:36
Voy a... 01:53:38
Voy a... no sé 01:53:40
Espera, abre el puerto serio, por favor 01:53:41
a reiniciar el router 01:53:43
bueno 01:53:45
abre primero el portaserie 01:53:46
es que tengo mal puesta 01:53:48
la contraseña de la wifi, la voy a cambiar 01:53:52
porque tengo un cacao 01:53:53
déjame que me 01:53:55
porque es que cambia la contraseña y ahora ya 01:53:57
estoy con la 01:53:59
red que no es con la contraseña 01:54:02
te dejo a tu rollo 01:54:03
voy a mirarlo yo 01:54:06
vale, muy bien 01:54:06
por cierto, la aplicación si que te la has podido 01:54:08
configurar, verdad Sergio? 01:54:12
Sí, la aplicación creo que ya... 01:54:13
¿La has dado a conectar? 01:54:16
Estoy dentro, sí, estoy dentro. 01:54:17
Sí, no sé lo que estoy viendo, pero estoy viendo. 01:54:18
Vale, y aparece algo así, ¿verdad? 01:54:20
A ver, que no se vea ahora tu pantalla. 01:54:24
Ah, no sé, perdón, perdón, perdón, perdón. 01:54:26
A ver, comparto. 01:54:30
Aquí comparto. 01:54:33
Tiene que ver algo como esto. 01:54:37
Sí. 01:54:40
A mí me dice disconnected from server. 01:54:40
Y lleva así desde qué lado la conecto. 01:54:43
Vale, ¿estás segura de que has puesto correctamente el jugador y la clave? 01:54:45
Espera, compárteme la pantalla, por favor 01:54:52
No, es que estoy en ordenadores diferentes 01:54:54
Pues sácale una foto de la pantalla y me la mandas por correo, por favor 01:54:56
Vale 01:55:06
Foto o captura de pantalla 01:55:07
Vale, ¿quién más no lo tiene funcionando? 01:55:11
Necesitamos que estén las dos cosas funcionando, tanto el SP32 como el programita 01:55:16
a mí tampoco me está funcionando 01:55:21
Jorge, ¿qué tiene que salir? 01:55:23
curso SP32RG 01:55:25
eso es 01:55:27
¿y quién más decía que no le funcionaba a Pedro? 01:55:28
a mí, a Pedro, sí, me sale a bordo 01:55:31
¿puedes compartirme la pantalla, por favor? 01:55:33
¿dónde se comparte la pantalla? 01:55:36
pequeño detalle 01:55:48
ah, espérate 01:55:49
abrir bandeja de uso compartido 01:55:50
sí, al parecer la han cambiado 01:55:52
¿ya se ve? 01:55:54
sí, vale, mqtt sin dormir punto net 01:55:57
¿arriba del todo? 01:56:00
ah, no es .org 01:56:04
vale, dale a salvar 01:56:06
dale a abort 01:56:11
y dale a conectar 01:56:13
that's right, muy bien 01:56:17
vale, venga, pues 01:56:19
¿quién más me queda? me quedan 01:56:21
Andrés, Eduardo, Irene 01:56:22
y Pedro 01:56:25
no, Pedro ya está solucionado 01:56:26
Ah, vale, perdón, perdón, perdón. 01:56:28
Te acabo de enviar el correo yo. 01:56:29
Ahora lo que tengo que hacer es descargarlo. 01:56:31
Vale. 01:56:35
Claro, porque, Irene, en donde pone host... 01:56:38
Host, sí. 01:56:43
Que tú tienes puesto mqtt.eclipse.org. 01:56:48
Sí. 01:56:51
Pues tienes que poner mqtt.sindormir.net. 01:56:52
Vale. 01:56:55
Sabía que me había perdido antes algo. 01:56:57
Sí, repito, repito. 01:56:58
toda esta configuración 01:57:00
la tenéis en la página 123 01:57:02
del manual, tenéis una foto 01:57:04
tal cual de cómo se tiene que configurar 01:57:06
a ver si os lo puedo enseñar 01:57:07
vale, es que lo he comentado antes 01:57:11
no sé si... 01:57:14
vale, ya estoy, gracias 01:57:19
aquí en el manual lo digo para futuras 01:57:20
para futuras veces 01:57:25
no estás mostrando nada 01:57:27
vale, ¿se me ve ahora? 01:57:29
sí, sí se ve 01:57:40
Vale, lo he dicho, esto es del manual, la página 123, pues aquí tenéis lo que hay que configurar para que funcione. Vale, vamos a ver quién me queda, Andrés que no estaba, Eduardo, ¿Eduardo estás por ahí? 01:57:41
Creo que Eduardo ha tenido que salir a una junta de evaluación. 01:58:07
Ah, vale, vale, pues entonces estamos... 01:58:11
Se ha ido como hace 15 minutos. 01:58:13
Vale, perfecto. Entonces, ¿qué es lo que tenemos aquí? Pues os cuento un poquillo. Esta herramienta es súper importante para cuando trabajamos con MQTT. Lo pongo así más pequeño para que se vea todo. 01:58:14
vale, entonces 01:58:30
lo que tenemos en la zona de la izquierda 01:58:32
es el árbol de 01:58:34
topics, el árbol de temas 01:58:36
que ahora 01:58:39
según vayamos escribiendo cosas 01:58:41
pues aparecerán diferentes temas 01:58:42
que podremos ir suscribiéndonos o podremos 01:58:45
hacer lo que queramos 01:58:46
cuando yo elijo algo, por ejemplo 01:58:47
si hago clic aquí 01:58:50
¿vale? veis que la pantalla de la derecha 01:58:52
me cambia, ¿vale? porque yo ahora 01:58:54
digamos que el topic que estoy viendo es 01:58:56
curso de CP32 01:58:58
y aquí podéis ver un histórico. 01:58:59
Si hacéis lo mismo que yo, vais a ver lo mismo. 01:59:04
Elegimos este topic y aquí vemos 01:59:07
cómo alguien ha ido pulsando y soltando el botón. 01:59:09
Que no sé quiénes se podría saber. 01:59:16
Ahora han pulsado. 01:59:18
Mientras que en la parte de abajo, según voy bajando, 01:59:23
tenemos la parte de publicación. 01:59:25
Yo puedo elegir en qué tema quiero publicar 01:59:28
y qué es lo que quiero publicar. 01:59:31
¿Vale? Entonces, lo que os voy a pedir ahora es que publiquéis en un tema vuestra afición, ¿vale? 01:59:33
Entonces, yo lo que voy a hacer es, nos vamos a la parte de Publish, y entonces es, en el tema, cada uno con su nombre, por CG en mi caso, barra afición, sin tilde, ¿vale? 01:59:42
Y aquí elegimos, es importante elegir RAU, ¿vale? Para que no haga cosas raras, ¿vale? Para que mande en bruto, ¿vale? 01:59:56
y le damos a publicar 02:00:03
si todo va bien 02:00:08
tendremos que tener aquí 02:00:10
pues un montón 02:00:12
de, bueno, tenéis que estar todos vosotros 02:00:14
cada uno con su afición 02:00:16
puede ser inventado 02:00:18
perdona, aquí has puesto 02:00:21
Jorge G barra afición 02:00:25
exactamente 02:00:28
porque es que es mi árbol 02:00:28
y tiene que ser Jorge G 02:00:30
o sea, tú en tu caso 02:00:33
o sea, puede ser lo que te dé la gana 02:00:34
o te queramos 02:00:38
porque yo tengo 02:00:39
cero topics 02:00:47
cero topics 02:00:48
pero no estás viendo este árbol de aquí a la izquierda 02:00:52
sí, sí, sí, lo estoy viendo 02:00:55
y estoy viendo cómo publica la gente 02:00:56
pero todos tienen un topic, un one message 02:00:58
pero yo solo tengo 02:01:01
cero topics 02:01:03
ah, porque tú has publicado 02:01:04
tú has publicado 02:01:06
sin escribir nada aquí 02:01:08
¿dónde? 02:01:10
claro, tú has 02:01:14
ah, no le he dado a row 02:01:14
claro 02:01:16
el topic es 02:01:17
tu nombre barra afición 02:01:20
y dentro pones la afición 02:01:22
vale, vale, vale 02:01:25
todo lo que pongamos aquí es el topic 02:01:28
vale, entendido 02:01:30
y la afición es el contenido 02:01:32
es el mensaje 02:01:34
vale, voy a ir viendo que 02:01:35
y el row 02:01:37
xmljson 02:01:39
eso que es? Esto es porque MQTT, digamos que acerta varios tipos de mensajes, varios formatos. 02:01:42
Nosotros trabajaremos siempre por ahora con RAW, que es en bruto, sin ningún tipo de 02:01:52
formato. XML es parecido a HTML, es un lenguaje demarcado, y Json es una especie de lenguaje 02:01:57
de objetos de Javascript que por ahora no vamos a tocar. ¿Y el mío por qué sale diferente? 02:02:04
que he hecho mal 02:02:10
¿dónde estás? 02:02:11
ah, porque no he puesto afición 02:02:14
el topic tiene que ser 02:02:15
gloria barra afición y nadar 02:02:18
tiene que estar aquí 02:02:20
le pasa lo mismo a Antonio 02:02:21
ah, que ha puesto Antonio 02:02:24
tu problema ha sido que has utilizado la barra 02:02:27
de la contrabarra 02:02:30
esa contrabarra en internet 02:02:31
no se utiliza 02:02:33
es la barra del 7 02:02:34
ahora sí 02:02:36
y ahora yo también he hecho 02:02:38
algo mal. A ver, ¿dónde estás? 02:02:41
Gloria, Gloria. 02:02:44
No te veo. 02:02:46
Y ahora me sale dos topics. 02:02:48
Me sale como Ángela 02:02:50
y me sale lo de Nadal. 02:02:51
Ahora sí. Sí, sí, claro. 02:02:53
Porque esto ahora no lo vamos a poder quitar 02:02:55
porque has asociado 02:02:57
por así decirlo que Gloria contiene 02:02:59
Nadal, pero 02:03:01
esto está bien ahora. 02:03:03
¿No lo puedo borrar? 02:03:06
Sí, lo puedes borrar para ti misma, 02:03:08
pero no para los demás. 02:03:10
Ah, vale, ya lo he visto 02:03:11
Sí que soy Gloria Nadar 02:03:14
Vale 02:03:15
Vale, creo que ya estamos 02:03:16
Todos, todas 02:03:20
A ver 02:03:21
7, 8, 9, 10, 11, 12 02:03:22
Vale 02:03:29
Pues estamos 02:03:32
¿Alguien no le ha funcionado? 02:03:32
Vale 02:03:41
Vale 02:03:42
Gloria 02:03:44
Vale 02:03:45
Perfecto. Vale. Entonces, cosas que se pueden hacer interesantes con esto. Pues imaginemos que me voy a inventar un sensor, ¿vale? Con lo cual me vengo aquí y voy a inventarme, pues eso, gran hotel, habitación planta 3, habitación 12, temperatura y valor, ¿vale? 02:03:46
y aquí voy a ponerle que la temperatura 02:04:13
estamos en 13, hace fresquillo 02:04:15
¿Os ha parecido? 02:04:17
¿Os ha parecido esta jerarquía nueva? 02:04:19
Sí, sí, sí, sí, apareció 02:04:28
Vale, pues entonces 02:04:30
lo que quiero que hagáis es hacerle click 02:04:32
en donde pone valor 02:04:34
al hacer click en valor 02:04:35
la ventana 02:04:42
de la derecha, la parte de la derecha 02:04:45
tiene que cambiarse, ¿vale? 02:04:46
y debe aparecer pues que el topic 02:04:48
el que estamos visualizando ahora mismo es 02:04:50
granotel 312 temperatura valor 02:04:52
y además esto figura como un 02:04:54
como un 02:04:58
un panel, ¿vale? 02:04:59
yo voy poniendo ahora 02:05:01
27, 33 02:05:03
menos 1 02:05:09
¿lo vais viendo como se actualiza el gráfico? 02:05:13
con la misma información 02:05:17
¿vale? imaginemos que 02:05:18
o sea, esto 02:05:21
con solo esto ya digamos que sería 02:05:22
bueno pues 02:05:25
una gran medida para ver que cosas han pasado 02:05:27
que cosas han publicado 02:05:29
Un poquito más abajo tenemos el histórico. Por cierto, este histórico no se obtiene del servidor. Este histórico está aquí porque la aplicación está conectada, pero el servidor no conserva ningún histórico. 02:05:30
Si yo cierro la aplicación y la vuelvo a abrir, todo esto se habrá ido. Con lo cual, tener cuidado con eso. MQTT no almacena mensajes antiguos, sino que somos nosotros como clientes los responsables de ir almacenando esa información. 02:05:42
Una cosa que se puede hacer, si por ejemplo nos interesa el estado de la temperatura de esta habitación en concreto, aquí justo a la derecha del histórico, del gráfico, aparece un símbolo, una especie de gráfico creciente. 02:06:00
Si hacemos clic, vamos a tener de forma permanente ya en esta aplicación representada esa gráfica. 02:06:15
Y según se vayan actualizando los datos, pues iremos viendo cómo cambia la información. 02:06:27
¿Dónde, Jorge? 02:06:34
Aquí. 02:06:38
Yo no veo el gráfico. 02:06:38
¿Dónde, dónde? 02:06:40
Mira, no ves el gráfico porque le has hecho clic en donde pone valor. 02:06:41
en Gran Hotel, 3, 2, temperatura. 02:06:45
Vale, ya está. 02:06:48
Y ahora, una vez que te salga el gráfico, 02:06:54
este aquí a la derecha, le haces clic en la flechita 02:06:56
que pone añadir al panel. 02:06:58
Sí. ¿Y por qué a ti te sale 02:07:00
el gráfico abajo? ¿Qué has hecho? 02:07:08
Sí, eso que acabo de contar. 02:07:11
Mira, si le das 02:07:12
aquí a este icono 02:07:13
que pone añadir al gráfico, 02:07:16
añadir al panel al gráfico. 02:07:19
Vale, ya está. 02:07:21
Sí, ya está, gracias. 02:07:22
Vale. Bueno, 02:07:25
¿Dudas con esta aplicación? ¿Sabéis ya cómo publicar un tema en concreto y sabéis cómo suscribiros, entre comillas? 02:07:27
Porque esta aplicación en realidad está suscrita a todos los temas. 02:07:36
Por eso nosotros estamos viendo todo. De hecho, ahora os explico cómo hacer para suscribirnos a algo en concreto. 02:07:40
¿Alguna duda con respecto a esto? 02:07:45
Disculpa, tengo que ver tu gráfica. La gráfica que está ahí la tengo que ver. 02:07:49
Si haces clic en el valor que he comentado antes, sí. 02:07:54
Yo doy aquí el valor 02:07:57
un poquito 02:07:59
y bajo aquí esto 02:08:01
el histórico 02:08:04
y aparece lo que había puesto antes 02:08:06
de salvador aficiones de enerismo 02:08:08
no más que doy a tu valor 02:08:10
No, pero vamos a ver 02:08:12
tú en la parte de la izquierda tienes 02:08:14
localiza gran hotel 02:08:16
Sí, sí, lo tengo, gran hotel, 3, 12, temperatura 02:08:17
valor 10 02:08:20
Haz clic en donde pone valor igual a 10 02:08:21
Lo hago 02:08:25
y aquí en la derecha no aparece 02:08:26
esta información 02:08:28
no me sale esta información Jorge 02:08:29
no se me habrá desconectado del internet 02:08:32
no, lo tengo conectado 02:08:36
ah, espérate, es que alguien ha escrito 02:08:41
baloncesto 02:08:42
yo antes ponía 10 02:08:43
y anteriormente ponía 20 02:08:48
ah, pone 10, yo le doy ahí 02:08:50
al 10 02:08:52
a mí personalmente 02:08:53
no veo las gráficas 02:08:57
a un lado 02:08:59
es al histórico 02:09:00
salvador, afición, senerismo 02:09:03
no, no puede ser 02:09:05
compárteme la pantalla, por favor 02:09:07
puede ser 02:09:09
puede ser 02:09:11
a ver, voy a compartir 02:09:13
mi pantalla 02:09:15
no está viendo mi pantalla 02:09:17
¿verdad Jorge? 02:09:20
no, no, lo estoy viendo 02:09:21
a mí me ha pasado lo mismo, al dar el valor me ha salido baloncesto 02:09:22
me ha salido la ficción 02:09:25
claro, porque alguien ha escrito baloncesto ahí 02:09:26
entonces ya no es un valor numérico 02:09:29
no se puede representar un gráfico con eso 02:09:31
a ver, no sé si esto 02:09:33
aquí, a ver que sale ahí 02:09:36
no se puede borrar 02:09:38
ese valor 02:09:41
¿te has visto la pantalla Jorge? 02:09:42
sí, ahora estoy viendo tu pantalla 02:09:45
¿sí? 02:09:46
vale, ampliado por favor, ampliado la ventana 02:09:49
dale a 02:09:51
dale a pantalla completa 02:09:53
pantalla completa 02:09:55
un segundo 02:09:57
que pido 02:09:58
para alguna parte 02:09:59
de la pantalla 02:09:59
no, maximizar 02:10:00
maximizar 02:10:02
quería decir 02:10:02
la ventana 02:10:03
de la MQTT 02:10:04
eso es 02:10:04
pero si está enorme 02:10:06
vale 02:10:07
vale 02:10:08
vale 02:10:10
mira 02:10:19
ves 02:10:19
donde pone 02:10:20
value 02:10:21
anda por la derecha 02:10:21
donde pone 02:10:23
value 02:10:24
más arriba 02:10:24
más arriba 02:10:26
publicado 02:10:27
más arriba 02:10:29
ahí 02:10:30
ahí lo tienes 02:10:31
¿lo ves? 02:10:33
ok, perfecto 02:10:36
esas flechitas 02:10:37
según tú le das 02:10:39
al despliegue 02:10:41
se ocultan 02:10:43
o se 02:10:43
es decir 02:10:44
haciendo así 02:10:44
se minimiza esa parte 02:10:46
yo he estado 02:10:47
dando el histórico 02:10:49
de la publicidad 02:10:50
bueno 02:10:52
no sé 02:10:55
la cuestión es que 02:10:56
bueno 02:10:56
que sí que aparece 02:10:56
y si le das aquí 02:10:58
pues se despliega 02:10:59
y aquí se oculta 02:11:00
¿vale? 02:11:01
y evidentemente 02:11:01
si hay un valor 02:11:02
que no es numérico 02:11:03
por ejemplo ponemos esto 02:11:04
pues ya no tiene sentido 02:11:05
mostrar una gráfica para representar 02:11:07
ASD y hasta que no pones un 02:11:09
No vemos tu pantalla, Jorge 02:11:12
Ah, bueno 02:11:13
pero lo habréis visto en directo en vuestro 02:11:15
MQTT, ¿verdad? 02:11:17
02:11:19
Ahora sí veis 02:11:23
mi pantalla, ¿verdad? 02:11:28
02:11:31
Vale, estupendo 02:11:31
Bueno, pues 02:11:34
Entonces, lo que vamos a hacer es, ¿todos tenéis ya conectado en el PIN 26 un pulsador? 02:11:36
Sí. 02:11:50
Vale, pues a ver, vamos a ver, voy a coger ahora y voy a hacer clic en curso SP32, ¿vale? 02:11:52
Le voy a pedir, por ejemplo, a ver, a Salvador, mantén apretado el botón. 02:12:01
A mí, ni de que no funciona. 02:12:08
Sí, pero no, mantener apretado el botón... Ah, vale, correcto. Y suéltalo. 02:12:13
Ya está apretado. 02:12:21
¿Veis? Claro, es que ahora explicaré el código, hay una parte del código que no os he contado, ¿vale? 02:12:22
Pero lo que estamos viendo aquí es que cuando se mantiene apretado el botón, esto lo que manda constantemente es un 1 y un 0, un 1 y un 0. 02:12:28
Mira, dale otra vez al pulsador, ahora le va a dar Pedro, por ejemplo. 02:12:38
¿Pedro, dale otra vez? ¿Pedro, dale otra vez, por favor? ¿Estás ahí, Pedro? 02:12:45
Estoy aquí. Le estoy dando y no reacciona. 02:13:03
Nada, ¿no? A ver si no lo tengo conectado en el 26. 02:13:10
Mira a ver. 02:13:15
Voy a mirar a ver, ¿vale? 02:13:16
Vale. Mientras tanto, a ver, por ejemplo, María, ¿le puedes dar al botón, por favor? 02:13:18
Ahí está. Dale otra vez. 02:13:23
¿Veis cómo va cambiando aquí en esta zona? 02:13:25
Según se le aprieta va cambiando de 1 a 0 02:13:29
o de 0 a 1 en función de qué le dé 02:13:32
Por cierto, esto es una cosa importante que tenéis que tener en cuenta 02:13:34
En MQTT no hay posibilidad 02:13:38
de impedir que alguien escriba en un topic cualquiera 02:13:41
Por ejemplo, este topic que hemos creado 02:13:45
que es curso SP32, cualquiera puede escribir 02:13:47
y no hay forma de saber, aunque yo me venga aquí al histórico 02:13:50
no hay forma de saber qué dispositivo es el que ha emitido el off o el on, ¿vale? 02:13:53
No se puede saber quién le está dando al botón. 02:14:00
Entonces, por eso es importante que configuremos adecuadamente los topics que vamos a utilizar. 02:14:04
Entonces, os voy a explicar la parte del código que faltaba 02:14:11
y vamos a configurar para que cada uno de nosotros escriba en un topic adecuado, ¿vale? 02:14:14
Entonces volvemos otra vez al código, por favor 02:14:22
Sergio, ¿qué tal? Por cierto, ¿lo tienes ya funcionando? 02:14:24
¿Qué va? 02:14:28
¿No te conecta? 02:14:29
No me conecta, voy a cargar un sketch 02:14:30
de la semana pasada, pero es que 02:14:32
no me hace ping y está en la misma LAN 02:14:34
Es ridículo 02:14:36
Es ridículo 02:14:37
No sé muy bien 02:14:39
qué puede estar pasando, pero 02:14:41
estoy en ello 02:14:43
Vale, vale 02:14:45
Venga, pues entonces 02:14:46
Espera, por si perdona 02:14:50
No has dicho antes que sí se podía ver quién le había dado el piso, ¿no? 02:14:51
No, no, no. 02:14:57
Antes cuando has dicho a alguien le ha dado y has dicho, bueno, podemos mirar quién es. 02:15:00
Bueno, no sé, como ahora has dicho que no se podía. Vale, vale. 02:15:05
Vale, a ver, yo puedo mirarlo porque yo controlo el servidor. 02:15:08
Ah, vale. 02:15:14
Pero alguien que esté suscrito al topic no tiene forma de determinar quién ha publicado qué. 02:15:15
yo puedo mirarlo 02:15:21
pero porque tengo acceso a los datos 02:15:25
a los logs del servidor, pero no es 02:15:26
fuera del protocolo, por así decirlo 02:15:29
vale 02:15:31
o sea que si me equivoco 02:15:32
y creo un topic igual que 02:15:37
otro que ya exista, estoy machacando los datos 02:15:39
exactamente, sí 02:15:41
vale, entonces 02:15:43
lo que vamos a hacer, por lo tanto, es 02:15:45
lo siguiente, bueno, primero voy a 02:15:47
terminar de explicar lo que me 02:15:49
quedaba del loop. ¿Vale? Volvemos otra vez al loop. Os acordáis que habíamos estado 02:15:51
viendo este if, ¿verdad? Que es el if de qué pasa cuando no estoy conectado. Cuando 02:15:58
no estoy conectado intento la reconexión. Pero ¿qué sucede cuando sí que estoy conectado? 02:16:03
¿Vale? Es decir, esto es lo que sucede cuando sí que estoy conectado. Pues fijaos que tenemos 02:16:08
aquí una variable arriba del todo que se llama estado igual a cero. He creado una variable 02:16:17
de global aposta. Y aquí lo que hacemos es que si detectamos que el PIN 26 está activo, 02:16:21
lo que voy a hacer lo primero es invertir, es decir, guardo en estado lo contrario de 02:16:32
como estuviera estado. Si estaba en 1, pongo un 0 y si estaba en 0, pongo un 1. Y a continuación 02:16:37
me pregunto, ¿cómo está estado? ¿Estado está en 1? Pues entonces lo que quiero hacer 02:16:42
es mandar al servidor MQTT mediante el comando publish 02:16:47
que el topic este va a tener este valor. 02:16:53
Entonces, lo que vamos a hacer va a ser modificar los topics en los que escribimos 02:17:01
para que cada uno escriba en su topic. 02:17:07
De forma que en esta línea y en esta línea hay que modificar ciertas cosas. 02:17:10
Entonces vamos a poner curso SP32, a partir de ahora va a ser parte de la jerarquía y aquí cada uno va a poner una de dos, o su nombre o sus iniciales. 02:17:15
Y hay que ponerlo en los dos sitios, tanto en el mensaje de publicar, de encender, como en el de apagar. 02:17:31
Este es el cambio que necesitamos hacer para que la práctica que viene a continuación funcione adecuadamente. 02:17:37
vale, por ahora aparte de suscribirnos 02:17:45
no vamos a hacer nada por ahora 02:17:49
vale, una vez que lo tengamos modificado 02:17:50
le damos a subir el código 02:17:55
o sea que tenemos que poner 02:17:57
nuestro nombre, pero no hay dos nombres iguales 02:18:06
entonces, no, había dos 02:18:08
felix, pero creo que uno de los felix 02:18:10
no está conectado hoy 02:18:12
vale, yo ya estoy conectado 02:18:15
entonces ahora fijaos lo que sucede 02:18:36
porque cuando abro otra 02:18:39
vez el explorador, el mqt 02:18:41
explorer según yo voy presionando fijaos que ahora cursos de 32 se convierte le aparece esta flechita 02:18:43
de jerarquía ya que podéis ver que ahora ya el topic ya va cambiando allá es cursos de 32 jorge 02:18:53
igual aún y según vayáis añadiendo los demás aparecerán futuros nombres colgando de cursos 02:19:05
sp32 jorge con el sketch del otro día del formulario web que enviamos un color de texto 02:19:12
y funciona perfectamente y el ping y todo pero con éste no cuesta y mandarme por correo los dos 02:19:39
códigos porfa vale es comprobado que la pestaña wifi es idéntica verdad lo he metido dentro del 02:19:47
propio código el setup wifi está arriba del todo dentro de la propia del propio código porque lo 02:19:55
la pestaña daba problemas 02:20:01
pues mándame por favor los dos códigos 02:20:02
por correo y les echo un vistazo 02:20:05
no hace falta que lo pongas con colores 02:20:07
lo voy a pegar directamente en la pestaña 02:20:09
de Arduino 02:20:11
vale, tenemos 02:20:12
a Gloria, a Antonio, a María 02:20:17
02:20:20
es que esto es extrañísimo porque cuando 02:20:20
lo he dado a subirlo, después voy a hacer 02:20:23
lo que nos has dicho tú, es como si se hubiera 02:20:25
alterado el propio código 02:20:27
lo cual parece imposible 02:20:29
y luego me ha salido 02:20:30
un strike 02:20:32
barra 342 sin programa 02:20:34
pero se me ha alterado el código 02:20:36
no entiendo muy bien lo que me está pasando aquí 02:20:38
yo simplemente le he dado a volver a cargar 02:20:40
se ha hecho el cambio que tú me has dicho 02:20:42
y de repente esto 02:20:43
es como si hubiera interactuado lo que hay ahí 02:20:45
con esto, es que no lo puedo entender 02:20:48
¿me puedes compartir la pantalla? 02:20:50
no, no puedo 02:20:53
porque yo trabajo con dos ordenadores 02:20:54
pero quiero decir, a partir de, vamos a ver 02:20:56
en el Void MQTT 02:20:58
cuando acaba 02:21:01
después de Delay 5000 02:21:03
cierra llave, cierra llave 02:21:04
y luego ha empezado a aparecerme nombres 02:21:06
Pedro, Gloria, Antonio 02:21:07
es que no entiendo muy bien 02:21:09
¿cómo puede haber interactuado esto? 02:21:11
igual has copiado sin querer 02:21:14
has pegado sin querer 02:21:15
dale control Z 02:21:16
hasta que desaparezca 02:21:19
control Z 02:21:22
control Z, sí 02:21:23
hasta que desaparezca todo 02:21:25
hasta que desaparezcan los nombres 02:21:28
y los números 02:21:30
también me ha parecido 02:21:32
esto como puede aparecer aquí es que no lo entiendo 02:21:33
si habré hecho algo sin darme cuenta obviamente 02:21:37
si lo sigues 02:21:40
igual lo tienes en el portavopeles 02:21:42
si haces ahora control V a lo mejor vuelves a pegar 02:21:43
todos los nombres otra vez 02:21:45
así sabremos si ha sido eso 02:21:47
cuando he hecho control 02:21:49
control V 02:21:59
me ha aparecido un snap 02:22:02
está el MQTT 02:22:03
Explorer, que creo, no sé si eso 02:22:05
lo he borrado antes. Bueno, voy a borrarlo 02:22:07
y voy a intentar 02:22:09
subirlo de nuevo. Creo que 02:22:11
esto está así. 02:22:13
Sí, ahora ha estado bien. No sé, alguna... 02:22:24
Algo de eso debe haber hecho. 02:22:26
Ahora ya sí que te compila, ¿verdad? 02:22:28
Sí. Vale. 02:22:30
5, 6, 7, 8, 9... 02:22:32
Vale, solo tengo nueve personas que han hecho el cambio. 02:22:40
Hostia, no lo he subido. 02:22:47
Entramos en 02:22:48
MQTT y 02:22:49
lo publicamos. 02:22:51
Sí, o sea, con darle al botón 02:22:54
que está conectado 02:22:56
al pin 26 ya deberías 02:22:58
aparecer. 02:22:59
Ahí estás, Ángel. 02:23:01
Sí que no sabía que había que dar el botón. 02:23:04
Claro, por lo que hemos visto 02:23:06
del código, cada vez que tú le das 02:23:08
al botón, publica un mensaje. 02:23:09
Si le vuelves a dar, 02:23:13
en vez de aparecer como 02:23:14
on, aparecerás como off. 02:23:15
Correcto. Vale, Félix también lo tiene. Vale. Entonces, recapitulando un poquito, porque empieza a haber ya como muchas cosillas. Interrumpidme, ¿vale? Si algo hace falta que haga hincapié. Tenemos como varias cosas relacionadas con MQTT. 02:23:17
por un lado tenemos 02:23:39
la orden 02:23:41
de set server 02:23:45
hay alguien que está portándose el micrófono con 02:23:46
algo de ropa 02:23:49
vale 02:23:52
tenemos por un lado el set server 02:23:52
que eso tiene que ir en el setup 02:23:56
que establece cuál es el 02:23:57
servidor y el puerto 02:23:59
cuál es el nombre del ordenador 02:24:01
y cuál es el puerto al que se va a conectar 02:24:03
esto es lo primero que hay que hacer con MQTT 02:24:05
después 02:24:07
en el loop 02:24:08
llamando a la función 02:24:10
mqtt connect 02:24:12
se hace 02:24:13
el siguiente paso 02:24:14
de la comunicación 02:24:16
de la conexión 02:24:17
que es 02:24:17
indicar 02:24:17
cuál va a ser 02:24:18
mi identificador 02:24:19
que esto tiene que ser único 02:24:20
e indicar 02:24:21
con qué usuario 02:24:23
y con qué otra seña 02:24:23
nos tenemos que loguear 02:24:25
dentro del servidor 02:24:26
¿vale? 02:24:27
y luego 02:24:30
por último 02:24:31
tenemos que 02:24:32
si yo quiero escribir 02:24:33
en un determinado topic 02:24:34
en un determinado tema 02:24:35
pues utilizo 02:24:36
el método publish, ¿vale? 02:24:37
De mqtc client punto publish 02:24:40
indico el topic en el que 02:24:42
quiero publicar y lo que sea 02:24:44
que quiero publicar, ¿vale? 02:24:46
Aquí por cierto 02:24:48
ya lo veremos un poquito más adelante 02:24:49
pero se tienen que publicar siempre 02:24:52
cadenas de caracteres 02:24:54
¿vale? Y esto nos dará 02:24:56
algún que otro 02:24:58
dolor de cabeza, esperamos 02:24:59
Entonces, bien con 02:25:01
con todas las partes que 02:25:04
¿Qué tiene este código nuevo? 02:25:06
Bien, bien. Hay que asimilarlo, pero bien. 02:25:15
Sí. 02:25:18
Vale. Vamos a ver. Creo que tenía 02:25:19
preparado algún ejercicio para este punto. 02:25:21
Perdón. Jorge. Sí. 02:25:28
Vamos a ver. No lo he 02:25:31
acabado de entender. En el MQQ 02:25:32
TT Explorer, 02:25:35
cada vez que yo aprieto el botón, debería aparecer yo 02:25:36
de alguna forma. 02:25:38
Sí. A ver, espérate. 02:25:40
¿Qué cargo? 02:25:42
¿Estarse a la data como José Miguel? 02:25:44
No, JMGC, me parece. 02:25:46
¿Vale, dale? 02:25:48
No veo 02:25:58
Yo no me veo 02:25:59
Sí que lo recoge 02:26:01
porque tengo 02:26:08
en el monitor serie 02:26:09
aparece apagar y encender 02:26:13
pero veo que ahí no sale 02:26:15
Compárteme 02:26:17
No, perdóname 02:26:21
Ah, que no puedes, perdón 02:26:24
Mándamelo por correo el código 02:26:26
Vale 02:26:28
Y mientras 02:26:29
Voy a ver el código que me acaba de llegar de Sergio 02:26:31
Y le echamos un vistazo 02:26:34
También si no, como tienes webcam 02:26:37
Apunta con la webcam al otro ordenador 02:26:40
Ya lo hemos intentado 02:26:43
En otro curso 02:26:45
Se ve fatal 02:26:46
Es buena idea pero 02:26:48
Yo tengo dos ordenadores también 02:26:51
y estoy conectado 02:26:55
del uno al otro 02:26:56
por escritorio remoto 02:26:57
eso es traducción 02:26:58
bueno ahora por lo menos 02:27:06
me responde al ping 02:27:28
eso ha cambiado 02:27:29
claro 02:27:32
del primero 02:27:41
del primero 02:27:42
no hemos mandado 02:27:43
el setup wifi 02:27:43
que es lo que quería ver 02:27:44
ah espera 02:27:50
y del segundo tampoco 02:27:57
entiendo que son iguales 02:27:58
¿no? 02:27:59
Sergio 02:28:02
si si 02:28:02
te lo mando 02:28:04
te lo mando 02:28:04
no hace falta 02:28:05
no hace falta 02:28:06
con que me digas 02:28:07
que son iguales 02:28:07
ya me vale 02:28:08
son corta pega 02:28:08
vale, vale, pues ya está 02:28:09
sí, no sé, no quedó nada extraño 02:28:11
Dios 02:28:26
me ha costado 02:28:28
creo que ya sé lo que es 02:28:34
cuando me he puesto a borrar grandes cosas 02:28:47
he borrado lo último que nos indicaste que hiciéramos 02:28:49
que pusiera mi nombre 02:28:52
entonces claro, borré eso también 02:28:53
y por eso no sale 02:28:56
lo estoy subiendo, creo que es eso 02:28:57
vale, vale, vale 02:28:59
Sergio, veo todo 02:29:01
todo bien 02:29:14
prueba a cargarlo en tu placa 02:29:16
a ver si 02:29:19
suplanta la identidad por lo menos 02:29:20
te voy a llamar SGP2 02:29:22
vale 02:29:25
ahí lo he cambiado pero como luego lo he pisado 02:29:26
se ha lanzado 02:29:29
Jorge ya funciona perfectamente 02:29:30
vale, fantástico 02:29:40
vale, José Miguel 02:29:42
que ya no hace falta 02:30:06
vale, sí, efectivamente era eso 02:30:09
estaba escribiendo en el topic 02:30:13
aquí directamente 02:30:16
en el curso SP32 02:30:17
este on que había aquí 02:30:20
este eras tú 02:30:21
nada, nada 02:30:25
vale 02:30:27
conectado a la wifi 02:30:29
la voy a desetear 02:31:08
bueno, voy a 02:31:10
de todas formas es que el router de Telefónica 02:31:11
es una 02:31:19
vale, bueno 02:31:20
este es tu código, vale 02:31:22
con mi wifi 02:31:24
si le doy aquí 02:31:26
parece que hemos conectado 02:31:29
pero no me está 02:31:35
no cae el pulsador 02:31:38
ahora, ahora, ahora 02:31:39
publicado mensaje, encender 02:31:40
y esto si me vengo aquí 02:31:42
perdón, aquí 02:31:46
sgp2 02:31:47
igual a on 02:31:49
vale, voy a ver si 02:31:50
ya está 02:31:55
no, está conectando 02:31:58
conectando 02:32:00
que raro 02:32:03
y más raro porque 02:32:07
anteriormente todavía ha funcionado 02:32:09
con ese mismo router 02:32:11
si es que la wifi funciona 02:32:12
porque el otro sketch 02:32:15
funciona perfectamente 02:32:17
no debería haber 02:32:18
ningún, o sea quiero decir 02:32:21
es un problema 02:32:23
es un problema de 02:32:25
enrutamiento porque es que no 02:32:27
por lo que sea 02:32:29
no sale a internet o sea 02:32:31
que a lo mejor en red local si me está 02:32:33
trabajando pero vamos que es la misma wifi con la que me conecto con el teléfono que 02:32:35
tiene salida a internet vamos. Sí sí pero como antes no te daba IP tampoco 02:32:41
o sea te daba IP pero no le podías hacer PIN, no sé. Ahora el PIN funciona y la IP funciona y se publica la IP 02:32:47
en la consola en el puerto serie de la forma que el PIN muchas veces da tiempo de espera agotado pero 02:32:56
no sabría qué decirte 02:33:07
claro, tu código en mi ordenador 02:33:10
con mi setup, o sea, con mi wifi 02:33:13
con mi setup wifi funciona 02:33:15
lo tienes igual que yo, ¿verdad? 02:33:17
esto no hay ninguna modificación 02:33:20
con respecto a mí 02:33:21
es igual porque lo he cogido de 02:33:22
de los ejemplos 02:33:24
de los ejemplos que sí que funcionaban 02:33:25
lo único que me queda es crear un punto de acceso 02:33:27
en el teléfono y probar 02:33:29
pruébalo por si acaso 02:33:30
voy a probar, a ver 02:33:33
vale, y mientras 02:33:34
para pediros, sí 02:33:36
a mí Jorge se me desconecta esto 02:33:38
he estado un momento conectado 02:33:41
que ha sido cuando he puesto el on off 02:33:45
ha estado funcionando 02:33:47
y desde entonces nada, se me desconecta 02:33:48
estoy reseteando, volviendo a cargar 02:33:52
y no hay manera 02:33:54
de que se vuelva a conectar 02:33:56
ahora estoy conectado 02:33:57
sí, acabo 02:34:11
Ah, mira, ahora ha funcionado, ¿no? 02:34:12
02:34:18
Bueno, no sé por qué estoy mirando los logs del servidor 02:34:19
No, es que no 02:34:22
Le estoy dando al botón y antes me ha funcionado y ahora nada 02:34:24
No reacciona el Pedro J 02:34:28
No, no reacciona 02:34:30
Y antes sí que ha funcionado 02:34:41
Vale, esto de todas formas dejadme que le dé una vuelta 02:34:43
Porque... 02:34:46
No sé si el loop este tarda un tiempo en... 02:34:48
Mantén apretado el botón, porfa. 02:34:52
El Lupe se te ha tardado un tiempo en... 02:34:55
Mira, no, pero te ha salido. 02:35:01
¿Ves? 02:35:03
BJTV ha excedido su timeout. 02:35:04
Pues no sé por qué ha excedido el timeout. 02:35:08
No, claro, ahora ya lo tengo en el monitor serie. 02:35:16
Ya me están en las almohadillas. 02:35:19
Claro. 02:35:20
Sí. 02:35:24
¿Qué pasa a ti? 02:35:25
¿Le pasa también a JMGC? 02:35:30
No sabría decirte, no... 02:35:45
No sé, ¿estás muy lejos del punto de acceso? 02:35:47
No, no, no, no. Estoy pegado. 02:35:51
Jorge, JTMGC, soy yo, José Miguel, y funciona perfectamente. Estoy dentro. 02:35:56
Vale, vale, vale. Pues es que hay veces que los mensajes estos de se ha desconectado y se vuelve a conectar son normales. 02:36:00
Bueno, pues dejadme que mire a ver qué ejercicio. Tenía previsto para hoy. Un segundito, con las pestañas. 02:36:08
Ahora. 02:36:21
Ahora se deja, ¿no? 02:36:23
Funciona, sí, pero va a ratos. 02:36:24
Vale. 02:36:36
Y ahora ya se me ha desconectado. 02:36:37
Bueno, ahora te lo reviso. 02:36:44
Mientras tanto, para que podamos seguir avanzando, os voy a pedir que hagáis el ejercicio 8 de este tema. 02:36:48
Lo que quiero básicamente es que publiquéis en este topic, el mismo topic que teníamos antes, 02:36:55
pero barra luz 02:37:03
o barra LDR mejor 02:37:05
el valor 02:37:07
del sensor 02:37:09
del LDR de uno de los dos 02:37:11
y que se publique una vez por segundo 02:37:13
¿de acuerdo? 02:37:16
y este sí me lo tenéis que 02:37:27
me lo tenéis que enviar 02:37:28
ya estoy dentro Jorge 02:37:29
con el punto de acceso del teléfono 02:37:31
y ahí sin problema 02:37:34
sí, ya estoy publicando 02:37:36
joder 02:37:37
la LDR la ponemos 02:37:39
al 26 o 02:37:42
la LDR 02:37:43
no deberíamos haberla cambiado 02:37:44
el sitio, ¿no? 02:37:48
yo la tenía 02:37:51
en el 36 y en el 39 02:37:52
vale, entonces queda claro lo que hay que hacer 02:37:53
es decir, quiero que publiquéis 02:38:00
en curso SP32 02:38:02
barra vuestro nombre 02:38:04
barra LDR 02:38:05
el valor 02:38:07
de la 02:38:08
de la lectura 02:38:10
del sensor analógico que está conectado 02:38:12
a la LDR y una vez por segundo 02:38:14
Este es el ejercicio 02:38:16
33-8 02:38:25
Jorge, el tópico lo puedes repetir otra vez 02:38:27
SP32, LDR, valor 02:38:41
SP32 barra tu nombre 02:38:43
barra LDR 02:38:47
Guillermo acaba de publicar 02:38:48
el código de 02:38:54
salida 02:38:55
es que me voy a tener 02:39:01
que ir porque me ha surgido una urgencia 02:39:03
entonces no sé si el ejercicio 02:39:05
lo puedo hacer y enviártelo 02:39:07
sí, sí, sí, los ejercicios me los podéis 02:39:09
tenéis tiempo para enviármelo, me lo podéis mandar cuando creéis 02:39:11
vale, pues me tengo que desconectar 02:39:13
antes de 02:39:15
antes de irte te publico 02:39:17
el código de registro 02:39:19
si quieres 02:39:21
en un segundito 02:39:22
ya está publicado 02:39:24
ah vale, pues ya está 02:39:25
fenomenal 02:39:28
en el 36 lo tengo 02:39:28
bien 02:40:13
vale 02:40:18
Jorge 02:41:04
voy a montar el circuito de la LDR 02:42:20
¿te acuerdas por qué resistencia 02:42:24
la poníamos en serie. Sí, la de 10 casos. 02:42:26
La de 10 casos. 02:42:29
Vale. Aprovecho 02:42:31
este impas para 02:42:42
comentar un par de cosillas. 02:42:44
Lo primero, Irene, 02:42:47
ya le he pasado el justificante que me ha pedido. 02:42:49
Si alguien más necesita un justificante 02:42:51
por el tema de las evaluaciones, 02:42:53
por haber faltado alguna evaluación, 02:42:55
que me ponga un correito. 02:42:56
Y luego, 02:43:00
en segundo lugar, 02:43:01
el tema del material de repuesto. 02:43:02
ya lo tengo aquí en el CETIF 02:43:04
entonces 02:43:07
esta tarde voy a dejar 02:43:08
los nombres de las personas 02:43:10
que tienen que venir o que podrían venir 02:43:12
si quieren a por la placa 02:43:15
de repuesto para el SP32 02:43:17
tengo apuntados 02:43:19
a Irene, a Juan Carlos y a Sergio 02:43:21
no sé si me falta alguien más 02:43:23
lo demás no sabemos 02:43:25
no hemos probado las tres placas 02:43:31
llevo con la primera 02:43:33
que no sé 02:43:34
Llevo con la primera placa desde el primer día 02:43:36
No sé cómo estarán las otras dos 02:43:38
Espero que bien 02:43:39
Yo también 02:43:40
Espero que estén bien 02:43:42
No, por eso 02:43:45
Las que estaban identificadas 02:43:47
Como que habían llegado con un problema 02:43:50
En el puerto USB, si no recuerdo mal 02:43:52
Eran Irene, Juan Carlos y Sergio 02:43:54
Entonces nada, que sepáis 02:43:56
Que voy a dejar en el 02:43:58
Si alguno no va a venir a por ella, me pone un correo 02:43:59
Para luego no tener a la gente 02:44:02
de abajo pendientes 02:44:04
y la placa ahí en conserjería 02:44:06
dando vueltas, ¿vale? 02:44:09
durante mucho tiempo 02:44:10
entonces si tenéis intención de venir a por ella 02:44:11
no me digáis nada, simplemente venís 02:44:13
en esta semana el día que queráis 02:44:15
y bueno, el día que queráis antes del viernes 02:44:17
que el viernes no estamos 02:44:19
y si no vais a venir 02:44:20
porque con las dos que tenéis 02:44:25
queráis tirar 02:44:27
y no penséis que vais a necesitar 02:44:29
para el proyecto final tres placas 02:44:31
pues me ponéis un correito 02:44:32
y entonces yo ya la dejo aquí 02:44:34
almacenada para que cuando me devolváis 02:44:36
el kit la cambie 02:44:38
¿vale? y recordar 02:44:40
marcar la placa que está defectuosa 02:44:42
los que tenéis placa defectuosa 02:44:44
con un post-it o con algo, con un cel 02:44:46
o con alguna cosa, para que yo la pueda 02:44:48
identificar bien cuando reciba 02:44:50
el kit de vuelta 02:44:52
¿vale? y nada más 02:44:53
Jorge, ¿el método 02:44:55
Publish no se traga un entero? 02:45:00
No, esa es la gran dificultad de este ejercicio. 02:45:03
¿Recordáis que antes he comentado que solo se pueden meter cadenas de array? 02:45:14
O sea, perdón, cadenas de texto. 02:45:22
Sí, recuerdo que os lo habéis dicho. 02:45:24
Pero habrá alguna manera de convertir los números en caracteres de texto, ¿no? 02:45:30
Y esta fórmula supuestamente la debemos saber ya o no la hemos comentado. 02:45:35
Esa forma creo que la expliqué en algún momento hace unas sesiones, pero no de forma como, sino como parte de resolución de otro ejercicio. 02:45:40
Pero también es verdad que en este punto ya sí que me interesa como que vayáis un poco identificando los problemas que hay, siendo capaces de decir, vale, ¿cómo se convierte esto en esto otro? 02:45:54
Y que podamos buscar en Google o en alguna plataforma y que veamos un código que nos lo solucione. 02:46:08
No quiero que suene como excusa de, Jorge no nos lo quiere contar, sino que los problemas a los que nos vamos a enfrentar son básicamente infinitos. 02:46:16
y bueno, tenemos que saber un poco cómo buscar nuestras castañas. 02:46:25
Este problema se resuelve relativamente fácil. 02:46:30
La idea es, bueno, daros hasta, a ver, no sé si os ha sido de dar tiempo. 02:46:38
Igual lo dejamos para resolverlo ya para el año que viene. 02:46:46
y si lo dejamos para resolverlo 02:47:19
para el año que viene, ¿cómo te lo mandamos? 02:47:21
sí, o sea, recuerdo 02:47:25
que el envío de los ejercicios 02:47:27
no hace falta hacerlo cuando yo 02:47:29
los pida 02:47:31
o sea, quiero decir, que tenéis hasta final del curso 02:47:31
para mandarme todos los ejercicios 02:47:35
¿cómo? perdón, no te he entendido 02:47:55
será de entero a stream 02:48:07
¿no? a cadena 02:48:12
es de entero a 02:48:13
A string, sí, pero no a string objeto, sino a string de C, de C normal. 02:48:16
Si queréis, para los que estáis un poco perdidos, perdidas, os paso una pequeña edita por el chat. 02:48:34
recordemos que esto lo vimos el otro día 02:49:09
que tenemos una función 02:49:11
o un método 02:49:13
que los objetos 02:49:15
de tipo string 02:49:16
que es touchArray 02:49:18
y como decía en el 1, 2, 3 02:49:21
hasta ahí puedo leer 02:49:28
vamos a dar 02:49:30
3 minutillos más 02:49:54
a ver si alguien lo tiene resuelto 02:49:55
y lo que podemos hacer es que nos comente a esa persona 02:49:58
como lo ha resuelto 02:50:00
a ver, le doy una mano levantada 02:50:01
tanto Sergio como María lo tienen 02:50:02
resuelto, ¿verdad? 02:50:21
No, es que se me había quedado la mano levantada de antes. 02:50:23
Ah, vale. 02:50:25
Sí, sí, a mí me pasaba lo mismo. 02:50:27
Vale. 02:50:30
No veo ningún amor. 02:50:31
Vale. 02:53:19
¿Cómo lo veis? 02:53:23
¿queréis que lo resolvamos? 02:53:24
Pues sí 02:53:29
me parece buena idea 02:53:29
Venga, pues 02:53:31
vamos a ver si lo podemos hacer 02:53:38
entre todos 02:53:40
¿Quién me quiere ayudar? 02:53:41
Entiendo que la parte del MQTT 02:53:43
Connect lo 02:53:46
respetamos, ¿verdad? 02:53:47
Respetamos la pestaña 02:53:51
del Wi-Fi, respetamos el setup 02:53:52
y del loop 02:53:54
¿Qué modificaciones tendríamos que hacer? 02:53:56
No se te ve nada, ¿eh? 02:53:57
No se te ve nada. 02:54:00
Ah, perdón. 02:54:01
¿No? 02:54:02
Ahora sí. 02:54:03
Ahora sí. 02:54:04
Pues vamos. 02:54:05
La 36. 02:54:05
Ah, correcto. 02:54:08
Muy bien. 02:54:09
¿Ahora me estoy viendo? 02:54:10
Sí. 02:54:13
Sí, se ve. 02:54:14
Sí, se ve. 02:54:14
Vale. 02:54:15
Efectivamente. 02:54:16
El 36. 02:54:17
Ah, el box es 26. 02:54:20
Necesito que abran vuestros compañeros. 02:54:21
Sí, sí. 02:54:23
Cada uno el que corresponda. 02:54:24
Vale. Y ahora, del loop, ¿qué nos sobra? Yo quiero hacer algo una vez por segundo, ¿no? 02:54:26
Entonces, imaginemos que yo quiero publicar este mensaje una vez por segundo. Y nada más. 02:54:39
Pues sobra todo live. 02:54:46
¿Cómo? 02:54:48
Sobra todo, y digital read, hi, no hace falta nada. 02:54:51
Todo esto sobra, ¿no? 02:54:57
Sí. 02:54:58
Y si yo hago esto, y pongo esto. 02:54:59
Ya se va, bueno, en realidad para ser exactos habría que quitarle estos 10 milisegundos de estos, ¿vale? Pero da igual. 02:55:04
Con esto ya estaríamos publicando una vez por segundo en este topic este mensaje, ¿vale? 02:55:11
Entonces yo lo que quiero publicar ya no es aquí, ¿vale? Ya es en jorge barra ldr. 02:55:16
Y lo que quiero publicar aquí no es un on, es un que. 02:55:23
Es una variable que contendrá el valor de lectura de la LDR. 02:55:30
Entonces le voy a llamar valor lectura. 02:55:36
Entonces, ¿qué es ese valor lectura? ¿Cómo lo creo? 02:55:42
Voy a quitar los comentarios para que sea un poco más claro. 02:55:45
¿Alguien me dice qué es valor lectura? 02:55:52
¿Es el valor de la LDR? 02:55:57
Sí, sí, pero ¿qué tipo de variable es? 02:56:00
¿Cómo lo defino? 02:56:01
Yo tengo aquí que crearla, pero ¿qué es esto? 02:56:03
Un stream. 02:56:05
Pues será un stream, pero yo no sé por qué es un stream. 02:56:06
Resulta que quien ha diseñado la librería de MQTT Client 02:56:11
ha decidido que lo que va aquí es un array de caracteres, ¿vale? 02:56:15
Y los arrays se crean así, ¿vale? 02:56:22
Yo creo un conjunto de elementos llamados lectura valor 02:56:25
que va a tener como mucho 5 dígitos 02:56:30
¿por qué 5 caracteres? 02:56:32
porque, bueno, pues 02:56:35
tenemos el valor máximo, es 1023 02:56:36
¿no? que serían 4 02:56:38
pero luego hay que añadir 02:56:39
un carácter al final que es el de final de cadena 02:56:41
¿vale? siempre hay que darle a los 02:56:45
arrays, siempre hay que darle un elemento 02:56:46
más del que van a necesitar 02:56:48
entonces aquí ya tengo 02:56:50
una variable, ¿vale? 02:56:52
que es un array, que esto sí que lo 02:56:54
si yo esto lo compilo, ahora lo voy a compilar 02:56:56
mientras continúo explicando 02:56:58
esto ya no va a dar errores de compilación 02:57:00
porque ya le gusta 02:57:02
digamos que la librería necesita 02:57:03
un array de caracteres 02:57:06
como topic y un array de caracteres 02:57:07
como valor 02:57:10
¿vale? todo lo que me queda ahora 02:57:12
es pues lo que hay entre medias 02:57:14
¿vale? como veis aquí me ha compilado 02:57:16
y ahora ¿cómo hago 02:57:18
para leer? ¿alguien me ayuda? 02:57:19
¿cómo hago para leer 02:57:22
¿cómo hago para 02:57:23
obtener una lectura analógica de Pinterest 16? 02:57:26
AnalogRib36 02:57:28
Perfecto 02:57:34
AnalogRib36 02:57:35
Y entonces lo que voy a hacer aquí 02:57:36
Va a ser 02:57:40
Me voy a crear una variable 02:57:41
De tipo string 02:57:47
Que esta permite hacer cosas chulas 02:57:48
Que le voy a llamar lectura 02:57:51
Y entonces en lectura 02:57:53
Voy a guardar 02:57:54
La lectura 02:57:57
De esa 02:57:58
De ese bin 02:57:58
Número 36 02:58:01
Y ahora, lectura ya es un objeto, con lo cual soporta métodos, ¿vale? Y aquí es donde entra el método que os he explicado antes, ¿vale? En el cual yo le indico cuál es el destino, ¿vale? Donde quiero que me lo copie y cuál es la longitud que quiero que me almacene. 02:58:02
entonces en este caso serían 4 02:58:26
vamos a hacer aquí también 02:58:29
period.print 02:58:34
la lectura 02:58:38
en saps 02:58:41
3 y que me lo diga 02:58:43
directamente por el puerto serie antes de enviarlo 02:58:47
valor 02:58:49
lectura 02:58:52
vamos a ver esto que tal va 02:58:53
si ya está bien pues ya lo mandamos directamente 02:58:57
vale, se entiende lo que hago, es decir 02:58:59
yo almaceno en un string 02:59:02
y aprovechando que los strings 02:59:04
se pueden convertir 02:59:06
a cadenas de caracteres 02:59:08
mediante este método 02:59:10
pues hago la conversión 02:59:11
por cierto 02:59:13
pero entonces 02:59:22
ya estás usando C++ 02:59:23
¿no? 02:59:24
02:59:25
aquí 02:59:26
hay formas de hacerlo 02:59:26
solo utilizando C 02:59:28
pero 02:59:30
sí pero pues 02:59:31
esto es más fácil 02:59:31
mucho más fácil 02:59:33
pero sí 02:59:33
se complica un poquito más 02:59:36
¿vale? 02:59:37
¿veis aquí? 02:59:40
la lectura de chars 02:59:41
es 378 02:59:42
no sé qué 02:59:43
si yo tapo 02:59:43
vale 02:59:44
Hacemos 69, si yo libero, se me ha olvidado el intro, se me ha olvidado aquí el println, pero si me voy al MQTT Explorer y me vengo aquí y me vengo aquí y hago clic aquí, pues ahí veis donde he tapado la mano. 02:59:45
Voy a taparlo otra vez, ¿vale? Destapo, tapo, destapo, ¿vale? O sea, no es que sea trivial, no es una solución trivial, pero digamos que con una pequeña investigación lo hubierais podido sacar, ¿vale? 03:00:02
En cualquier caso, os voy a copiar esto en el chat y así tenéis un punto de partida. No os copio el código entero, pero os copio la parte fundamental. 03:00:28
¿Vale? Luego, por cierto, creo que no lo he comentado en este curso, pero agradezco hasta el infinito que me presentéis los ejercicios con métodos alternativos al que yo he explicado, ¿vale? O sea, quiero decir, las soluciones que yo propongo en programación no hay una única solución válida. 03:00:39
entonces 03:01:07
sed creativos por favor, si se os ocurre una forma 03:01:08
mejor de solucionar ciertas cosas pues me lo 03:01:11
mandáis, estaré 03:01:13
encantado de ver otras posibles soluciones más que las 03:01:14
que se me ocurren a mi de primeras 03:01:17
vale 03:01:18
me falta mucha gente 03:01:20
por firmar la salida 03:01:23
supongo que estaban atentos a tu explicación 03:01:24
entonces si les das 03:01:26
un minuto antes de 03:01:29
para que puedan 03:01:30
es que si no por tema de hora 03:01:32
lo mismo se les va 03:01:35
yo solo quería 03:01:36
antes de dar ese tiempo 03:01:37
despedirme de vosotros hasta el año que viene 03:01:40
desearos unas muy felices fiestas 03:01:43
y todas estas cosas que se dicen 03:01:45
igualmente 03:01:46
por cierto, os recuerdo que 03:01:49
durante todo este tiempo 03:01:55
tenéis 03:01:56
tenemos que mirar un tema ahora 03:01:57
sí, sí, sí, lo sé 03:02:00
que digo, que tenéis 03:02:02
que durante todo este tiempo 03:02:04
cualquier duda 03:02:05
me escribís por correo 03:02:06
o escribís en el foro 03:02:07
si creéis que es un tema 03:02:08
que no es algo 03:02:09
propio de vuestro código 03:02:10
sino que puede ayudar 03:02:12
a más gente 03:02:12
y os contestaré 03:02:13
vamos 03:02:15
no os quedáis solos 03:02:15
Valoración:
  • 1
  • 2
  • 3
  • 4
  • 5
Eres el primero. Inicia sesión para valorar el vídeo.
Idioma/s:
es
Autor/es:
CTIF Madrid-Este
Subido por:
Tic ctif madrideste
Licencia:
Todos los derechos reservados
Visualizaciones:
19
Fecha:
20 de diciembre de 2022 - 14:32
Visibilidad:
Clave
Centro:
C.TER.INN.Y FORM CTIF MADRID-ESTE
Duración:
3h′ 02′ 17″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
1.36

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid