Curso IOT - 19/12/2022
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
80
00:15:48
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
Ok
00:52:14
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
sí
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
Sí
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
Sí
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
sí
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
2
00:58:24
2
00:58:25
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
si
01:02:50
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
sí
01:16:59
preferencias
01:17:00
instale a donde pone gestor de urls adicionales
01:17:02
sí
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
ah
01:19:21
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
no
01:30:35
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
sí
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
no
01:48:45
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
sí
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
no
01:56:03
ah, no es .org
01:56:04
no
01:56:06
vale, dale a salvar
01:56:06
dale a abort
01:56:11
y dale a conectar
01:56:13
ok
01:56:15
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
12
02:05:07
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
02:10:40
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
02:10:50
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
Sí
02:11:19
Ahora sí veis
02:11:23
mi pantalla, ¿verdad?
02:11:28
Sí
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
02:18:12
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
sí
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
ah
02:27:29
eso ha cambiado
02:27:29
si
02:27:31
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
Sí
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
8
02:38:23
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
02:45:02
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
sí
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:
- Eres el primero. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Idioma/s:
- 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