IoT Avanzado - Sesión 6
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:
Tiene los conectores de tal forma que se parecen a Arduino y que puedes, teóricamente, conectar
00:00:00
algún shield de Arduino ahí encima.
00:00:09
Y entonces lo que quería hacer era eso, una pequeña integración entre el 1200 a través
00:00:11
del IOT2050 de Siemens, usarlo como bróker de mosquito también y enviar mensajes con
00:00:18
Arduino y hacer una mezcla, mezclar a Arduino con el Siemens, con el S7-1200 en 1215.
00:00:27
Sí, pues te va a funcionar bien, porque yo el proyecto aquel lo hice con un Arduino
00:00:35
Uno, que es el más básico.
00:00:40
Sí, sí, sí, lo que quiero hacerlo con un Arduino Uno porque, claro, ahí tengo conectividad
00:00:42
de red física, de cable, entonces quería hacerlo por cable, no WiFi, o sea, conectar
00:00:46
directamente lo que es el, en 1215 lleva dos conexiones de red, entonces conectar una
00:00:53
directamente al IOT y del IOT conectar otra directamente al Arduino y que se hablasen
00:00:59
entre ellos ahí, pero usando MQTT en lugar de por ahí cualquier protocolo raro de Siemens
00:01:06
o alguna cosilla de estas.
00:01:14
Sí, pues estaba ahí, pues no sabía que Siemens tenía una gama que incorporaba no
00:01:15
de red.
00:01:19
Sí, es un elemento específico, si lo buscas por ahí se llama IOT 2050.
00:01:20
Sí, los que están ahí arriba, los que tienes ahí arriba.
00:01:35
Hay dos modelos, uno básico y uno avanzado.
00:01:38
Sí, esos son.
00:01:41
Y trae un Linux, trae dentro un Linux.
00:01:45
Sí, claro.
00:01:49
Y la verdad es que para empezar a juguetear, la verdad es que está bastante chulo.
00:01:52
Y así no necesitas, tienes un equipo industrial con las características de los equipos industriales
00:01:56
y no hay un Arduino o una Raspberry que montes ahí, ¿sabes?
00:02:03
Pues de precio no está mal para ser un Siemens.
00:02:09
No, no está excesivamente mal.
00:02:12
Así para casa es un poco carillo.
00:02:16
Sí, además se calienta bastante.
00:02:20
¿Ah, sí?
00:02:23
Sí, sí, sí.
00:02:24
Es uno de los problemas que tiene, que se calienta bastante.
00:02:25
El disipador ese que tiene, que es todo un lateral de disipador, está bien puesto porque se calienta un poquillo.
00:02:30
Curioso.
00:02:36
Pues nada, me lo apunto porque sé que algún día necesito algún cacharro industrial bueno con ODR.
00:02:37
Vale, vamos a ver cómo estamos.
00:02:45
Sí, perdona, ¿cómo se arrancaba el MQTT?
00:02:47
El MQTT... ¿Estás en Windows?
00:02:51
Sí.
00:02:54
Tienes que irte a servicios.
00:02:55
O sea, lo has instalado, ¿verdad?
00:02:58
Sí.
00:03:00
Vale, pues después de instalarlo...
00:03:01
Vale, después de instalarlo...
00:03:03
Darle botón derecho e iniciar.
00:03:28
Iniciar, vale.
00:03:30
Y a partir de ahora ya tanto el NodeRED como el MQTT Explorer.
00:03:34
Que si no lo tienes...
00:03:38
Espera, te paso el enlace porque supongo que también lo habrás perdido, ¿verdad?
00:03:39
Sí, está bien.
00:03:42
Te paso el enlace.
00:03:45
Te vendrá bien tenerlo cerrado.
00:03:50
Ahí lo tienes.
00:03:53
Vale.
00:03:54
Vale.
00:03:58
Bueno, pues Sony 5 estamos ya casi todos, casi todas.
00:03:59
Vale, hoy Juanra me dijo que no podría participar.
00:04:03
Así que me encargo yo de poner los códigos de entrada y de salida.
00:04:10
Vale, el de entrada supongo que lo estáis viendo ya, ¿verdad?
00:04:15
¿Estáis viendo mi pantalla?
00:04:17
Sí.
00:04:19
Sí, sí.
00:04:20
Vale, pues ahí lo tenéis.
00:04:21
Lo dejaré hasta el descanso más o menos.
00:04:23
Vale.
00:04:26
Vale, y nada, antes de continuar sí quería preguntaros, bueno, pues de lo que vimos la semana pasada.
00:04:30
Si había quedado alguna duda, si se veía todo más o menos bien.
00:04:39
¿Cuál era la idea de utilizar MQTT como mensajería?
00:04:43
Vale.
00:04:51
Bueno, uno de los motivos por los que utilizamos MQTT es por, creo que comenté ya el otro día.
00:04:53
Es porque, y lo que vamos a hablar justo ahora con Jesús.
00:05:02
Es porque es un protocolo tremendamente pequeño y eso permite que se pueda implementar en pequeños microcontroladores.
00:05:05
Como os estaba diciendo ahora, pues se puede meter incluso en un Arduino Uno.
00:05:12
Y el SP32, que para mí es lo que más me gusta ahora mismo para trabajar.
00:05:15
Pues tiene capacidad más que de sobra.
00:05:20
Entonces, las librerías de MQTT, tanto para Arduino como para SP32, que de hecho es la misma.
00:05:23
Son muy, muy fáciles de manejar y permiten enviar mensajes al broker.
00:05:29
Que luego, si con Node-RED estamos suscritos, podemos recibir información.
00:05:35
Es una forma muy cómoda de recibir información desde un Node-RED que tengamos remotamente a nuestro ordenador.
00:05:39
O al revés, el otro sentido.
00:05:45
Cuando publicamos un MQTT Out, pues que ese mensaje le llegue al SP32 que está suscrito al topic que nos interese.
00:05:47
De hecho, para Arduino y para SP32 también hay una librería que se llama libJSON o arduinoJSON.
00:06:00
Que también permite procesar JSON, por si es el formato que queremos.
00:06:11
Es decir, si en lugar de mandarle órdenes de tipo enciende o apaga, o on y off, le queremos mandar un JSON con una serie de propiedades.
00:06:16
Podemos hacerlo y esta librería deserializa.
00:06:22
Es decir, va recibiendo el JSON y genera un objeto con las diferentes propiedades que se pusieron a la hora de enviarlo.
00:06:25
Dice Ismael, perdona Jesús, me he instalado la aplicación de Teams pero no me salen las grabaciones en el chat.
00:06:36
¿Dónde puedo buscar?
00:06:44
Jesús, ¿te refieres a Jesús Ortera?
00:06:49
Sí, es que yo como tengo el Teams por debajo, en lugar de verlo en el navegador, tengo el Teams.
00:06:54
Entonces en Teams me va guardando ahí el chat.
00:07:05
Todo el chat de todos estos días lo tengo ahí puesto.
00:07:11
Yo también lo tengo guardado.
00:07:14
Entonces me aparecen también los enlaces a los vídeos para verlos desde ahí y toda la historia.
00:07:16
Pero si no lo tenías abierto pues ya no sé exactamente.
00:07:20
No, pero desde la web también se puede.
00:07:24
Mira, este es el Teams de la web.
00:07:26
No veo nada tuyo, eh.
00:07:31
¿No?
00:07:33
No.
00:07:34
Sí, sí, se ve a la derecha.
00:07:35
Yo sí lo estoy viendo.
00:07:37
¿Me veis ahora en pantalla completa, no, Ismael?
00:07:39
No, yo no.
00:07:42
Es que va muy lento.
00:07:43
Ahora sí.
00:07:45
Vale.
00:07:47
Pues aquí en el Teams, si le dais a dónde pone el chat.
00:07:48
A ver.
00:07:54
Ahora.
00:07:55
Que va lento, sí.
00:07:56
Aquí aparecen ya todas las conversaciones de todas las escenas anteriores.
00:07:57
Pero eso será por el tipo de cuenta porque yo he iniciado sesión como usuario o algo así.
00:08:03
Había como dos categorías, como nivel educativo y nivel usuario.
00:08:09
Yo he iniciado sesión la más básica y a mí en el chat de la reunión, que es parecido al vuestro, no me sale nada.
00:08:14
Solo los últimos mensajes.
00:08:22
Ah, curioso.
00:08:24
A mí me pasa igual.
00:08:27
Al haberlo formateado.
00:08:29
Vale.
00:08:30
Lo que no sé es cómo vuelvo ahora.
00:08:33
Espera un segundo que no...
00:08:36
Cómo vuelvo a la sesión.
00:08:38
¿Me veis?
00:08:45
Sí, sí.
00:08:54
He vuelto, ¿no?
00:08:56
¿Normal?
00:08:57
¿Y sigo podiendo estar en pantalla completa?
00:08:58
Te está viendo pequeñito.
00:09:01
Es que va bastante lento hoy.
00:09:03
No se te ve ni hablar ni nada.
00:09:06
Va súper lento.
00:09:09
Va con mucho retardo.
00:09:10
O con poco frame.
00:09:11
No sé si estaremos cargando la red con mucho tráfico por el tema del vídeo.
00:09:13
No debería.
00:09:22
Otras veces hemos hecho lo mismo y...
00:09:23
Sí, sí, sí.
00:09:25
Otras veces sí, pero hoy es que va bastante lento.
00:09:26
Vale.
00:09:31
Bueno, pues vamos a continuar.
00:09:32
Nos quedamos el otro día.
00:09:35
Estuvimos viendo los nodos básicos de MQTT IN y MQTT OUT.
00:09:37
Hicimos algunos ejemplos.
00:09:42
He estado tratando de pegarme, porque si recordáis, el otro día una de las cosas que os quise contar y no me salió es cómo hacer para que un mensaje retenido se borrara.
00:09:44
Bueno, me he estado leyendo la documentación oficial de Node-RED.
00:09:55
En principio es como yo sospechaba, es decir, es mandar un mensaje vacío aplicando el retain a true y no me lo quita.
00:09:59
Entonces, bueno, continuaré investigando.
00:10:08
Y a las malas, como nos queda una sesión más el lunes que viene, espero para entonces poder daros una solución a cómo se quita un retain de un mensaje para que se borre del servidor.
00:10:11
Vale.
00:10:26
Entonces, el otro día, como decía, estuvimos viendo los nodos de MQTT IN y MQTT OUT.
00:10:27
Pero no los íbamos a ver por completo.
00:10:41
Por ejemplo, en el nodo de MQTT IN sí que no había mucho más que rascar.
00:10:45
Teníamos el servidor, el topic al que queríamos inscribirnos,
00:10:51
el QoS, del QoS no hablamos.
00:10:55
El QoS básicamente lo que dice es con qué garantías queremos que un mensaje le llegue a cada uno de los suscriptores.
00:10:58
Entonces, cuando yo mando un mensaje, yo defino ese QoS por defecto.
00:11:10
Bien establecido a algo. Vale. Por defecto bien establecido a cero.
00:11:17
Como veis aquí en la documentación.
00:11:24
Que cero es lo que se conoce como fire and forget, es decir, disparar y olvidarte.
00:11:27
Eso lo que significa es que tú mandas un mensaje a un topic, si resulta que por algún motivo ese mensaje no llega, pues se pierde para siempre.
00:11:33
Al poner un 1 en QoS, al establecer un 1, lo que garantiza es que ese mensaje va a llegar a cada uno de los suscriptores al menos una vez.
00:11:44
Esto implica que, por cómo funciona el protocolo internamente, podría incluso llegar más de una vez.
00:11:55
Hay ocasiones en las cuales eso no es interesante o puede llevar a errores.
00:12:02
En caso de que estemos mandando un mensaje que haga un switch, que cambie de un estado a otro.
00:12:09
Que llegue dos veces implicaría volver a dejar las cosas como estaban.
00:12:13
Para eso está el tipo de QoS 2 que garantiza que el mensaje va a llegar a cada uno de los suscriptores una y solo una vez.
00:12:17
¿Por qué no poner siempre un 2?
00:12:28
Básicamente cuanto más QoS establezcamos a la hora de enviar un mensaje, más cargamos el sistema.
00:12:32
Más información hay que mandar.
00:12:40
Porque con el mensaje cero simplemente el publicador manda el mensaje y se olvida.
00:12:42
Con el 1 tiene que esperar a que se reciba una confirmación de que se ha recibido.
00:12:47
Con lo cual cada uno de los suscriptores tiene que ir mandando algo de que se ha recibido.
00:12:52
Mientras que con el 2 todavía se complica más porque cada suscriptor tiene que decir que le ha llegado.
00:12:58
Y el publicador de nuevo tiene que darle un ok a su segundo mensaje de que ha llegado.
00:13:03
Para no continuar mandándolo más.
00:13:09
No sé si será mi versión, pero entiendo que era la que teníamos los que nos hemos instalado últimamente en lo de red.
00:13:11
¿La de por defecto es la 2 justamente?
00:13:19
¿La por defecto es la 2?
00:13:22
La 2 cuando creo 1.
00:13:26
A mí por defecto me sale vacío.
00:13:33
Debería aparecerte vacío, sí.
00:13:35
Créate un nuevo mensaje de MQTT Out.
00:13:37
Hace doble clic y debería aparecerte vacío.
00:13:39
Perdón, lo estaba mirando en el MQTT In.
00:13:46
En el In sí que aparece el 2.
00:13:49
Estaba mirando en la In, perdona.
00:13:51
En el Out aparece, sí.
00:13:53
¿Por qué en el In?
00:13:55
Es decir, el 2 que es lo que significa en el MQTT de entrada.
00:13:57
Básicamente, cuando tenemos un nodo de MQTT, cuando tenemos un suscriptor, este número limita el valor máximo de mensajes a los cuales queremos estar suscritos.
00:14:02
Es decir, que si yo estoy suscrito con QoS 0 y alguien me manda un mensaje con MQTT 1, yo no lo voy a recibir.
00:14:15
Y si me lo manda con 2, tampoco.
00:14:25
Si estoy en 1 y me llega un mensaje con 0, lo recibo.
00:14:28
Que me llegue un mensaje con 1, también lo recibo.
00:14:31
Que me llegue uno con 2, no lo recibo.
00:14:33
Por eso el 2 es el más seguro.
00:14:36
Porque es, me llegue cualquier tipo de mensaje con cualquier QoS, yo lo voy a recibir.
00:14:38
Recibiré los de 0, los de 1 y los de 2.
00:14:43
Por eso, por defecto, viene el valor como más conservador, el valor que garantiza que siempre vamos a recibir.
00:14:45
Un nodo de salida viene sin marcar, pero si entramos en la documentación, podemos ver que el por defecto es este.
00:14:55
¿El tema de los comodines lo llegamos a ver bien el otro día o solo comentamos el de la almohadilla?
00:15:06
Solo el de la almohadilla.
00:15:30
Bueno, pues me quedaba por ver esa parte también.
00:15:38
Porque hay comodines que son multinivel.
00:15:41
¿A qué me refiero?
00:15:46
Por ejemplo, ¿tenéis abierto el MQTT Exported?
00:15:47
¿Sí?
00:15:52
Sí.
00:15:55
Vale, dejadme un segundito que cargue mi ventana.
00:15:56
Vale.
00:16:01
Entonces.
00:16:04
Vale.
00:16:07
Si yo me creo un MQTTin, y lo voy a conectar a un nodo de debut,
00:16:10
vamos a suponer que nos vamos a hacer una pequeña jerarquía en la cual vamos a tener alumnos cuyo apellido empiece a la L y alumnos que empiecen de la M a la Z.
00:16:20
En la cual vamos a tener alumnos cuyo apellido empiece a la L y alumnos que empiecen de la M a la Z.
00:16:39
Entonces, vamos a hacer que la jerarquía sea esta.
00:16:49
Alumnos barra L, ¿vale?
00:16:56
Que ahí estaría yo.
00:17:03
Y cada uno después con su nombre.
00:17:04
¿Vale?
00:17:08
Quiero que cada uno coja esta jerarquía.
00:17:09
Esperad, voy a ponerlo un poco más claro.
00:17:13
Se ve la pizarrilla, ¿verdad?
00:17:16
Sí, sí.
00:17:26
Vale.
00:17:28
Entonces, tenemos...
00:17:29
Vale.
00:17:32
Bueno, de la raíz colgan alumnos.
00:17:34
Y aquí va a haber dos jerarquías.
00:17:39
A, Z.
00:17:43
Y de aquí va a colgar cada uno de vuestros nombres.
00:17:44
Y por otro lado...
00:17:47
Perdón, A, Z no.
00:17:48
A, L.
00:17:50
Y por otro lado va a tener M, Z.
00:17:53
También con alumnos.
00:17:59
Entonces, lo que quiero es que cada uno publique bajo su nombre en donde corresponda.
00:18:01
Yo estaría aquí.
00:18:07
Alguien que sea Rey de Martínez estaría aquí.
00:18:08
Su nombre.
00:18:12
Y que publique cualquier valor.
00:18:13
Pues esto será igual a 5.
00:18:14
Lo que queráis.
00:18:17
¿Vale?
00:18:18
Entonces, probamos un segundo a ver cómo lo veo en MQTT.
00:18:19
¿Vale?
00:18:24
Vale.
00:18:27
A, L. Vale.
00:18:29
Este que ha publicado A, L igual a 5 se ha olvidado poner su nombre.
00:18:30
O sea, el topic tiene que ser alumno.
00:18:37
Sí, sí.
00:18:39
Vale, vale.
00:18:40
Jorge, perdona.
00:18:41
¿Puedes poner para conectarme al bróker tuyo?
00:18:42
Ah, sí, sí.
00:18:46
Claro.
00:18:47
Sí.
00:18:48
Vale, pues no mandéis ahora porque como me he desconectado no voy a poder ver los mensajes.
00:18:49
Entonces, esperad un poquito.
00:18:54
Perdón.
00:18:55
Esperad un poquito.
00:18:56
Aquí lo tienes.
00:18:57
De todas formas, esta misma pantalla la tienes en la documentación.
00:18:59
¿Vale?
00:19:01
Ah, vale.
00:19:02
Vale, entonces lo que me falta...
00:19:03
Vale, vale.
00:19:04
El puerto compróbalo porque no es el que viene por defecto.
00:19:07
Vale.
00:19:11
Y luego los usuarios en dormir.net y la clave espacio miscela todo junto.
00:19:14
Vale, perfecto.
00:19:19
Gracias.
00:19:25
Nada.
00:19:26
Pues cuando lo queráis podéis ir mandando.
00:19:27
Vale.
00:19:31
Alumnos...
00:19:32
Bueno, aquí tenemos...
00:19:33
Habría que ponerse de acuerdo en si son mayúsculas o minúsculas.
00:19:34
Pero, bueno, incluso me viene bien que sea así.
00:19:40
Que cada uno haya escrito en mayúsculas o minúsculas.
00:19:43
Perdona, Jorge.
00:19:46
A ver, yo he metido el MQTT...
00:19:48
A ver.
00:19:51
Out is test.
00:19:52
No, in.
00:19:53
He puesto el debug.
00:19:54
Ajá.
00:19:56
¿Y dónde tenía que dar para lanzar el in?
00:19:57
No, el in no.
00:19:59
Tú quieres publicar.
00:20:00
Tú si lo haces con...
00:20:01
Se lo pone el out, ¿no?
00:20:02
Si lo haces con node-red, tiene que ser en un out.
00:20:03
O si lo haces con el propio MQTT Explorer, en esta zona de aquí.
00:20:05
O sea, lo meto con un in.
00:20:10
Vale, para meterlo dentro del...
00:20:14
Sí, es que es jueto.
00:20:16
Esto lo tengo un poco...
00:20:17
Y le meto un inject primero, ¿no?
00:20:18
Para meterlo.
00:20:20
Correcto.
00:20:22
Pero ahora lo vemos de otra forma.
00:20:27
Sí, bueno, ahora lo vemos.
00:20:29
Vale, algo estoy haciendo mal.
00:20:30
Estoy despistado.
00:20:31
No sé qué me pasa.
00:20:32
¿Cómo lo has mandado?
00:20:33
Mira, espera, te lo explico.
00:20:34
No, es que estoy me dando en cuenta.
00:20:35
Le pongo un inject y me sale por el lado contrario.
00:20:37
Y algo tengo que estar haciendo mal.
00:20:41
A ver, esto es un...
00:20:43
Espera.
00:20:44
Vale, espera.
00:20:45
Out.
00:20:46
Vale, no, es un out.
00:20:47
No es un in, joder.
00:20:48
No, no, no.
00:20:49
Claro, para poder enviar tú...
00:20:50
Espera, queremos un inject.
00:20:51
Y vamos a mandar, por ejemplo, un número.
00:20:52
Vale.
00:20:54
Dos.
00:20:56
Y ahora esto lo queremos en un MQTT.
00:20:57
Out.
00:21:01
Y entonces, como hemos dicho,
00:21:03
la configuración del servidor ya está hecha
00:21:06
y queremos mandarla en alumnos
00:21:08
barra...
00:21:10
Yo, por ejemplo, MZ
00:21:11
barra mi nombre.
00:21:14
Pues, por ejemplo, Martín.
00:21:15
Martín.
00:21:20
Vale, ya veis en principio.
00:21:24
Despliego.
00:21:25
Envío.
00:21:26
Y ahora tenemos que tener en el MQTT Explorer
00:21:28
a Martín que está aquí.
00:21:32
Vale, entonces ahora yo...
00:21:35
Vale.
00:21:36
Has mandado un timestamp.
00:21:38
Vale, bueno, le pongo un...
00:21:39
No, le pongo un string y ya está.
00:21:41
Que lo que tengo que hacer es ver el string.
00:21:43
Le pongo que he llegado.
00:21:44
Hola, soy Marcos.
00:21:45
Y así mejor.
00:21:47
Porque si no...
00:21:49
Vale, ya está.
00:21:52
Y entonces tenemos...
00:21:54
Entonces, esto es lo que había que hacer, ¿no?
00:21:55
Sí, por ahora sí.
00:21:57
Porque te voy a enseñar uno de los comodines que hay.
00:21:58
Entonces, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
00:22:01
Quitándome a mí, que estoy dos veces nueve.
00:22:07
Me faltan...
00:22:10
Yo es que no lo estoy consiguiendo.
00:22:12
Yo, el formateo este me ha fastidiado, macho.
00:22:14
Vale, ¿no has conseguido el qué, perdona?
00:22:18
Pues estoy metido en...
00:22:21
Con el explorer me he metido en el...
00:22:23
En el servidor.
00:22:26
En el tuyo.
00:22:27
Y ahora estoy poniendo el topic y estoy mandando dentro en Raw.
00:22:28
Pero no sé por qué no está apareciendo.
00:22:32
Y le estás poniendo...
00:22:37
Me ves a mí, ¿no?
00:22:38
¿Cómo lo tengo configurado?
00:22:39
Sí.
00:22:40
¿Y qué estás poniendo tú?
00:22:42
¿Alumnos barra qué?
00:22:43
Alumno barra mz barra julio.
00:22:44
Vale.
00:22:48
¿Y aquí, en donde pone Raw, estás poniendo un número?
00:22:49
He puesto un julio ahora.
00:22:53
Mz... Vale, sí que está.
00:22:56
Ah, vale, ahora sí, joder.
00:22:57
Vale, vale.
00:22:58
Es alumnos, lo que estábamos haciendo.
00:22:59
Ah, perdón.
00:23:01
Vale, si lo puedes cambiar.
00:23:02
Vale, ¿y los demás?
00:23:08
Yo creo que no me he conectado al mqtt.
00:23:10
Estaba conectado con el otro y...
00:23:13
No sé ahora las claves.
00:23:15
Me dice que están en la documentación, pero no las puedo ver.
00:23:17
Sí, espera.
00:23:20
En la lección 3.
00:23:24
Claro, estaba conectado al otro.
00:23:27
Y este no lo tenía guardado, las claves.
00:23:29
Ah, pues...
00:23:34
Pues no, no me aparece en la documentación.
00:23:35
Espera, te lo pongo aquí en un bloque de notas.
00:23:40
¿Estás creando una nueva computación?
00:23:43
Del mqtt.
00:23:47
Tenía la otra, pero...
00:23:49
Si me dices, si espacio misela lo tengo...
00:23:52
No me acuerdo si es sin dormir con mayúscula o sin mayúscula.
00:23:54
Si, sendormil.net...
00:23:57
Clave espacio misela...
00:23:59
Servidor...
00:24:02
mqtt-sendormil.net
00:24:06
Y creo que no debería poner nada más.
00:24:08
Validación...
00:24:10
Ver certificado...
00:24:12
No.
00:24:15
Y TLS o algo así, tampoco.
00:24:17
¿Mqtt es con minúscula el servidor?
00:24:31
Da igual.
00:24:33
Los números de host de internet dan igual.
00:24:34
Vale.
00:24:37
Vamos a ver.
00:24:38
Y el host nada, ¿no?
00:24:41
¿El host?
00:24:43
¿Te pone algo o no?
00:24:46
Host es esto.
00:24:47
¿Cuál, cuál? ¿Dónde está? Ah, sí.
00:24:51
Ah, vale, vale.
00:24:52
Y entonces...
00:24:53
El host es esto.
00:24:55
Ah, el name es el que no estaba...
00:24:56
El name es el que pones tú o el que a tu voluntario...
00:24:59
El que quiera, ya, ya.
00:25:01
El que tenía puesto como name. Vale.
00:25:02
Vale. Aquí...
00:25:04
José Manuel me ha escrito en alumno, en lugar de alumnos.
00:25:05
Ok, escribo bien.
00:25:11
Lo digo para que funcione bien la práctica.
00:25:13
Jorge, yo he escrito dos porque pensaba que era por el apellido y luego por el nombre y no sé.
00:25:20
He puesto uno en cada.
00:25:25
No, no pasa nada.
00:25:26
No pasa nada.
00:25:27
Si lo que quería era que hubiera algunos en MZ y otros en AL.
00:25:28
Y las más alas pediré de nuevo que escribáis.
00:25:34
Escribáis en el mismo topic en el que habéis escrito ahora mismo.
00:25:37
Vale.
00:25:42
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20.
00:25:43
Ahí.
00:25:49
Ahí estoy casi todos.
00:25:50
¿Alguien más necesita ayuda o podemos continuar?
00:25:51
Yo, Jorge, estoy también intentando conectarme.
00:25:57
Por eso voy un poco más retrasado.
00:26:00
A ver si ahora...
00:26:02
Acabé un poco por detrás.
00:26:03
Me da tiempo y luego...
00:26:04
Dime, dime si no te funciona.
00:26:05
Esto lo tienes apuntado, ¿verdad?
00:26:06
Sí, sí lo tengo apuntado.
00:26:09
Vale.
00:26:11
Bueno, pues la idea es la siguiente.
00:26:13
Aquí veis, por ejemplo, que de otras cosas de no de red que tengáis por ahí, se están publicando mensajes.
00:26:16
Por ejemplo, si yo publico aquí en casa.
00:26:23
Hola y publico esto.
00:26:28
Pues se genera aquí este mensaje.
00:26:29
¿Por qué aparecen todas estas cosas?
00:26:32
Bueno, aparecen estas cosas porque, que ya lo vimos el otro día,
00:26:34
la configuración del MQTT Explorer no suscribe por defecto a almohadilla.
00:26:38
¿Vale?
00:26:43
Entonces, aquí cuando yo me suscribo a algo, que eso es el MQTT IN.
00:26:44
¿Vale?
00:26:50
Cuando yo pongo por defecto un MQTT IN, no aparece suscrito a nada.
00:26:51
Pero si yo decido suscribirme a almohadilla,
00:26:57
lo que va a suceder es que voy a recibir absolutamente todos los mensajes que se manden.
00:27:00
Voy a quitar aquí.
00:27:05
¿Podéis, por favor, escribir cualquier cosa?
00:27:07
¿En cualquier topic?
00:27:11
Vale, aquí tengo alumnos MZ Asunso, aquí tengo María.
00:27:12
Vale, voy a escribir yo en casa hola.
00:27:15
Vale, y aquí tenemos el de casa hola.
00:27:21
Es decir, va a llegar absolutamente todos los mensajes que se manden.
00:27:22
Vale, y aquí tenemos el de casa hola.
00:27:27
Es decir, va a llegar absolutamente cualquier cosa que se publique en cualquier topic, en cualquier subcategoría.
00:27:28
¿Vale?
00:27:37
Sin embargo, hay veces que a mí me interesa solo quedarme con ciertas partes, por ejemplo.
00:27:42
A ver, tenemos la suerte de que...
00:27:51
Había nombres repetidos, ¿verdad?
00:27:55
Ángel y Ángelita.
00:27:59
¿Hay dos ángeles?
00:28:04
¿Sí, verdad?
00:28:05
Sí, sí.
00:28:06
Vale, lo único que ponedos de acuerdo es utilizar la inicial de vuestro nombre en mayúsculas.
00:28:07
Ahí podéis repetir.
00:28:14
El ángel, su apellido, está entre la A y la L.
00:28:15
Voy allá.
00:28:20
Ahí va yo.
00:28:30
Yo lo que pasa, que soy Pablo, he puesto en el apellido...
00:28:31
Pensaba que lo de MZ te referías al nombre que iba a poner.
00:28:35
En este caso, Pablo, lo he metido en MZ.
00:28:42
Vale.
00:28:44
O sea, da un poco igual.
00:28:46
En esta jerarquía, imaginamos que yo solo quiero leer información de Ángel independientemente de cómo esté su apellido.
00:28:51
Entonces, yo si hago así, ¿qué voy a recibir a partir de ahora?
00:29:04
Pues todo aquello que provenga de alumnos.
00:29:11
Voy a borrar.
00:29:14
Despego.
00:29:15
Ahí recibo...
00:29:16
Este es otro sitio.
00:29:20
Si mando casa hola y publico, ya no me va a llegar porque estoy suscrito a alumnos y lo que venga a continuación.
00:29:26
La cuestión es que esta almohadilla es una almohadilla finalizadora, por así decirlo.
00:29:35
Es decir, yo aquí ya no puedo filtrar más.
00:29:42
Yo no puedo decir, por ejemplo, este que acaba de llegar Juanma, no puedo decir barra Juanma.
00:29:44
De hecho, veis que aparece con un triangulito de...
00:29:49
Esto es un problema.
00:29:54
Porque no admitimos en la almohadilla que después de ella vaya ninguna otra cosa.
00:29:56
Entonces, si en lugar de una almohadilla yo pongo un más y después cualquier cosa...
00:30:01
Vale.
00:30:13
¿Juanma, puedes escribir de nuevo, por favor?
00:30:17
¿Vale?
00:30:22
Y ahora, cámbiate el apellido.
00:30:23
Ponte que tu apellido en vez de ser de la L es de la M a la Z.
00:30:25
Es decir, escribe algo en alumnos.mz.pan.
00:30:29
O sea, donde digo punto quiero escribir barra.
00:30:33
Sí, sí, voy, voy.
00:30:36
Z.
00:30:39
¿Vale?
00:30:41
O también los dos Ángel.
00:30:42
¿Podéis escribir cada un hola?
00:30:45
Sí.
00:30:47
Cambiaros el apellido.
00:30:54
¿Vale?
00:31:08
¿Ángel?
00:31:26
¿Ha visto?
00:31:28
No ha llegado a nada. ¿Lo vuestro?
00:31:32
No.
00:31:34
Ah, perdón, perdón, perdón.
00:31:36
Claro, claro.
00:31:38
Disculpadme.
00:31:42
Hemos quedado que lo poníamos los dos en minúsculas.
00:31:44
Ah, espera.
00:31:50
Es que antes he visto aquí un Ángel y aquí otro Ángel.
00:31:51
Bueno.
00:31:58
Aquí lo tenemos.
00:31:59
Aquí ha habido, bueno, incluso un Ángel que está en XX.
00:32:00
¿Vale?
00:32:05
Que es cualquier cosa.
00:32:06
Si ahora escribís los Ángeles que estáis en AL o MZ también vais a aparecer aquí.
00:32:07
Perfecto.
00:32:16
Ahí tenemos AMZ.
00:32:17
¿Vale?
00:32:21
Entonces esto es el comodín que sí que permite continuar avanzando por la derecha.
00:32:22
¿Para qué suele valer esto?
00:32:29
Bueno, pues, por ejemplo, cuando yo...
00:32:31
Esto creo que lo comenté el primer día.
00:32:33
Un ejemplo clásico de MQTT o de tipología de MQTT puede dar en un hotel.
00:32:35
Como digo, tengo un montón de habitaciones.
00:32:42
Tengo hotel.
00:32:45
Este hotel cuelga en las plantas.
00:32:47
¿Vale?
00:32:49
La planta 1.
00:32:50
En la planta 1 cuelga la habitación 101, la habitación 102, la habitación 103.
00:32:54
Y de cada una de esas habitaciones cuelga el sensor de temperatura, el sensor de humedad,
00:32:58
el sensor de luminosidad y el sensor de inundación, por ejemplo.
00:33:04
¿Vale?
00:33:11
Entonces, hacer una consulta para luego representar, por ejemplo, en una pantalla gráfica,
00:33:12
el estado de las temperaturas de todas las habitaciones de una planta es muy sencillo.
00:33:17
¿Vale?
00:33:21
Lo que yo puedo decir, pues, obtenme de hotel de planta 1 de todas las habitaciones los sensores de temperatura.
00:33:22
¿Vale?
00:33:37
O incluso si yo quiero tener, si me meto los pequeñitos y me caben todas las habitaciones en una pantalla,
00:33:38
pues yo podría poner hotel de todas las plantas de todas las habitaciones todas las humedades, por ejemplo.
00:33:42
Y eso haría que cualquier cosa que se publique, cualquier cosa que se publique dentro de hotel
00:33:53
y que acabe con humedad después de haber recorrido dos subdirectorios, por así decirlo,
00:34:03
se muestre en la consulta a usted suscrito a cualquier cosa que se publique ahí.
00:34:10
¿Y no se puede poner de la 103 a la 108, por ejemplo, con corchetes o algo así? ¿No existe eso?
00:34:15
No, no. Si quieres hacer cosas de esas, ya te toca hacerlo con los nodos de Switch.
00:34:20
Ah, vale.
00:34:27
Y ahí tienes que recordar que esto, cuando nos llegue un topic, no nos va a llegar esto,
00:34:29
sino que nos va a llegar, en lugar de esto, nos va a llegar aquí.
00:34:34
Nos va a llegar eso, el completo.
00:34:41
Aquí de este mensaje que me ha llegado.
00:34:50
Aquí estamos en este output, que es el que ha generado estos mensajes.
00:34:52
Fijaos que me llegan dos informaciones importantes.
00:34:56
Por un lado, está el payload, que lo que nos dice es qué es lo que se ha enviado.
00:35:01
Pero luego también tenemos esta propiedad, que es el topic.
00:35:05
Os voy a silenciar, porque hay gente que tiene el micrófono y se está colando por ahí.
00:35:09
Y estoy escuchando a mí mismo, que es un rollo.
00:35:13
O silencio, ¿vale? El que quiera hablar luego que recuerde.
00:35:19
Vale, entonces, si tú quisieras, digamos, hacer una especie de selección del topic en el que se ha publicado el mensaje,
00:35:28
tendrías que utilizar uno de los nodos que vimos el otro día.
00:35:38
Aquí se me ocurren dos, básicamente.
00:35:44
O el nodo de switch, que permite determinar una cosa y generar un flujo en un sentido,
00:35:47
otro flujo en otro, en función de cómo se encuentra el topic.
00:35:52
O un nodo de función, que también nos permite hacer lo mismo.
00:35:55
¿Recuerdas cómo vimos para hacer que una función generara dos salidas diferentes?
00:35:59
Sí, yo sí me acuerdo. Ponía la condición y si no iba para el 1, al 2, al 3, todo eso, ¿no?
00:36:06
Eso es. Entonces, evaluando el contenido del topic, podemos hacer que vaya para una parte del flujo o para otra.
00:36:11
Vale.
00:36:21
Vale, pero el protocolo por sí mismo no permite hacer, digamos, de una misma jerarquía, de una estructura de la jerarquía, no permite segmentar.
00:36:22
Si quieres segmentar por protocolo, entonces tienes que hacerte un subnivel más.
00:36:38
¿Vale?
00:36:42
Entonces, de aquí, la importancia de que cuando hagamos algún tipo de proyecto gordo con MQTT, que establezcamos bien cuál va a ser la jerarquía que vamos a utilizar,
00:36:47
en función de luego cómo van a ser las consultas que vamos a querer hacer.
00:36:59
¿Vale?
00:37:03
Aquí, por ejemplo, para Nautil, pues parece claro que yo voy a poder querer necesitar, voy a necesitar, de todas las situaciones, todas las temperaturas.
00:37:04
De todas las situaciones, todas las sensores de iluminación.
00:37:12
¿Vale?
00:37:15
Pero en otras ocasiones, pues habrá que organizar esto de otra manera para que yo pueda hacer consultas de una forma sencilla.
00:37:16
Bueno, consultas, que pueda estar suscrito de una forma sencilla a lo que realmente luego me interese para cumplir con la aplicación que me han pedido, quiero hacer.
00:37:22
¿Vale?
00:37:33
Aquí, por ejemplo, si jugáis con los chavales y cada uno tiene un ordenador que mande información, pues a lo mejor, no sé si podéis dar nombres a los pupitres, o no sé, lo que se os ocurra.
00:37:34
¿Vale?
00:37:50
¿Dudas hasta aquí?
00:37:51
¿Estáis?
00:37:54
Vale.
00:37:58
Un segundo que reviso el chat.
00:37:59
Vale.
00:38:01
Juan Luis está con problemas del equipo.
00:38:04
Vale, si te puedo ayudar, me dices.
00:38:08
Vale.
00:38:19
Vale, los módulos de configuración los estamos viendo.
00:38:24
Jorge, una pregunta.
00:38:34
Como DIN S+, si yo, detrás del Más, imagínate que pongo un 5, por ejemplo, para la habitación que termine en 105, 115 y tal, ¿eso sirve?
00:38:36
Diría que no.
00:38:49
Si pones el Más, es solo Más hasta la siguiente barra.
00:38:51
Diría que no, pues lo probamos ahora mismo.
00:38:56
Por ejemplo, si yo voy a publicar en...
00:38:59
De hecho, aquí, fíjate que ya el propio nodo de MQTT ya se queja.
00:39:02
Vamos a darle a despegar.
00:39:10
Se está quejando.
00:39:11
Dice, este entorno de trabajo contiene algunos nodos que no están bien configurados.
00:39:12
Vale, entonces, le muestro que sí, pero aquí me dice que nada, que no hay.
00:39:17
Que no, que ese topic que le he especificado para suscripción no es adecuado.
00:39:21
Si le pongo al revés, me va a decir lo mismo.
00:39:26
Vale, lo mismo.
00:39:31
O sea, esto es cualquier elemento dentro de este nivel.
00:39:33
Lo que sí que podemos hacer es, por ejemplo, si hubiéramos creado primer apellido y segundo apellido, podemos hacer esto.
00:39:37
Todos los apellidos, con segundo apellido...
00:39:46
O sea, todos los alumnos, con segundo apellido, cualquier cosa.
00:39:48
Y primer apellido, cualquier cosa.
00:39:51
Y que se llamen Ángel.
00:39:52
Quiero estar suscrito a ellos.
00:39:55
Lo único que si hacemos esto.
00:39:56
Si yo le doy a aplicar.
00:39:58
Ahora, con los mensajes tal y como los tenéis generados, no va a aparecer nada por aquí.
00:40:00
Porque esto no es como un asterisco de cuando buscamos en un nombre de fichero, por ejemplo.
00:40:06
Sino que ahora requiere que haya dos subniveles.
00:40:12
No sé si me explico.
00:40:16
¿Podéis publicar en alguno de los dos Ángel?
00:40:18
Vale, no aparece nada. ¿Por qué?
00:40:24
Porque lo que está esperando este topic es que yo venga aquí...
00:40:26
Perdona, tengo un jaleo de ventanas.
00:40:30
Que yo venga aquí y publique en alumnos, barra algo, otro algo, Ángel.
00:40:33
Ahora, aquí ya sí que llega.
00:40:45
Porque requiere que haya dos niveles antes.
00:40:49
Básicamente, habrá veces que la jerarquía nos permite hacer una segmentación adecuada de los mensajes que quiero recibir.
00:40:53
Y otras veces que tengo que hacer un posprocesado de los mensajes que según llegan, poniendo un nodo de función entre medias.
00:40:59
Y aquí ya evalúo.
00:41:11
Por ejemplo, ya veo que Marcos y Ángel han probado ya poner la jerarquía correcta.
00:41:13
Pues eso, el protocolo MQTT permite unas cosas.
00:41:19
Para todo lo que no permita MQTT, nos toca ya hacer un switch o hacer una función que complementen al propio protocolo.
00:41:22
Vale.
00:41:31
Pues si os parece, vamos a practicar alguno de estos métodos.
00:41:46
Y por ahora vamos a empezar a hacer el primer ejercicio.
00:41:52
Esto podéis hacerlo una de dos o que cada uno se genere un nombre de hotel al azar.
00:41:56
Porque vamos a utilizar el mismo MQTT.
00:42:05
Creo que es mejor si todos utilizamos el centralizado, porque así yo puedo echar una mano en caso de que no funcione.
00:42:10
Entonces, que cada uno se invente el nombre de su hotel.
00:42:16
Vale.
00:42:21
Y se suscribe al que corresponda. Por ahora vamos a intentar hacer el primero.
00:42:22
Cualquier cosa me lo vais diciendo.
00:42:36
- Idioma/s:
- Autor/es:
- CTIF Madrid Este
- Subido por:
- Tic ctif madrideste
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 7
- Fecha:
- 4 de mayo de 2023 - 15:03
- Visibilidad:
- Clave
- Centro:
- C.TER.INN.Y FORM CTIF MADRID-ESTE
- Duración:
- 3h′ 09′ 41″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 1.11