Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

SESIÓN 06_03_2025_ IoT_ Tecnologías NFC, LPWAN Y COMUNICACIONES POR SATÉLITE

Ajuste de pantalla

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

Subido el 13 de marzo de 2025 por Mediateca ismie

9 visualizaciones

Descargar la transcripción

como siempre, pero de verdad voy a intentar 00:00:01
ir más despacio para ver si 00:00:05
al menos lo que me dé tiempo a contar 00:00:06
pues queda 00:00:08
sirve para algo, y aquí como queda grabado 00:00:09
pues mejor, mejor que en clase 00:00:12
intentaré no acelerarme, pero si me acelero 00:00:14
me echáis el rato 00:00:17
vale, entonces 00:00:18
primera cosa, os voy a compartir 00:00:20
hoy la clase, voy a estar trabajando 00:00:22
con la webcam 00:00:25
y con una segunda webcam 00:00:25
en la que os voy a enseñar lo que estoy haciendo 00:00:28
voy a compartir la segunda webcam 00:00:30
ahora, a ver 00:00:33
cámara 00:00:34
si lo he hecho antes y ahora no soy capaz 00:00:37
de hacerlo 00:00:45
hemos visto popular por un par de sitios 00:00:47
por un par de cámaras me parece 00:00:52
si, y ahora como lo he hecho 00:00:54
que ahora no soy capaz de hacerlo 00:00:56
antes la única diferencia es que estabas 00:00:57
compartiendo 00:01:00
tu escritorio 00:01:01
ahora ya está, gracias Jesús 00:01:03
ahora deberíais empezar a ver 00:01:06
una zona de mi escritorio 00:01:10
y mi mano por ahí moviéndose 00:01:13
voy a intentar 00:01:15
colocarlo un poco mejor 00:01:17
a ver si puedo 00:01:18
va, entonces 00:01:20
esto ocupa mucho 00:01:22
voy a ponerlo 00:01:25
vale, esto que veis aquí 00:01:25
es lo que vosotros estabais esperando 00:01:30
el paquete de las placas 00:01:33
que acaba de llegar, entonces lo tengo aquí 00:01:34
y lo voy a abrir delante de vosotros lo primero 00:01:36
para que os hagáis una idea de cómo llega esto, ¿vale? 00:01:38
Como veis, no tiene más identificación 00:01:41
y directamente lo abro. 00:01:43
Este lado. 00:01:49
Voy a intentar poner la cámara más alta 00:01:50
para que lo veáis todo. 00:01:51
Así va. 00:01:55
Ahí. 00:01:57
Aquí está la luz. 00:01:58
Está estorbando. 00:02:00
Ahora hay más o menos. 00:02:03
Vale. 00:02:05
Pues como veis, viene en su caja. 00:02:25
Como veis, la caja no es muy grande. 00:02:27
Esto es gracias a que elegí un tamaño de stencil reducido. 00:02:28
Recordad lo que os dije, si no tenéis cuidado y no ponéis que el tamaño de stencil, 00:02:33
o que le hice un tamaño reducido, os van a mandar el stencil estándar, 00:02:37
que es más grande que un A4, ¿vale? Es muy grande. 00:02:41
Entonces los costes de envío van a ser bastante altos. 00:02:43
Pues ahí veis cómo viene esto presentado. 00:02:52
Por un lado tenemos ya aquí un paquete de placas. 00:02:55
No sé si se verá algo. 00:02:58
Esta es justo la placa que diseñé con vosotros. 00:03:00
luego además pedí 00:03:03
porque pensé que os interesaría alguno 00:03:05
que lo vamos a ver hoy, la placa de MFC 00:03:07
que es esta de aquí 00:03:09
y luego también pedí las placas de los 00:03:10
INCIEN, que son estas otras 00:03:14
y en algún lugar tiene que estar 00:03:15
el stencil, que es aquí abajo 00:03:18
¿veis? no sé si se apreciará 00:03:19
ese es el stencil 00:03:24
de acero, esto es muy fino 00:03:25
voy a abrir para que lo veáis 00:03:27
y con esto es con lo que 00:03:30
vamos a aplicar el estaño en pasta 00:03:36
Esto es lo que os digo, que si no tienes la precaución de pedirlo de un tamaño reducido, te mandan el grande que es bastante más costoso. No más costoso por el stencil, el stencil te cuesta lo mismo, es más costoso por los gastos de envío. 00:03:38
Y voy a abrir la placa. En este caso no lo trae, pero es frecuente que vengan con papel. Bueno, sí, en este caso han metido una bolsa de silica gel, pero otras veces lo mandan con papel que atrapa la humedad entre placa y placa. 00:03:53
porque si no hay el peligro de que se oxiden 00:04:19
durante el transporte las placas 00:04:21
entonces bueno, voy a sacar una 00:04:23
para que la veáis 00:04:25
no sé si se verá ahí 00:04:26
que pusimos por un lado lo de ISMIE 00:04:33
esta es la placa 00:04:35
con el RAP3172 00:04:36
aquí tenemos el conector para 00:04:38
la SD-Card, el acelerómetro 00:04:40
sensor de puerta abierta 00:04:43
y por detrás, no sé si se alcanzarán 00:04:45
a ver, pues deberían estar vuestros nombres 00:04:47
espero no haber metido la pata 00:04:49
en ninguno, deberían estar por ahí 00:04:51
entonces esta será la placa que soldemos 00:04:52
en esa sesión que ya veremos 00:04:55
a ver cuando organizamos 00:04:57
bueno, pues esto por un lado 00:04:58
listo, como veis ha tardado 00:05:00
más o menos lo que esperábamos 00:05:05
creo que lo mandábamos a fabricar 00:05:07
el martes de la semana 00:05:09
pasada, pues ha tardado 00:05:11
nueve días 00:05:13
más o menos en llegar 00:05:15
en fabricarse y llegar 00:05:16
y eso que no lo pedí 00:05:19
por transporte urgente 00:05:20
si lo hubiéramos pedido por transporte urgente 00:05:22
igual hubiera llegado más tarde 00:05:24
porque lo hubieran parado en la aduana 00:05:26
y hubiera 00:05:28
tardado más, esto ya 00:05:30
he pagado los impuestos yo en origen 00:05:32
con lo cual en principio ya no tienen que 00:05:33
pararlo en aduana y por eso al final 00:05:36
yo creo que se acelera pidiéndolo 00:05:38
así a pedirlo como transporte 00:05:40
rápido, vale y ahora ya vuelvo a mi 00:05:42
cámara normal 00:05:44
y a ver 00:05:45
a volver a la cámara 00:05:47
vale 00:05:49
ahí está 00:05:56
Ahí, listo. Bien, y ahora, creo que estoy compartiendo mi pantalla, o no, no la estoy compartiendo, entonces la voy a compartir. Comparto la pantalla completa. Vale. 00:06:01
Lo primero, os he puesto en el aula virtual todos los temas, ¿vale? El de Matter, Bluetooth, NFC, NB-IoT y me falta subir el diseño de las placas. Lo subiré lo antes que pueda, ¿vale? 00:06:18
entonces hoy lo primero que quería hacer 00:06:34
era terminar con la parte de Matter 00:06:37
en Matter ahí en clase estuvimos viendo 00:06:38
la parte de Fred 00:06:41
y ahora me gustaría mostraros 00:06:43
la parte de Wifi 00:06:45
os recuerdo, voy a poner la presentación 00:06:46
aquí 00:06:49
os recuerdo breve introducción 00:06:52
a Matter 00:06:55
Matter ya os comenté que es un protocolo 00:06:56
de domótica 00:06:59
y nosotros hicimos aplicación práctica 00:07:01
en clase con el FR32MGS24 00:07:03
que este es un microcontrolador de Silicon Labs 00:07:07
está muy bien porque de momento Silicon Labs 00:07:10
es la única que tiene librerías 00:07:13
de Arduino para Matter 00:07:16
sobre Thread, sobre este protocolo mallado 00:07:19
que utilizaba la banda de 2.4 GHz 00:07:22
entonces recordad que os comenté que Matter 00:07:25
puede utilizar dos protocolos de transporte 00:07:27
dos redes de transporte, perdón, la red Thread o bien la red Wi-Fi. 00:07:30
Entonces, lo que voy a hacer ahora es un ejemplo práctico con el 32C6 00:07:36
para que veáis la parte de Wi-Fi, en clase ya vimos la parte de Thread. 00:07:40
Entonces, bueno, no voy a volver a entrar en todo lo que estuvimos viendo, 00:07:44
muy por encima, recordad que, a ver, que cerremos esto, 00:07:48
porque si no nos van a estar molestando todo el rato, aquí. 00:07:53
bien, recordad que es un protocolo 00:07:56
de aplicación 00:07:59
es solamente la capa de aplicación 00:08:00
no es un stack completo 00:08:03
y gracias a eso puede funcionar 00:08:05
sobre otros tipos de redes, concretamente 00:08:07
sobre la red Thread y sobre la red Wifi 00:08:09
adicionalmente también funciona 00:08:11
sobre la red Ethernet 00:08:13
pero sobre la red Bluetooth 00:08:14
solamente funciona de momento 00:08:16
para el comisionamiento 00:08:18
o el comisionado de dispositivos 00:08:20
no sirve para transmitir datos 00:08:22
Sino solamente para dar de alta los dispositivos en la red. Como os comenté, lo apoyan los principales fabricantes. Por así decirlo, es un sucesor de Zigbee y está apoyado por los principales fabricantes. Y muy importante, funciona sobre IPv6, la versión 6 del protocolo IP. 00:08:24
esto quiere decir que si lo usáis en casa 00:08:42
o en una instalación, la que sea 00:08:44
tenéis que aseguraros de que el router 00:08:46
que estéis utilizando, el router wifi 00:08:48
tenga activado IPv6 00:08:50
eso es una opción que la mayoría de los routers 00:08:52
es marcar una casilla y listo 00:08:54
de hecho la mayoría de los routers viene ya activada 00:08:56
así es que no hay que hacer nada 00:08:58
permite conectar un montón de dispositivos 00:08:59
16.000 y pico dispositivos 00:09:01
por la red 3 y hasta 00:09:03
65.000 dispositivos en total 00:09:06
teniendo en cuenta la red wifi y la red 3 00:09:07
y el problema que tiene 00:09:10
es que 00:09:12
pues eso, que está todavía un poco inmaduro 00:09:13
entonces van apareciendo 00:09:16
nuevas versiones cada poco tiempo 00:09:17
la última es de noviembre del año pasado 00:09:19
no tiene ni 5 meses 00:09:22
de antigüedad 00:09:24
os estuve hablando de la parte de CRED 00:09:26
que esto es importante, es una red mallada 00:09:28
pero que funciona 00:09:30
sobre la banda de 2.4 GHz 00:09:32
así que no tiene un alcance enorme 00:09:34
tiene corto alcance 00:09:36
del orden de unos 30 metros en interiores 00:09:38
y también 00:09:40
una baja tasa de transferencia 00:09:41
si tiene baja tasa de transferencia 00:09:43
y bajo alcance 00:09:46
¿qué es lo que tendrá de bueno? 00:09:47
pues lo que tendrá de bueno es el consumo 00:09:49
el consumo es muy bajo 00:09:51
y gracias a eso 00:09:52
la mayoría de los dispositivos Thread 00:09:53
pueden funcionar con baterías 00:09:55
no obstante hay dos tipos de dispositivos Thread 00:09:57
los dispositivos mínimo 00:09:59
que son los que os digo 00:10:01
que funcionan típicamente con baterías 00:10:02
y bien los dispositivos completos 00:10:04
los full 00:10:06
que estos son los que funcionan 00:10:07
como repetidores 00:10:08
los routers 00:10:09
eso es lo que hacen, es que tienen cada uno de ellos 00:10:10
una tabla de direcciones 00:10:12
y cuando escuchan un paquete 00:10:14
saben si lo tienen que reemitir 00:10:16
o no lo tienen que reemitir porque lo va a reemitir 00:10:18
otro router distinto 00:10:20
para conseguir de esta forma salto a salto 00:10:21
llegar hasta el dispositivo final 00:10:24
bueno, estuvimos viendo aquí un poco 00:10:26
como era la arquitectura, como era el modelo 00:10:28
de datos, esto es importante 00:10:30
el modelo de datos 00:10:31
es quizás el punto más fuerte que tiene 00:10:33
Matter, y es que el 00:10:36
estándar declara, define 00:10:37
como tiene que ser cada tipo de dispositivo 00:10:40
como tiene que ser una lavadora mater 00:10:42
como tiene que ser un cerrojo mater 00:10:44
como tiene que ser un termostato mater 00:10:46
eso está perfectamente definido en el estándar 00:10:48
¿y cómo lo han hecho? 00:10:50
pues lo han hecho definiendo en cada tipo de dispositivo 00:10:52
por ejemplo, el ejemplo que tenemos aquí 00:10:54
de un cerrojo de puerta 00:10:56
va a tener un nodo 00:10:58
entonces, ese nodo 00:11:00
va a tener una sola dirección de red 00:11:02
en la red thread 00:11:05
o en la red wifi 00:11:07
en la que sea 00:11:08
Y dentro de ese nodo podemos tener uno o más Endpoints. El Endpoint 0, ese es obligatorio. Ese es el Endpoint que contiene la información referente a la propia red. Y en el Endpoint 1 o en los siguientes es en los que se almacena un conjunto de características de ese dispositivo. 00:11:09
estas características se definen como clusters 00:11:28
o se llaman clusters 00:11:32
entonces lo que tenemos aquí es que por ejemplo 00:11:33
tenemos un cluster que tiene una serie de atributos 00:11:36
¿qué atributos? pues el tipo de cerradura por ejemplo 00:11:40
el estado en el que se encuentra, si está abierta o cerrada 00:11:42
una serie de comandos, pues por ejemplo abrir la cerradura 00:11:45
cerrar la cerradura, cambiar la contraseña de la cerradura 00:11:48
y también una serie de eventos, pues por ejemplo lanzar una alerta 00:11:51
una alarma si se abre la puerta 00:11:55
Entonces el concepto es este, modelo de datos que está compuesto por tipos de dispositivos. Cada tipo de dispositivos tiene un nodo que es una funcionalidad completa y que tiene una dirección única de red. Cada uno de estos nodos puede tener uno o más endpoints. Típicamente tendrá más de uno, el cero que es el obligatorio y luego endpoints para cada funcionalidad. 00:11:58
Esas funcionalidades se definen mediante clusters y en los clusters lo que tenemos son los atributos, los comandos y los eventos, ¿vale? Bien, entonces aquí os puse un ejemplo para que vierais, por ejemplo, cómo era un cargador de vehículo eléctrico, todo esto está en la especificación de Matter, que es gratuita, ¿vale? Se puede acceder a ella gratuitamente, pero no es de acceso libre, hay que registrarse para que te la envíen. 00:12:22
De todas formas, si buscáis un poco por Google, seguro que la encontráis también. 00:12:46
¿Cómo es la topología de una red Matter? 00:12:51
Bueno, pues lo principal en la red Matter es el controlador. 00:12:53
El controlador va a ser un dispositivo que típicamente va a ser tu teléfono móvil o un altavoz inteligente 00:12:57
en el que tú vas a dar de alta a los demás nodos. 00:13:02
Esos nodos pueden ser nodos de la red Wi-Fi, con lo cual no vas a tener ningún problema 00:13:06
porque esos nodos directamente se van a conectar al router Wi-Fi de tu domicilio 00:13:10
o bien pueden ser nodos Thread, estos que veis aquí a la derecha. 00:13:15
Estos nodos Thread no pueden conectarse directamente al router Wi-Fi 00:13:19
porque el router Wi-Fi no tiene modem de red Thread. 00:13:23
Entonces lo que vas a necesitar es un dispositivo que actúe como router de borde Thread. 00:13:27
Es decir, un dispositivo que tenga dos interfaces. 00:13:32
Una interfaz Wi-Fi o también podría ser Ethernet, ¿vale? 00:13:36
Y por otro lado, una interfaz Thread, que es la que van a aprovechar todos estos dispositivos 00:13:39
para conformar una única red Matter 00:13:44
en la que algunos de sus dispositivos 00:13:47
se conectan por Wi-Fi 00:13:49
y otros se conectan por Thread. 00:13:50
Estuve comentando que este router de borde 00:13:53
lo puedes comprar directamente, 00:13:55
puede ser un Amazon Echo 00:13:57
como el que llevé yo a clase, 00:13:59
o bien te lo puedes montar tú mismo. 00:14:00
Gracias a Google, 00:14:02
que tiene una versión gratuita de Thread 00:14:03
que se llama OpenThread 00:14:07
y dentro de esa versión 00:14:09
tienen el border router 00:14:10
que te lo puedes instalar 00:14:12
en una Raspberry Pi, por ejemplo, 00:14:12
O en un par de SP32, también te lo puedes instalar si te gusta más el camino do-it-yourself, ¿vale? 00:14:14
Conceptos interesantes que vimos en Matter. 00:14:21
Bueno, pues el primero, ¿qué es la fábrica? 00:14:23
La fábrica es un conjunto de nodos, pero lo interesante es que un mismo nodo puede formar parte de dos fábricas distintas, ¿vale? 00:14:25
Es decir, un mismo dispositivo yo lo puedo comisionar en dos controladores diferentes. 00:14:31
Y de esta forma, ese dispositivo lo voy a poder controlar con dos controladores distintos. 00:14:37
Luego era el controlador, que era esto que os decía, típicamente el teléfono móvil, 00:14:42
desde el que vamos a añadir los dispositivos y los vamos a configurar. 00:14:46
El binding, que es la funcionalidad más deseada, pero que apenas se puede utilizar hoy por hoy, 00:14:49
el binding era que yo directamente vinculo dos dispositivos, por ejemplo, 00:14:55
yo vinculo este termostato que tengo aquí a las válvulas de mis radiadores 00:15:00
y los vinculo directamente de tal forma que se pueden comunicar entre sí, 00:15:05
incluso si el controlador está caído 00:15:10
o sea, incluso si no hay controlador 00:15:12
pero eso de momento, pues no es posible 00:15:14
o es posible solamente con dispositivos 00:15:16
del mismo fabricante 00:15:19
y eso pues claro, es precisamente lo contrario 00:15:20
de lo que pretende Matter 00:15:22
que es la máxima compatibilidad posible 00:15:24
luego 00:15:26
otro concepto interesante es el de Bridge 00:15:27
Bridge que es, pues bueno, en esta 00:15:30
diapositiva que os enseñaba antes 00:15:32
tenemos la red Matter, que es la de abajo 00:15:34
la que está compuesta por dispositivos Wi-Fi 00:15:36
y dispositivos Thread 00:15:38
pero podría darse el caso de que tuviéramos 00:15:39
como veis aquí arriba a la derecha, otro tipo 00:15:42
de dispositivos que usan otros 00:15:44
protocolos, pues ZipBee 00:15:45
Z-Wave, LoRaWAN 00:15:47
lo que sea, Bluetooth 00:15:49
esos dispositivos se pueden unir 00:15:51
a la red Matter también a través 00:15:54
de un bridge, un puente 00:15:55
entonces, ¿ese puente 00:15:57
normalmente dónde está? pues puede estar 00:15:59
en el propio controlador, si tenéis 00:16:01
un altavoz inteligente, o a lo mejor es un 00:16:03
puente que te tienes que crear tú mismo 00:16:05
de nuevo con un arrastro de repeat o algo parecido 00:16:07
y luego el último concepto era el de comisionar 00:16:10
el de dar react a un dispositivo, bueno estuvimos viendo la parte 00:16:13
de la seguridad que tenía dos tipos de sesiones, la sesión pase 00:16:16
y la sesión case 00:16:19
la sesión pase es esta que veis aquí arriba 00:16:21
que esa es la fase inicial cuando se está 00:16:25
descubriendo al dispositivo y en esta primera 00:16:28
parte del comisionado lo que tenemos 00:16:31
es el intercambio de las credenciales 00:16:34
Y luego ya pasamos a la fase case, que ahí es donde se le proporciona los certificados de seguridad, que esos certificados son los que se van a usar para el resto de las comunicaciones. Una vez que el dispositivo está dado de alta, con el certificado NOC, el certificado operacional, se encriptan todas las comunicaciones. 00:16:37
esto es interesante en Matter 00:16:56
porque un dispositivo ni siquiera 00:16:58
puede unirse a la red Matter como no tenga las 00:17:01
credenciales de seguridad, es decir, no es como 00:17:02
otros tipos de redes a las que un dispositivo 00:17:04
se puede unir libremente 00:17:06
pero luego una vez unido es cuando 00:17:08
se comprueba si tiene las credenciales 00:17:10
o no, aquí no funciona así 00:17:13
aquí directamente para siquiera unirse 00:17:15
ya las credenciales tienen 00:17:17
que ser correctas, entonces bueno estuvimos 00:17:18
hablando de esta parte de cómo 00:17:20
funcionaba el comisionado que 00:17:22
simplemente dar de alta 00:17:24
al dispositivo, ya os comenté 00:17:26
que la forma más habitual de darlo 00:17:29
de alta es escaneando un código QR 00:17:30
que te presenta el propio dispositivo 00:17:32
o bien 00:17:35
en otros se puede hacer también 00:17:37
mediante NFC, directamente acercas 00:17:38
el móvil al dispositivo, lo reconoce 00:17:40
y lo da de alta, distintos 00:17:43
border routers de Thread que tenemos 00:17:44
pues os puse aquí los de Amazon 00:17:46
pues por ejemplo si tenéis un 00:17:48
un Echo 00:17:51
normalito, que es el más económico 00:17:52
pues si es a partir de la cuarta generación 00:17:54
sí que podéis usar FRED directamente 00:17:57
el que yo os enseñé el otro día 00:17:58
que lo tengo aquí hoy también 00:18:01
es este, el Ecoswap 8 00:18:02
de tercera generación 00:18:04
y esto nos lo enseñé 00:18:06
que es donde están las 00:18:08
claves de la red 00:18:10
esto lo puedes ver si tú vas a tu cuenta 00:18:12
de Amazon 00:18:14
en gestionar contenidos 00:18:17
y dispositivos 00:18:19
vas a ver que hay una sección que se llama preferencias 00:18:20
ya tienes las contraseñas 00:18:22
de tu red wifi 00:18:25
y también las contraseñas 00:18:26
de tu red 3 00:18:28
si tienes más de una red, podrían aparecer aquí abajo 00:18:30
entonces esto es interesante 00:18:33
porque tú puedes borrar esto 00:18:34
yo podría borrar de Amazon 00:18:36
estas contraseñas 00:18:39
y esto sería un problema, porque si quiero 00:18:40
dar de alta dispositivos nuevos 00:18:42
pues Amazon, si estoy usando 00:18:44
el Echo, Amazon no va a saber las contraseñas 00:18:46
entonces no les va a permitir 00:18:48
darse de alta, es decir, tendría que iniciar 00:18:50
una red nueva 00:18:52
entonces no conviene borrarlo 00:18:54
bien, y en clase ya estuvimos trabajando 00:18:56
con el MG24 00:18:58
que era este que os decía 00:19:00
de Silicon Labs, que este está muy bien 00:19:01
porque me permite utilizar 00:19:04
la red Thread 00:19:05
y hoy el que quería enseñaros es este otro 00:19:07
el SP32 00:19:11
entonces en este caso lo que tenemos 00:19:14
es dos núcleos 00:19:16
de microcontrolador 00:19:18
RISC-V 00:19:21
Sí, perdonad. Tenemos dos núcleos de microcontrolador RISC-V. Ojo, ya no es ARM. Esa otra arquitectura que os dije que por los problemas que estaba habiendo de seguridad y de falta de confianza en los fabricantes de los microcontroladores, estaba poco a poco instalándose una arquitectura nueva de Open Hardware, de código abierto. 00:19:22
de tal forma que tú te puedes crear 00:19:48
tus propios microcontroladores con este código 00:19:51
de instrucciones 00:19:53
ESP Expressive es una de las primeras 00:19:53
que se ha unido a esta corriente 00:19:57
y tiene este microcontrolador 00:19:58
el ESP3216 que trae 00:20:00
dos núcleos RISC-V 00:20:03
y esto es muy interesante porque mientras que 00:20:04
uno de los núcleos funciona a toda velocidad 00:20:06
a 160 MHz 00:20:09
el otro núcleo solo funciona a 20 MHz 00:20:10
y ya sé que vosotros sabéis 00:20:13
por qué es esto, vosotros sabéis que esto es 00:20:14
porque si voy más despacio consumo menos 00:20:17
entonces lo que ocurre en este microcontrolador 00:20:20
es que tiene un núcleo que es el que está funcionando 00:20:22
cuando lo ponemos en modo de sueño profundo 00:20:25
el de 20 MHz y cuando lo despertamos 00:20:27
arranca el núcleo principal de 160 MHz 00:20:30
para hacer las operaciones lo más rápido posible 00:20:33
y poderse ir a dormir cuanto antes 00:20:35
y así consigue consumir lo menos posible 00:20:37
son microcontroladores muy potentes 00:20:40
tanto el que os enseñé anteriormente 00:20:42
este pues veis que tienen dos 00:20:44
UAR, una I2C 00:20:46
dos SPIs, un montón de puertos analógicos 00:20:48
¿vale? pues en el SP32 pasa 00:20:50
lo mismo, tiene una UAR, una UAR 00:20:52
de bajo consumo, una I2C 00:20:54
una I2C de bajo consumo, una 00:20:56
SPI, 11 puertos 00:20:58
PWM de salida pseudoanalógica 00:21:00
7 entradas analógicas 00:21:03
¿vale? una entrada específica 00:21:05
para tarjetas SD card 00:21:07
y el consumo como veis cuando está dormido 00:21:08
es bajísimo, bueno un detalle 00:21:10
importante es que este PIN 00:21:12
tiene, perdón, este microcontrolador tiene 00:21:14
un LED, pero el LED 00:21:16
está colocado en lógica inversa 00:21:17
es decir, está conectado al pin 15 00:21:20
si tú pones el pin 15 00:21:22
en alto, el LED 00:21:24
se apaga, porque está instalado de esta forma 00:21:26
está entre 3 voltios y el 00:21:28
GPIO 15, entonces si yo 00:21:30
el pin 15 lo pongo en alto, el LED se apaga 00:21:32
sin embargo, si el pin 15 00:21:34
lo pongo en bajo, el LED se enciende 00:21:36
¿vale? funciona así, bueno, pues 00:21:38
esto hay que tenerlo en cuenta 00:21:40
y nada, simplemente os voy a enseñar 00:21:41
un ejemplo 00:21:44
¿Problema que tiene? Pues que de momento no existen librerías 00:21:45
Thread para el SP32C6 en Arduino 00:21:50
no es que el SP32C6 no pueda usar 00:21:53
Thread, puede usar Thread perfectamente 00:21:56
porque lleva un modem en 2.4 GHz 00:21:59
entonces perfectamente puede usar Wi-Fi, puede usar Bluetooth 00:22:02
o puede usar Thread, el problema es que las librerías de Thread 00:22:05
todavía no están disponibles en Arduino 00:22:08
entonces no tenemos más remedio que utilizar 00:22:10
wifi 00:22:13
entonces voy a coger un nodo y lo voy a conectar 00:22:13
los nodos son estos 00:22:17
que ya os enseñé 00:22:20
en clase, que venían en estas cajitas 00:22:22
abro uno 00:22:24
y simplemente 00:22:26
lo voy a conectar a mi ordenador 00:22:32
vale, no lo voy a conectar de momento 00:22:35
porque quiero enseñaros 00:22:37
una cosa 00:22:38
vamos a conectarlo aquí al puerto 00:22:39
si puertos libres ya 00:22:42
esta es la cámara 00:22:47
entonces, tengo aquí 00:22:49
abierto Arduino 00:22:55
ya, a ver, aquí 00:22:58
entonces, recordad lo primero, que para 00:22:59
que estas placas funcionen 00:23:03
tienes que tener instalado 00:23:05
las placas del SP32 00:23:07
que eso se hace aquí, ¿vale? 00:23:09
pero aquí hay un detalle que os quería 00:23:11
llamar la atención 00:23:13
fijaos, si tú buscas aquí SP32 00:23:15
te salen las placas 00:23:17
SP32 de Expressive 00:23:20
que son las que nosotros queremos instalar 00:23:22
¿vale? eso aparece así 00:23:24
de forma predeterminada 00:23:26
pero si tú añades aquí 00:23:27
a archivo preferencias 00:23:30
este archivo 00:23:32
esta dirección ¿vale? que es el URL donde están 00:23:38
esas placas, vas a tener acceso 00:23:40
a versiones más actualizadas que las 00:23:43
que tiene Arduino ¿vale? lo que quiero 00:23:44
decir con esto, si tú no pones este detalle 00:23:46
aquí, las versiones 00:23:48
que te van a aparecer aquí 00:23:50
son buenas, pero no van a ser 00:23:52
las últimas disponibles, sin embargo 00:23:54
si pones ahí esa dirección 00:23:56
entonces vas a tener las últimas disponibles 00:23:58
¿de dónde sacas esa dirección? 00:24:01
pues simplemente buscando en internet 00:24:03
pues yo qué sé, ¿dónde tengo yo el navegador web? 00:24:04
por aquí 00:24:06
pues si yo quiero ver las de Silicon Labs 00:24:06
pues pongo Silicon Labs 00:24:10
Arduino 00:24:12
Github 00:24:13
y directamente ya me sale ahí el core 00:24:15
para Silicon Labs 00:24:20
y por aquí en algún sitio 00:24:21
¿veis? aquí inmediatamente 00:24:24
te dice cuál es el archivo 00:24:26
cuál es la dirección que tienes que poner ahí en Arduino 00:24:28
para tener acceso a las últimas 00:24:30
versiones, bien, pues así 00:24:32
como esto en el caso de 00:24:35
Expressive, veis, yo tendría que 00:24:36
actualizarlas, pero no lo voy a hacer porque ya sabéis 00:24:38
que tarda un montón, pues 00:24:40
lo que os estaba diciendo, así como en el caso de las 00:24:42
SP32 no marca la diferencia 00:24:44
no marca mucho la diferencia 00:24:46
porque las de SP32 suelen estar bastante 00:24:48
actualizadas, en las de Expressive 00:24:50
sí, en las de Expressive, como no pongáis 00:24:52
la última versión, no 00:24:54
va a funcionar bien los ejemplos, vale 00:24:56
Entonces es importante que sepáis eso, que para que os aparezca aquí la posibilidad de instalar las últimas versiones, tenéis que ir a archivo preferencias y en la sección de URLs adicionales tenéis que añadir, veis, por ejemplo, tengo yo aquí la de Silicon Labs y eso es lo que me da acceso a las últimas versiones disponibles. 00:24:58
vale, una vez hecho esto 00:25:15
ahora ya sí, voy a ir al administrador 00:25:17
de dispositivos 00:25:20
para que ahora cuando yo conecte 00:25:21
este SP32, sepa 00:25:25
en qué puerto se ha conectado 00:25:28
veis que ahora mismo en mi ordenador 00:25:30
no tengo ningún puerto 00:25:32
entonces no hay forma de equivocarse 00:25:33
voy a conectarlo 00:25:36
creo que está fallando 00:25:37
la cámara, no sé si me estáis viendo 00:25:50
¿me estáis viendo? 00:25:52
ahora no 00:25:55
ahora no 00:25:56
Y mi pantalla tampoco, ¿no? 00:25:58
Bueno. 00:26:01
No. 00:26:02
Bueno. 00:26:03
Sí, ha visto los archivos que tienes ahí, de dispositivos. 00:26:04
Sí, sí. 00:26:07
Vale. 00:26:07
Es que, perdonadme, pero hoy tengo aquí un montón de cosas conectadas al ordenador 00:26:08
y se ve que cuando conecto algunas me resetea... 00:26:11
Bueno, esto está como loco ahí reseteando el... 00:26:15
A ver. 00:26:18
Ahí. 00:26:21
¿Vale? 00:26:22
Ya. 00:26:22
Ya se está quieto. 00:26:23
Vale. 00:26:25
Entonces, ¿veis que me ha creado aquí un puerto nuevo, que es el TORN 17? 00:26:25
¿Vale? 00:26:29
Entonces yo ya puedo ir directamente a Arduino y decirle que quiero utilizar una placa de la familia SP32 00:26:29
y concretamente en este caso es una Xiao SP32C6, esta de aquí, y que la tengo instalada en el puerto PON17. 00:26:39
haciendo esto 00:27:01
ya podéis directamente a archivo 00:27:04
ejemplos 00:27:07
y vamos a ver que tenemos ahí 00:27:08
una serie de ejemplos 00:27:10
para la placa SIAO SP32C6 00:27:12
y concretamente 00:27:15
tengo una colección de ejemplos para Matter 00:27:16
entonces veis que ahí puedo 00:27:18
coger y 00:27:20
crearme una luz de colores 00:27:22
una prueba 00:27:25
un sensor de humedad 00:27:26
un ventilador, veis que tenemos 00:27:28
un montón de opciones 00:27:30
voy a coger una sencillita que es la de crear 00:27:32
una luz como el otro día 00:27:34
y vais a ver que la diferencia aquí 00:27:36
es que las credenciales 00:27:40
de la red wifi se las tenemos que dar nosotros 00:27:42
directamente 00:27:44
entonces vamos a ver si arranca el ejemplo 00:27:45
pues este sería el archivo 00:27:51
veis que coge la librería mater 00:27:57
la librería wifi 00:28:00
yo tengo que poner aquí las credenciales 00:28:01
de la red 00:28:03
wifi de mi casa 00:28:05
en este caso 00:28:07
¿vale? 00:28:07
y bueno, luego aquí hace una serie 00:28:13
define un pin 00:28:14
también tiene un botón 00:28:16
que se puede, tiene un botón 00:28:18
un tiempo de 00:28:20
antirebote y demás 00:28:21
pero bueno, el código básicamente lo que hace es 00:28:23
definir el 00:28:26
LED como salida, recordad 00:28:28
que el LED está en lógica inversa 00:28:30
¿vale? y luego empieza aquí 00:28:32
toda la parte del comisionado 00:28:34
Entonces yo directamente este código ya lo voy a cargar, le voy a dar ya porque como sabéis esto tarda un poquito para que se vaya cargando. 00:28:36
Y entre tanto voy a ir preparando ya mi teléfono móvil para poder con el controlador dar de alta este dispositivo. 00:28:44
Entonces voy a cambiar otra vez de webcam para que podáis ver lo que hago en el móvil. 00:28:53
Ahora creo que deberíais estar viendo más o menos mi teléfono móvil. 00:29:26
Entonces, aquí lo que hago es irme a la aplicación de Amazon, Alexa. 00:29:29
Tengo que procurar no decir Alexa muy alto porque tengo Alexa aquí al lado, ¿vale? 00:29:38
Entonces, lo voy a decir en bajita. 00:29:41
Ahí tengo, no sé si veis algo, la verdad, espero que se vea algo. 00:29:45
Aquí abajo en dispositivos, ¿vale? 00:29:49
Tengo ya los dispositivos que creamos el otro día en clase, que era la primera luz, ¿vale? 00:29:54
Entonces, ahora yo le tendría que decir que quiero crear un dispositivo nuevo. Le digo aquí que quiero pulsar añadir un dispositivo y me pregunta qué tipo de dispositivo es. Pues puede ser una televisión, un enchufe, lo que sea, una lavadora. Yo pulso la última opción de todas, que es otro. Y ahí me salen las tecnologías disponibles. 00:30:01
no sé si se ve, pero las energías disponibles 00:30:22
veis que ya en primer lugar sale precisamente 00:30:24
en Matter, y luego pues otras 00:30:26
como Bluetooth, IP, Wi-Fi, Z-Wave 00:30:28
¿vale? pulso directamente 00:30:30
en Matter 00:30:32
y ahí me dice, ¿tu dispositivo tiene 00:30:33
el logotipo Matter? le digo, sí, obviamente 00:30:36
no lo tiene, ¿vale? porque lo estamos fabricando 00:30:38
nosotros mismos, pero bueno, le decimos 00:30:40
que sí, ¿está encendido 00:30:42
el dispositivo? le digo que sí 00:30:44
y entonces él me dice, oye 00:30:46
escanea el código QR, bueno, pues ahora 00:30:48
vuelvo, a ver si ha terminado ya Arduino de compilar 00:30:50
no ha terminado de compilar todavía 00:30:52
no sé si esperar un poco o seguir avanzando 00:31:06
porque hoy encima con todo lo que tengo aquí conectado me temo que esto va a ser lento 00:31:11
voy a esperar unos segundillos por si tengo la suerte 00:31:16
de que acaba pronto y os lo puedo enseñar y si no paso a otra 00:31:20
cosa y luego retorno a esta, vale voy a pasar a otra cosa 00:31:24
porque no quiero perder tiempo. 00:31:47
Lo dejo aquí compilando 00:31:49
y ahora voy a pasar a NCC. 00:31:50
Entonces, os voy a contar un poco 00:31:53
la teoría, repaso de teoría, 00:31:54
que ya la vimos en su momento, 00:31:56
una de las primeras sesiones, 00:31:58
creo que fue en la segunda. 00:31:59
Hago repaso de teoría 00:32:01
y hacemos unas prácticas con NCC. 00:32:02
Mientras tanto, a ver si acaba esto de compilar 00:32:05
para que podamos terminar. 00:32:07
Mira, ahora ha avanzado un poco. 00:32:08
Pero vamos a NCC. 00:32:10
estas son las comunicaciones de corto alcance 00:32:12
entonces son comunicaciones 00:32:23
que funcionan de una forma muy curiosa 00:32:27
porque son comunicaciones uno a uno 00:32:30
en la que uno de los dispositivos puede ser pasivo 00:32:32
eso quiere decir que no tiene fuente de alimentación propia 00:32:36
sino que tiene la alimentación del otro dispositivo 00:32:39
que forzosamente tiene que ser un dispositivo activo, ¿vale? 00:32:42
¿Cómo funciona esto? 00:32:46
Pues bueno, lo podéis ver aquí en el primer gráfico. 00:32:47
Aquí lo que tendríamos sería un lector y una tarjeta NFC. 00:32:50
Entonces lo que ocurre es que el campo magnético lo genera el lector 00:32:54
y ese campo magnético, la tarjeta extrae energía suficiente para poderse alimentar a sí misma, ¿vale? 00:32:58
Y a su vez, ¿cómo transmite los datos al lector? 00:33:08
Pues esto es muy curioso, porque lo que hace es cambiar su impedancia, ¿vale? Puede ponerse una impedancia alta o una impedancia baja. ¿Eso qué quiere decir? Eso quiere decir que al lector le va a costar más corriente o menos corriente mantener este campo magnético. 00:33:11
entonces midiendo el lector 00:33:27
cuánta corriente está consumiendo 00:33:29
en mantener el campo magnético 00:33:32
sabe si lo que le quiere transmitir 00:33:34
la tarjeta son ceros o son unos 00:33:36
eso es lo que se llama 00:33:38
modulación por carga 00:33:40
por carga o por impedancia 00:33:41
bien, pues 00:33:43
esta tecnología utiliza 00:33:45
la banda de 13,56 MHz 00:33:48
que también es una banda 00:33:50
ISM, industrial científica o médica 00:33:51
es decir, que la podemos usar 00:33:54
sin tener, no estáis viendo la presentación 00:33:55
¿verdad? 00:33:58
¿o sí? 00:34:00
Sí, sí 00:34:01
Vale, entonces 00:34:02
esta banda nosotros la podemos utilizar 00:34:06
sin pagar ninguna licencia 00:34:07
entonces aquí hay 00:34:10
bastante parte de nomenclatura 00:34:12
en el estándar NFC es una tecnología 00:34:13
ya bastante antigua y ha ido 00:34:16
pasando por un montón de evoluciones 00:34:18
que provocan que se 00:34:19
arrastre en términos muy distintos 00:34:21
Entonces, una misma cosa se puede llamar de muchas formas. Por ejemplo, un escáner y un lector son lo mismo, pero también se llama PCD, que es el dispositivo de acoplamiento próximo. Y sin embargo, una etiqueta o una tarjeta también se puede llamar un PIC, que es la tarjeta con circuito integrado de proximidad, o incluso un BIC, que es lo mismo pero de vecindad. 00:34:23
entonces lo que estáis viendo aquí abajo a la derecha 00:34:46
es cómo 00:34:48
funciona la comunicación 00:34:50
entre el lector 00:34:52
y la tarjeta, entonces el lector 00:34:53
tiene un campo 00:34:56
para generar potencia 00:34:58
para generar un campo magnético 00:35:00
perdón, y luego tiene otro 00:35:02
en el que lee cuánto 00:35:04
está cargando 00:35:07
la tarjeta 00:35:08
o cuánto está cargando, si está cargando 00:35:10
mucho, si está en impedancia alta o está en impedancia 00:35:12
baja, ¿vale? Así funciona esto. Entonces, los conceptos. 00:35:14
Tap, tap, eso quiere decir acercar el lector a la tarjeta. 00:35:19
Hacer tap es tocar, de hecho, es tocar la 00:35:23
tarjeta con el lector. El alcance típico es un par de 00:35:26
centímetros. El que garantiza el estándar, 5 milímetros, ¿vale? 00:35:30
El estándar te dice que sí o sí, a 5 milímetros va a funcionar. 00:35:34
Tasas de transferencia, muy variadas, depende del modelo que estemos usando, ¿vale? 00:35:39
Desde tasas de transferencia muy bajas, 100 kilobits por segundo, a bastante altas, como veis aquí, 1,7 megabits por segundo. 00:35:42
Lo más interesante que tiene probablemente el NFC es su tiempo de conexión. 00:35:52
Conecta casi inmediatamente, incluso más rápido que un mando de infrarrojos. 00:35:58
El mando de vuestro televisor, simplemente para establecer la conexión, para que se reconozca la portadora y todo lo demás, consume medio segundo. 00:36:01
una de Bluetooth consume mucho más 00:36:10
un segundo típicamente o incluso más 00:36:13
sin embargo lo bueno que tiene NFC 00:36:15
es que hace conexión prácticamente 00:36:17
de forma inmediata, entonces por ejemplo 00:36:18
cuando usáis vuestro abono de transporte 00:36:20
en el autobús o en el metro, sabéis que es 00:36:22
simplemente pasar la tarjeta y la 00:36:24
lee inmediatamente 00:36:26
bien, esto es en modo pasivo 00:36:28
si nosotros utilizamos modo activo 00:36:31
es decir, los dos dispositivos 00:36:33
con alimentación, entonces 00:36:34
el alcance puede ser un poco mayor 00:36:37
puede llegar hasta un metro 00:36:38
¿qué formatos tienen las tarjetas? 00:36:40
pues tienen muchos formatos 00:36:43
los vais a ver pues esto 00:36:45
en muñequeras, en pegatinas, en llaveros 00:36:46
para pegarlos en los libros de las bibliotecas 00:36:49
que los habréis visto seguramente 00:36:51
en las mascotas y en el ganado se lo inyectan 00:36:52
esto es un poco fastidioso 00:36:55
porque hay veces que se va desplazando 00:36:57
el chip y no está donde lo inyectó 00:36:59
sino que se va moviendo por el animal 00:37:01
y acaba en un sitio completamente distinto 00:37:03
¿vale? 00:37:05
y luego hay que tener en cuenta que hay 00:37:06
varias tecnologías de NFC 00:37:09
hay una que es la primera 00:37:11
que surgió, que es el NFC 00:37:13
de baja frecuencia 00:37:14
y ese normalmente funciona en la banda 00:37:16
de 125 kHz 00:37:18
eso es lo que 00:37:20
normalmente llamamos RFID 00:37:21
esto es una tecnología de 00:37:24
1983 y precisamente 00:37:26
fue esta tecnología la que dio lugar al nombre 00:37:28
de Internet de las Cosas, se viene utilizando 00:37:30
justo desde eso, desde 1983 00:37:32
el problema que 00:37:34
tiene 00:37:36
el RFID 00:37:36
es que no permite transmitir 00:37:39
datos, solo sirve para identificación 00:37:41
para identificarte 00:37:44
soy yo, pero no es fácil 00:37:45
transmitir datos con RFID 00:37:47
por eso surge después 00:37:49
el NFC, principalmente lo pone 00:37:51
en marcha Sony, Nokia y Philips 00:37:53
que esto es en 2004 00:37:55
y ahí lo que tenemos ya son 00:37:56
etiquetas que vais a ver que las antenas 00:37:59
tienen muchas menos vueltas 00:38:01
en RFID vais a ver que hay un montón de vueltas 00:38:03
en la antena, porque es de baja frecuencia 00:38:05
sin embargo, en las de alta frecuencia 00:38:07
que son las que van a 13,56 MHz 00:38:09
lo que vais a ver ahí es que 00:38:11
el número de vueltas es muy pequeñito, ¿vale? 00:38:13
algunas tienen 4 o 5 vueltas, 8 vueltas 00:38:15
es lo típico, estas son 00:38:17
las tecnologías de 00:38:19
corto alcance más conocidas 00:38:21
pero hay otra, que esta es menos conocida 00:38:23
que se llama 00:38:25
NFC Rain 00:38:27
de lluvia, ¿vale? y esa es de alto 00:38:29
alcance, de ultra alta 00:38:31
frecuencia, y las antenas son así 00:38:33
de raras, son esto que estáis viendo aquí 00:38:35
¿vale? ¿qué tiene de interesante 00:38:37
esta tecnología? pues lo que estáis 00:38:39
viendo aquí abajo, que tiene un alcance 00:38:41
de hasta 10 metros 00:38:43
¿vale? mientras que las otras 00:38:44
tienen un alcance 00:38:47
del orden de un metro 00:38:48
como muchos, si es en modo activo 00:38:51
o incluso de menos si es en modo pasivo 00:38:53
pues estas otras de aquí abajo 00:38:55
están muy bien para logística 00:38:57
porque tú puedes tener un almacén 00:38:59
y puedes estar leyendo las etiquetas 00:39:00
de todo lo que hay en ese almacén 00:39:03
porque tiene un alcance de 10 metros 00:39:04
y si algo sale o entra del almacén 00:39:06
pues puedes actualizar directamente 00:39:09
el inventario 00:39:11
hay dos tecnologías principales 00:39:12
de NFC 00:39:15
la de NXP y la de Sony 00:39:17
la de NXP 00:39:19
se llama MyFair 00:39:21
y la de Sony se llama Felica 00:39:22
entonces ¿qué ocurre? pues claro que cada fabricante 00:39:24
como siempre pues iba por su lado 00:39:27
desarrollando su propia tecnología 00:39:29
y esto fragmentaba el mercado 00:39:31
y para evitar eso 00:39:33
es para lo que surge el foro 00:39:34
NFC, que pretende 00:39:36
unificar estas dos tecnologías 00:39:38
¿vale? 00:39:41
la de ultra 00:39:41
esa de 10 metros 00:39:44
¿esa es en pasivo o en activo? 00:39:46
no, no, en pasivo 00:39:49
¿en pasivo? 00:39:50
¿tiene activo o no? 00:39:51
sí, el lector siempre 00:39:57
uno de los dos tiene que ser activo siempre 00:39:59
que en este caso es el lector 00:40:01
ya, pero digo la otra 00:40:02
ah, la otra que sí tiene modo activo 00:40:04
que yo sepa, no, yo solamente las he visto 00:40:06
en modo pasivo, porque estas se venden como pegatinas 00:40:08
además se venden como churros 00:40:10
se compran en bobinas, tienen una bobina entera 00:40:12
de pegatinas de estas 00:40:14
y son muy baratas y ni tiene batería 00:40:15
ni tiene nada, simplemente se pega y ya está 00:40:18
esto, para que os hagáis una idea 00:40:20
tiene un tamaño de unos 10 centímetros 00:40:22
más o menos, la pegatina esta que estáis 00:40:24
viendo aquí 00:40:26
creo que tengo una diapositiva 00:40:27
luego hacia el final, donde doy 00:40:30
algún detalle más sobre 00:40:32
sobre Rain, vale, entonces bueno 00:40:33
¿Cómo funciona esta parte de la modulación por carga? 00:40:36
La modulación esta del dispositivo pasivo. 00:40:41
Bueno, pues lo que hace el dispositivo pasivo 00:40:43
es que de la frecuencia del campo magnético que genera el activo, 00:40:46
que es una frecuencia de 13,56 MHz, como os decía antes, 00:40:50
lo que hace es que la divide entre 16 00:40:54
y se crea allí una suportadora, ¿vale? 00:40:56
Se crea una señal de unos 848 kHz, ¿vale? 00:40:59
Que es la dieciseisava parte de trece coma cincuenta y seis. 00:41:04
Y lo que va a hacer es que va a cargar o va a descargar el circuito magnético a este ritmo, ¿vale? 00:41:08
A este ritmo de los ochocientos cuarenta y ocho kiloherzios. 00:41:14
Funciona así. 00:41:17
Bien. 00:41:18
¿Qué modulación se puede utilizar aquí? 00:41:19
¿Qué tipo de codificación? 00:41:21
Bueno, pues las codificaciones que tenemos principalmente son la non-return to un cero, ¿vale? 00:41:23
El Manchester, el Miller modificado, o el one out of four, o one out of dieciséis, 00:41:28
o 1.32 o lo que tú quieras, ¿vale? 00:41:33
¿Esto qué quiere decir? 00:41:36
Bueno, ¿qué estáis viendo aquí a la derecha? 00:41:37
Pues lo que estáis viendo es esa subfrecuencia, 00:41:39
que os decía, esa subportadora de 848 kiloherzios, ¿vale? 00:41:44
Aquí tenemos un ciclo de 848 kiloherzios. 00:41:49
Aquí otro ciclo de 848 kiloherzios, ¿vale? 00:41:53
Entonces, esta es la longitud de onda, ¿vale? 00:41:57
Esta es una onda. 00:41:59
Imaginaos aquí la señal senoidal de 848 kiloherzios. 00:42:00
Bien, pues si en el método de codificación no returna un cero, 00:42:05
un uno se codifica manteniendo todo en alto, 00:42:09
cargando constantemente al campo magnético, 00:42:13
y un cero no cargándolo en absoluto. 00:42:16
Entonces, si yo quiero transmitir un uno, cargo el campo magnético. 00:42:18
Es decir, hago que al lector le cueste más mantener el campo magnético. 00:42:22
¿Cuánto más? Pues depende del dispositivo. La carga que producen es de entre un 10 y un 100%. Es decir, son capaces de absorber completamente el campo magnético que emite el emisor, el lector, si lo ponemos al 100%. Típicamente se usan cargas muy inferiores, cargas del orden del 10%. Eso es el non-returto cero. 00:42:27
el Manchester funciona por mitades 00:42:46
lo que hace es que ese ciclo 00:42:50
de 848 kHz 00:42:51
según 00:42:53
lo cargue en la primera mitad 00:42:55
o según lo cargue en la segunda mitad 00:42:57
estamos transmitiendo un 1 o un 0 00:42:59
¿veis? si lo cargo en la primera mitad 00:43:01
y no lo cargo en la segunda 00:43:03
estoy queriendo transmitir un 0 00:43:05
si no lo cargo en la primera mitad 00:43:07
pero si lo cargo en la segunda mitad 00:43:09
estoy queriendo transmitir un 0 00:43:11
bien, pues este es 00:43:14
el manchester luego está el miller que para mí es el más raro de todos vale en el miller lo que 00:43:16
ocurre es que detrás de la mitad justo después de la mitad se emite un pulso vale ese pulso si es 00:43:22
justo detrás de la mitad quiere decir que quieres transmitir un 1 y si es justo al inicio vamos a 00:43:32
buscar uno que esté al inicio a ver por ejemplo este está al inicio eso quiere decir que quieres 00:43:38
transmitir un 0. Este está al inicio, quiero transmitir un 0. Sin embargo, si el pulso lo doy 00:43:45
justo después de la mitad, quiero transmitir un 1, pero tiene una excepción. Resulta que si 00:43:51
después de un 1, por ejemplo aquí, yo quiero transmitir un 0, pues no tengo que poner ningún 00:43:57
pulso. Lo suyo sería, si yo quisiera transmitir un 0 aquí, pues ya sabéis que al inicio tendría 00:44:02
que hacer un pulso, tendría que ver un pulso aquí. Pues no, resulta que hay una excepción que dice 00:44:08
que si después de un 1 00:44:12
quieres transmitir un 0 00:44:13
pues no hace falta 00:44:14
que hagas ningún pulso 00:44:16
que ya se sobreentiende 00:44:16
que lo que quieres transmitir 00:44:18
es un 0 00:44:19
aunque no haya ningún pulso 00:44:19
en todo este ciclo 00:44:21
¿vale? 00:44:22
bueno 00:44:24
y luego está 00:44:24
el 1 out of 4 00:44:25
o el 1 out of 16 00:44:26
que este es muy curioso 00:44:27
porque es parecido 00:44:29
al Miller 00:44:30
lo que ocurre 00:44:30
es que ya por ejemplo 00:44:32
en 1 out of 4 00:44:32
lo que hacemos 00:44:34
es que codificamos 00:44:35
en vez de un único bit 00:44:36
veis que aquí 00:44:37
íbamos codificando 00:44:38
en cada ciclo 00:44:39
o un 0 00:44:40
o un 1 00:44:41
o un 0 o un 1, pues sin embargo 00:44:41
en el 1 out of 4 00:44:43
lo que hacemos es que en cada uno de estos ciclos 00:44:44
podemos codificar 00:44:48
hasta 2 bits 00:44:49
¿y cómo lo hacemos? pues igual que en el mirror 00:44:50
dependiendo del momento en el que emitamos 00:44:53
el pulso, si lo hacemos casi al principio 00:44:55
es un 0, 0, si lo hacemos 00:44:58
un poquito después es un 0, 1 00:44:59
si lo hacemos todavía un poquito después 00:45:01
es un 1, 0 y si lo hacemos justo 00:45:03
al final es un 1, 1 00:45:05
pues igual que tenemos el 1 out of 4 00:45:07
hay otro que es One of 16 00:45:09
One of System 00:45:11
que es simplemente dividir esto en todavía 00:45:13
más divisiones 00:45:15
obviamente, cuanto 00:45:16
más divisiones hagamos 00:45:19
pues mayor será la tasa de transferencia 00:45:21
¿vale? 00:45:23
más datos podremos transmitir 00:45:24
bueno 00:45:27
¿cómo transmite entonces 00:45:28
la tarjeta al lector? 00:45:31
pues ya lo hemos dicho 00:45:33
si es la tarjeta al lector, transmite por carga 00:45:34
¿vale? por load modulation 00:45:37
modulando la carga 00:45:39
que ofrece al campo magnético 00:45:41
pero sin embargo si son dos dispositivos 00:45:43
activos no tienen que cargarse 00:45:45
el uno al otro porque ninguno tiene que obtener 00:45:47
energía del otro, entonces lo que se 00:45:49
utiliza es codificación por fase 00:45:51
¿vale? por cambio de fase 00:45:53
que es lo que estáis viendo aquí en el último de los casos 00:45:55
¿vale? aquí tenemos que si son 00:45:57
dos dispositivos activos comunicándose entre 00:45:59
sí o bien el lector 00:46:01
que quiere mandar información 00:46:03
a la tarjeta, pues si el lector quiere 00:46:05
mandar información a la tarjeta, incluso si la tarjeta es pasiva, utiliza 00:46:07
modulación por cambio de fase. Y aquí estáis viendo los dos casos extremos 00:46:11
de modulación por carga. Una modulación con carga 00:46:15
del 100%, es decir, que anula completamente el campo magnético 00:46:19
o una modulación del 10%, que apenas se observa, pero veis aquí hay una pequeña 00:46:23
carga, esta sección es un poco más bajita, tiene un poquito menos 00:46:27
de amplitud. Bueno, pues así funciona esto. Un problema, una 00:46:31
curiosidad que tiene esto del NFC, es que 00:46:35
claro, si tú pones estas pegatinas 00:46:37
en una superficie metálica, 00:46:39
pues el campo magnético, ¿qué 00:46:42
ocurre? Que te genera corrientes 00:46:43
de EDI, ¿vale? Te genera ahí corrientes 00:46:45
y esas corrientes hacen que 00:46:47
se pierda el campo magnético, entonces la 00:46:49
tarjeta no es capaz de leerlo. Para 00:46:51
editar esto, cuando tú compras las tarjetas, 00:46:53
si tú las tienes destinadas a 00:46:55
pegarlas sobre algo que sea magnético, 00:46:57
lo que tienes que hacer es pedirlas con 00:47:00
una capa de material ferromagnético, que es esto 00:47:01
que veis aquí de color negro, ¿vale? 00:47:03
te ponen ahí una capita 00:47:05
de material ferromagnético 00:47:06
que lo que hace 00:47:08
es impedir 00:47:10
que se generen 00:47:10
esas corrientes de EDI 00:47:11
que podrían interferir 00:47:12
en las comunicaciones 00:47:13
¿vale? 00:47:14
entonces 00:47:15
esto es como un detalle 00:47:16
pero por si alguna vez 00:47:17
os pasa 00:47:18
que pegáis algo 00:47:18
y dices 00:47:19
es imposible leer esta tarjeta 00:47:19
pues probablemente 00:47:21
es porque la habéis pegado 00:47:22
en una superficie metálica 00:47:23
y esa tarjeta 00:47:24
no traía 00:47:25
la hoja de material 00:47:26
ferromagnético 00:47:28
de ferrita 00:47:28
luego 00:47:29
el estándar 00:47:31
te dice 00:47:32
cómo tienen que ser 00:47:32
las antenas 00:47:33
¿vale? 00:47:33
Entonces, la clase 1 es la de tarjeta europea, ¿vale? 00:47:35
Las tarjetas de crédito nuestras, pues en esas son clase 1. 00:47:39
Y esas son las que te proporcionan mejor rendimiento, es decir, mejor alcance, ¿vale? 00:47:43
No obstante, el estándar te permite utilizar otros tamaños. 00:47:49
Pero claro, ten en cuenta que si vas reduciendo el tamaño, va a ser peor el rendimiento, ¿vale? 00:47:53
Entonces, por ejemplo, veis aquí que las tenemos de 18 milímetros, de 24 milímetros, de 32 milímetros. 00:47:58
el rendimiento va a ser peor, de hecho lo vais a ver 00:48:03
porque con el ejemplo que voy a hacer yo hoy 00:48:06
voy a usar una antena muy pequeñita y vais a ver 00:48:07
que tengo que pegar prácticamente el móvil 00:48:10
a la 00:48:12
tarjeta 00:48:13
voy a mirar si ha terminado ya Arduino 00:48:15
si, vale, está diciendo mi pantalla 00:48:18
¿no? 00:48:22
si, veis que me ha dado un error 00:48:25
¿por qué me ha dado un error? 00:48:27
porque resulta que el stack de matter 00:48:30
es tan grande que no cabe 00:48:32
en la memoria normal 00:48:34
de un SP32 00:48:35
un SP32 tiene típicamente 4 megas 00:48:37
que es lo que veis aquí 00:48:40
tiene un tamaño de memoria flash 00:48:41
de 4 megas 00:48:43
pero que ocurre, que esas 4 megas 00:48:44
se organizan en particiones 00:48:47
que es lo que estáis viendo aquí debajo 00:48:48
entonces me alegro de que haya salido este error 00:48:50
porque así os puedo contar esto 00:48:53
si no se me hubiera olvidado completamente contarlo 00:48:54
veis que de esas 4 megas 00:48:56
yo tengo ahora puesto un esquema de particiones 00:48:58
en las que utilizo 00:49:02
1,2 megas para la aplicación 00:49:03
y ahí no ha cabido 00:49:05
el stack de matter ocupa más de 1,2 megas 00:49:06
y por eso me ha dado este error tan raro 00:49:10
y luego estoy utilizando 00:49:11
1,5 megas como 00:49:13
partición de archivos 00:49:15
¿esto qué es? pues imaginaos que yo quiero usar 00:49:16
el SP32 como un servidor 00:49:19
de páginas web, pues aquí 00:49:21
en los 1,2 megas tendría el servidor 00:49:23
web, la lógica del servidor web 00:49:25
y aquí en las 1,5 megas 00:49:27
tendría el código HTML 00:49:29
las imágenes de esas páginas web 00:49:30
y demás, yo en este caso 00:49:32
como no quiero utilizar 00:49:34
archivos, no los necesito 00:49:36
me puedo venir a utilizar 00:49:38
otro formato de partición, voy a usar 00:49:40
por ejemplo este de aquí 00:49:42
FugApp, es decir, una 00:49:43
aplicación enorme de 3 megas 00:49:46
y solo un mega para 00:49:48
el espacio de archivos, fijaos 00:49:50
que todo tiene un precio, vale 00:49:52
si yo me voy a una aplicación 00:49:54
de 3 megas, tengo que 00:49:57
renunciar al OTA, el OTA 00:49:58
que es, el otra es la posibilidad 00:50:00
de actualizar el firmware 00:50:02
over the air, es decir, yo podría 00:50:04
actualizar el firmware sin tenerlo 00:50:06
conectado por el puerto USB 00:50:08
sino directamente lo podría 00:50:10
actualizar a través de 00:50:12
la red wifi, ¿vale? 00:50:14
Entonces, en este caso, tengo que 00:50:16
renunciar a esa funcionalidad, elijo aquí 00:50:18
esto, y 00:50:20
lo cargo, ¿vale? 00:50:25
Lo vuelvo a cargar, lo dejo ahí cargando, que echará otro 00:50:27
rato, y sigo con NFC. 00:50:29
¿Vale? ¿Para qué se usa NFC? 00:50:31
Se utiliza principalmente para pagos, para acceder a direcciones web, para arrancar el coche, para abrir puertas, para verificar la autenticidad, es decir, para ver que un bolso realmente es de la marca que vosotros creéis que es. 00:50:32
¿Vale? Habéis comprado un bolso de marca y queréis saber que realmente es de esa marca, pues directamente escaneas la etiqueta NFC que viene en el bolso y sabéis que es un bolso genuino. 00:50:50
también para, por ejemplo 00:51:05
esto ya ha pasado un poco de moda 00:51:08
pero hubo un tiempo que estaba muy de moda 00:51:10
en los paquetes de algún, por ejemplo, de lavavajillas 00:51:11
tenía una etiqueta NFC 00:51:13
para que tú directamente, cuando se te estaba acabando 00:51:15
el detergente, pudieras hacer un pedido 00:51:18
automáticamente, ¿vale? 00:51:20
y ahora yo he empezado a verlo, que esto es muy interesante 00:51:21
con la información de reciclaje, ¿vale? 00:51:24
en algunos dispositivos 00:51:25
normalmente de gama media o gama alta 00:51:27
incluyen una etiqueta NFC 00:51:29
que tú la puedes escanear y te dice exactamente 00:51:31
cómo tienes que reciclar ese dispositivo 00:51:33
la carcasa va al contenedor 00:51:35
amarillo, los componentes electrónicos 00:51:38
a tal sitio, las baterías 00:51:40
a este otro sitio y así 00:51:42
¿vale? entonces este es uno de los casos 00:51:43
de uso más curiosos que he visto 00:51:46
últimamente y luego por supuesto el de siempre 00:51:48
este es súper útil 00:51:50
que es el de provisionar dispositivos IOT 00:51:51
por ejemplo si tú tienes una mota 00:51:53
Lora, esa mota Lora 00:51:56
necesita unas credenciales 00:51:58
para unirse a la red ¿vale? 00:52:00
Entonces, ¿qué ocurre con esas credenciales? 00:52:02
Pues que de alguna forma se las tengo que meter en la mota. 00:52:05
¿Cómo se las puedo meter? 00:52:07
En el propio programa, pero claro, eso no es asequible para un usuario normal, 00:52:08
para un usuario de calle, sino que tengo que darle un método alternativo. 00:52:12
¿Cuáles son los métodos alternativos? 00:52:17
Pues una forma muy cómoda es que directamente desde su teléfono móvil 00:52:18
pueda él actualizar mediante NFC las credenciales que necesita esa mota. 00:52:21
Bueno, cuando he dicho aquí la autenticidad, 00:52:28
me he ido directamente al caso del bolso 00:52:30
pero este por ejemplo es un caso 00:52:32
de STM que permite 00:52:34
embeber, están embebidas 00:52:36
directamente las etiquetas 00:52:38
NFC en las jeringas 00:52:40
en las que se distribuyen las vacunas 00:52:42
no sé si recordáis que cuando el COVID 00:52:44
hubo bastante polémica 00:52:46
sobre si las vacunas eran genuinas 00:52:48
o eran falsas y demás 00:52:50
pues esto es uno de los casos de uso que ofrece 00:52:51
NFC 00:52:54
bueno, tipo de tarjeta, pues bienvenidos a la pesadilla 00:52:55
¿vale? 00:52:59
Esto, como veis, como os he contado antes, viene de lejos. Entonces tenemos un montón de estándares distintos. Tenemos tipos de tarjetas diferentes, modos de funcionamiento de las tarjetas diferentes y tecnologías de señales y protocolos también diferentes. 00:52:59
¿vale? entonces si me fijo 00:53:14
en esta última parte de aquí 00:53:15
que son los protocolos, pues tengo 00:53:17
NFC A, B, F 00:53:19
y V ¿vale? 00:53:22
¿el F qué es? pues el F es el 00:53:23
de Celica, el de Sony ¿vale? 00:53:26
el A es el que usa el Miller 00:53:28
modificado y el B es el que usa Manchester 00:53:29
por eso antes os he dado 00:53:32
se está fastidiando ahí con los métodos de colorificación 00:53:33
¿vale? para que entendáis esto 00:53:36
para que entendáis que una NFC A 00:53:37
utiliza Miller modificado 00:53:40
una NFC B utiliza 00:53:41
Manchester, una F 00:53:43
usa Félica, que Félica es Manchester 00:53:45
y luego las últimas que han salido 00:53:47
son las NFC5 00:53:49
estas utilizan 00:53:51
el método 1 out of 4 00:53:53
y esta es por ejemplo la que vamos a usar aquí hoy 00:53:55
que es la ST25 00:53:57
estas son las últimas que han surgido 00:53:59
estos son los protocolos de comunicaciones 00:54:01
o si lo queréis 00:54:04
ver de otra forma 00:54:06
cómo se codifica la información 00:54:06
es esta última columna 00:54:09
que tengo aquí, pero aparte de eso 00:54:11
como os digo, tenemos tipos de tarjetas 00:54:13
las tarjetas pueden ser de tipo 1, 2 00:54:16
3 o 4, y luego tenemos 00:54:17
también modos de operación, es decir 00:54:19
podemos tener un modo de operación en el que 00:54:21
tenemos un lector escritor 00:54:23
que podría ser por ejemplo vuestro teléfono móvil 00:54:25
y una tarjeta 00:54:27
o bien simplemente un iniciador 00:54:30
y una tarjeta 00:54:32
pues esos son los modos de operación 00:54:34
que tenemos en NFF 00:54:36
las 1 00:54:37
que son las classic 00:54:39
este tipo de tarjetas 00:54:41
ese tipo de tarjetas 00:54:43
han generado mucha polémica 00:54:45
porque hay un montón de gente por ahí 00:54:46
diciendo que puede clonar tarjetas 00:54:47
NFC 00:54:50
si es verdad que se pueden clonar 00:54:51
pero son solamente las tarjetas estas 00:54:53
las de tipo 1 00:54:55
las clásicas 00:54:56
¿qué ha ocurrido con esas tarjetas? 00:54:57
pues lo que ha ocurrido 00:55:00
es que el algoritmo de encriptación 00:55:01
que utilizan 00:55:02
pues se ha filtrado 00:55:03
y como se ha filtrado 00:55:06
ya cualquiera puede decodificar 00:55:07
esas tarjetas 00:55:09
y como son equipos 00:55:10
que no se pueden actualizar 00:55:11
pues ahora mismo cualquiera puede clonar una tarjeta 00:55:13
de tipo Classic 00:55:16
una Mi Fire Classic 00:55:18
se puede clonar 00:55:20
sin ningún problema 00:55:22
básicamente lo que tenemos son dos estándares ISO 00:55:23
el 14443 00:55:26
y el 15693 00:55:28
entonces 00:55:30
está también el de Felica 00:55:31
que es este de aquí que tiene su propio estándar 00:55:33
el GIS este X 00:55:35
pero el resto de tarjetas son 00:55:37
o 14443 00:55:38
que son las de tipo 1, tipo 2 y tipo 4 00:55:40
o las de 15693, que son las nuevas, que son las de tipo 5, ¿vale? 00:55:43
Lo que voy a utilizar yo hoy aquí es de tipo 5, que es el fabricante SNXP, ¿vale? 00:55:48
Que desarrolla ese protocolo. 00:55:54
Entonces, las diferencias, pues las podéis ver aquí. 00:55:56
Hay diferencias en todos los sentidos. 00:55:59
Pues el tamaño de la memoria que tienen, pues veis, las primeras tenían muy poca memoria, 00:56:01
solo 96 bytes, ¿vale? 00:56:05
No perdáis de vista que una tarjeta NFC en realidad es una memoria EEPROM 00:56:07
que podemos leer mediante radio, ¿vale? 00:56:11
Entonces, ¿qué tamaño tenía esa memoria EEPROM? 00:56:13
96 bytes, ¿vale? 00:56:15
Incluso algunas tenían menos, 48. 00:56:18
Por eso, precisamente, Felica trató de diferenciarse 00:56:20
creando las suyas que tenían hasta 2K. 00:56:23
Eso ha cambiado bastante, ¿vale? 00:56:26
Y ahora ya las tenemos de 32K, 00:56:28
o la que voy a usar yo hoy aquí, pues de 64K. 00:56:30
Por ejemplo, si vosotros escaneáis vuestro DNI 00:56:33
con el móvil, pues vais a ver que os dice 00:56:36
qué tipo de tarjeta es 00:56:40
no sé si tengo yo aquí 00:56:42
si tengo tarjetas 00:56:44
estáis viendo todavía mi teléfono móvil 00:56:46
¿verdad? 00:56:50
o me estáis viendo a mí 00:56:52
chiquitito, el teléfono móvil 00:56:53
vale, pues entonces 00:56:55
lo que voy a hacer es abrir 00:56:57
esto lo podéis vosotros instalar también 00:57:00
hay aplicaciones para el teléfono móvil 00:57:02
hay una muy famosa que es NFC Tools 00:57:03
y yo con esa 00:57:06
lo que puedo hacer es leerme una tarjeta 00:57:08
entonces tengo aquí una tarjeta 00:57:10
esta que voy a usar es precisamente las tarjetas que se usan para clonar vale no vale cualquier 00:57:12
tarjeta para para clonar hace falta unas tarjetas especiales que se llaman magic cards es esta como 00:57:17
veis es imposible distinguir de una normal y si yo la leo me dice bueno no veréis nada pero me dice 00:57:23
que ha detectado una nueva tarjeta me dice que esa tarjeta es una 14.443 y utiliza tecnología 00:57:32
MFCA, ¿vale? 00:57:39
Es de tipo A. Me dice el número de serie, 00:57:41
el fabricante, la información 00:57:44
de la memoria, pues tiene un CAD de memoria, 00:57:45
el formato de los datos, esta es una 00:57:48
MIFAR Classic, así es que esta se puede 00:57:49
clonar sin ningún problema. De hecho, ¿veis? 00:57:51
Me dice a mí que es de escritura 00:57:54
posible, ¿vale? Y de hecho aquí 00:57:55
ya he guardado algo, ya he guardado yo algo, he guardado 00:57:57
la página web de Google, ¿vale? 00:58:00
Pues esto es una típica tarjeta 00:58:02
Magic, que es una tarjeta que me 00:58:03
permite clonar cualquier otra 00:58:05
tarjeta que sea Classic, 00:58:07
¿Vale? Entonces, ¿qué tarjetas 00:58:09
Classic hay? Pues no hay muchas. 00:58:11
¿Vale? Ya, por fortuna, se han ido 00:58:13
quitando del mercado y apenas quedan. 00:58:15
No penséis que vais a poder clonar 00:58:18
vuestro DNI, ni vais a poder clonar 00:58:19
la tarjeta 00:58:21
de la biblioteca. 00:58:23
Me parece que de las pocas que quedan 00:58:26
son las de Renfe. Las tarjetas estas de Renfe 00:58:27
de cartón, creo que son Mifal Classic 00:58:29
todavía. Y bueno, probablemente también 00:58:31
si tenéis este tipo de tarjetas para acceder 00:58:33
a vuestra urbanización, 00:58:35
probablemente también sean Classic. 00:58:38
¿vale? o al gimnasio, pues probablemente 00:58:39
también lo seré, y esas como os digo 00:58:41
se pueden clonar sin ningún problema 00:58:43
¿qué modos de funcionamiento tenemos en NCC? 00:58:45
pues en lector-escritor 00:58:48
¿vale? que es simplemente un dispositivo 00:58:49
que sería por ejemplo cuando vais 00:58:51
a Decathlon y metéis los 00:58:53
lo que habéis comprado lo metéis 00:58:55
dentro del cajón y os lo va detectando 00:58:57
directamente ¿vale? pues eso tiene 00:58:59
un algoritmo de anticolisión 00:59:01
que eso es muy interesante, porque vosotros 00:59:03
metéis todos los productos allí 00:59:05
del tirón en el cajón 00:59:06
y él poco a poco los va detectando 00:59:08
sabéis que hay otros sitios, otros comercios 00:59:10
en los que no te dejan poner los productos 00:59:12
todos a la vez, hay que irlos poniendo 00:59:14
de uno en uno, ¿por qué es? 00:59:16
porque están utilizando un protocolo que no incluye 00:59:18
anticolisión 00:59:20
luego otro detalle muy interesante 00:59:22
es el de emulación de tarjeta 00:59:24
ese es justo el que estáis usando cada vez que vais 00:59:26
a pagar con el teléfono móvil 00:59:28
cuando estáis pagando, lo que estáis haciendo realmente 00:59:30
es emular con vuestro teléfono móvil 00:59:32
vuestra tarjeta NFC 00:59:34
de crédito, ¿vale? Vuestro teléfono móvil está emulando 00:59:36
a vuestra tarjeta de crédito. Luego 00:59:39
el modo peer-to-peer de igual a igual, que ahí tenemos dos 00:59:42
dispositivos activos, ¿vale? 00:59:45
Y luego hay un modo que no es para transmitir datos 00:59:48
sino que es simplemente para cargar dispositivos. 00:59:51
Tú puedes cargar, por ejemplo, un dispositivo que 00:59:54
consuma muy poco, una muñequera o algo parecido, 00:59:57
lo puedes cargar directamente desde el teléfono móvil. 01:00:00
¿Vale? 01:00:04
lo que os decía, protocolos 01:00:06
daos cuenta, volvemos a esta diapositiva 01:00:08
hemos dicho, protocolos 01:00:10
A, B y F, tipos de tarjetas 01:00:12
a la izquierda, 1, 2, 3, 4 y 5 01:00:14
¿vale? que serían los que tenemos 01:00:16
aquí, 1, 2, 3, 4 y 5 01:00:18
ahora voy a los protocolos, pues resulta 01:00:20
que los protocolos están vinculados 01:00:22
a los tipos de tarjeta, o sea, no puedes 01:00:24
usar cualquier protocolo en cualquier tarjeta 01:00:26
sino que dependiendo de la tarjeta 01:00:28
que tengas, por ejemplo, si tengo una tarjeta 1 01:00:30
puedo usar el tipo A 01:00:32
con anticolisión, ¿vale? 01:00:34
y no puedo usar otra cosa, si tengo el tipo 2 01:00:36
o el tipo 4, sin embargo, puedo utilizar con el tipo 4 01:00:39
tanto el tipo A como el tipo B, y las de Felica 01:00:42
que son las japonesas, esas van a su bola 01:00:45
esas son las de Sony, y esas van con tarjetas tipo 3 01:00:47
y en el tipo F, solamente podemos usar 01:00:51
el protocolo tipo F, bien, pues esas son 01:00:54
como os digo, la relación que existe entre los protocolos 01:00:57
NFC y los tipos de tarjeta, entonces 01:01:00
en función del tipo de tarjeta que tú tengas 01:01:03
No lo habréis visto, pero cuando he leído aquí con el móvil, me está diciendo que esta es una NXP MiFar Classic. Es decir, mi tarjeta es esta de aquí. Es una de tipo 1. Eso es lo que me está diciendo aquí, ¿vale? 01:01:06
Bueno, los protocolos, pues igual, aquí tenemos varios detalles de cómo funcionan, no tiene mayor interés, un poco lo que os he estado contando, cómo funciona el lector y cómo funciona la tarjeta, abajo, ¿vale? 01:01:19
Veis que el lector siempre va a 13,56 MHz y sin embargo la tarjeta crea una subportadora, ¿vale? Esa subportadora es la que es de una 16-saba parte, ¿vale? O en el caso de las felicas, de las japonesas, una 32-saba parte. 01:01:31
bueno, esto no tiene mayor interés 01:01:45
salvo entender que existe 01:01:47
y lo que pretendo con esto 01:01:50
es dejar muy claro que es que existen muchos tipos 01:01:52
de tarjetas NFC, que no son todas 01:01:53
iguales, entonces si vais a 01:01:56
comprar tarjetas NFC 01:01:57
tened cuidado, ¿vale? porque tenéis 01:01:59
que saber muy bien lo que estáis comprando 01:02:01
entonces, por ejemplo, aquí tenéis el modelo 01:02:03
que está basado en una arquitectura OSI 01:02:05
entonces veis que la capa superior 01:02:07
es la que a mí más me interesa 01:02:09
es una capa de aplicación, esto es lo que nos 01:02:11
trajo el foro NFC 01:02:13
El foro NFC lo que dijo es, estamos hasta las narices de tantas tecnologías de tarjetas, vamos a unificarlas para que todas ellas, sea la tarjeta que sea, puedan almacenar información en un formato específico que se llama NDF. Este de aquí, no sé si lo estaréis viendo porque se ve muy pequeñito, en NDF. Y eso vale para las 443, para la Félica, para cualquiera, como estáis viendo aquí. 01:02:15
bien, pues eso es lo que interesa entender de esto 01:02:41
aquí os he puesto otra imagen para que veáis 01:02:44
un poco cómo funciona la parte de la seguridad 01:02:46
la seguridad está garantizada 01:02:48
las tarjetas, tú puedes 01:02:50
escribir algo y que solamente se pueda 01:02:52
leer si conoces la contraseña 01:02:54
puedes impedir que se pueda escribir 01:02:56
si no se sabe la contraseña, es decir 01:02:58
es una memoria, como os decía antes, es simplemente 01:03:00
una memoria en la que tú puedes 01:03:02
poner contraseñas tanto para leer 01:03:04
como para escribir, o no poner 01:03:06
contraseñas y permitir que se pueda leer 01:03:08
y escribir libremente 01:03:10
¿vale? entonces bueno 01:03:12
aquí os he puesto unas cuantas de estas 01:03:14
diapositivas, aquí veis como funciona esto 01:03:16
pues tenemos las capas más bajas 01:03:18
¿vale? esas capas 01:03:21
más bajas, esto sería el SP32 01:03:23
por ejemplo, lo que tenemos aquí abajo 01:03:25
¿vale? el SP32 01:03:26
¿qué tiene? pues tiene comunicaciones 01:03:28
I2C y esas comunicaciones 01:03:30
I2C ¿para qué las voy a usar? 01:03:33
para conectarme con un 01:03:34
ST25 ¿vale? el ST25 01:03:36
es el circuito de radio 01:03:38
y entonces lo que va a ocurrir es que está en la parte 01:03:39
por así decirlo, la parte de hardware 01:03:42
luego, por encima de eso 01:03:44
tengo el stack TCP y IP 01:03:47
que es esto de aquí arriba, perdón, el stack 01:03:48
el stack NFC 01:03:50
¿vale? que es esto de arriba, que esto ya es 01:03:52
por así decirlo, software, más parte 01:03:54
de software, y como ves 01:03:56
aquí, pues lo que se hace es que 01:03:58
se empaquetan los datos, luego dependiendo 01:04:00
del tipo de protocolo que se utilice 01:04:02
y del tipo de tarjeta 01:04:04
eso ya me da exactamente igual, porque tengo 01:04:06
una capa por encima, que es la capa de usuario 01:04:08
en la que yo creo esos registros 01:04:10
NDF. Yo puedo tener varios 01:04:12
registros. ¿Un registro qué es? 01:04:14
Pues un texto. Imaginaos que yo quiero 01:04:16
clavar en una tarjeta 01:04:18
NFC, pues yo 01:04:20
qué sé, como hemos visto antes, hasta 64 01:04:22
K de texto puedo guardar ahí. 01:04:24
¿Vale? O puede ser una dirección 01:04:26
URL. Esto creo que no lo hice 01:04:28
en clase, pero yo podía pasar la etiqueta 01:04:30
NFC para que vosotros 01:04:32
os descargaseis un documento que yo tengo 01:04:34
guardado en esa tarjeta NFC. Podría 01:04:36
ser un vídeo podría ser una posición gps podría ser prácticamente cualquier dato que se os pase 01:04:38
por la cabeza eso está en la especificación vale entonces por ejemplo esta es la aplicación que no 01:04:43
habréis visto desde la webcam pero afortunadamente la tenemos aquí más en grande esta es la aplicación 01:04:50
está en fc tours que está disponible para android y para ellos y veis cuando yo escaneo una tarjeta 01:04:56
pues me está esta es la tarjeta de la bono transporte concretamente vale la tarjeta transporte 01:05:03
de la Comunidad de Madrid. Pues me está diciendo 01:05:07
qué tipo de tarjeta es. ¿Veis? Me dice 01:05:09
que es una 14443. 01:05:11
Ya no es una MIFAR Classic. 01:05:14
¿Veis? Aquí no pone Classic, pone 01:05:16
Bestfire. Eso quiere decir que no la voy a poder 01:05:17
clonar. Si aquí pusiera MIFAR Classic 01:05:19
sí que la podría clonar. 01:05:21
Luego me está diciendo aquí 01:05:23
qué tecnologías utiliza. ¿Vale? Pues 01:05:24
el NFCA, el NDF, 01:05:27
que es esta que os estoy diciendo de 01:05:30
de los registros NDF, 01:05:31
y aparte tiene su ISODEP, 01:05:35
que es un sistema encriptado 01:05:37
ahí viene el número de serie de mi abono de transportes 01:05:39
el fabricante y demás 01:05:41
estas tarjetas como os digo no se pueden clonar 01:05:42
pero si que las podemos leer 01:05:46
y las podemos investigar y es muy interesante 01:05:47
yo aquí lo he hecho con NFC Tools 01:05:49
hay otra aplicación que se llama 01:05:51
NFC Taginfo que sirve para prácticamente 01:05:52
lo mismo 01:05:55
entonces ya me voy a centrar solamente 01:05:55
en esto, en NDEF 01:05:58
NDEF son estos registros 01:06:00
que os estaba diciendo 01:06:03
y esos registros pues pueden ser principalmente 01:06:04
textos, cualquier URL 01:06:06
puede ser un póster 01:06:09
un SmartPoster 01:06:10
no me refiero a un póster 01:06:13
de un grupo de música 01:06:14
o de un equipo de fútbol 01:06:18
no me refiero a un póster 01:06:19
un póster en el que si alguien pone 01:06:20
el teléfono móvil pues le da por ejemplo 01:06:24
el horario de los autobuses que van a pasar 01:06:26
por ese póster 01:06:27
puede ser también una firma 01:06:28
esto es lo que os decía antes para identificar 01:06:31
precisamente que el bolso que te has comprado 01:06:33
o que la vacuna es una vacuna 01:06:36
genuina. O puede ser que esto 01:06:37
es muy interesante, las credenciales 01:06:39
para conectarte con una 01:06:42
red Bluetooth o una red Wi-Fi o 01:06:43
una red Thread, lo que estábamos hablando antes. 01:06:45
Yo puedo crear aquí un Hangover 01:06:48
de tal forma que un usuario 01:06:49
escanea la etiqueta NFC de una 01:06:51
mota y automáticamente esa mota 01:06:53
ya se da de alta por Thread 01:06:55
en ese controlador. 01:06:57
Bueno, aquí tenéis todas las 01:06:59
opciones, veis que pueden ser vídeos, pueden ser 01:07:01
archivos, tú puedes guardar lo que quieras, direcciones 01:07:03
de correo electrónico, entonces es una 01:07:05
forma muy cómoda de intercambiarse 01:07:07
de intercambiarse información 01:07:09
probablemente lo hayáis hecho 01:07:11
alguna vez, otras veces nos pasábamos las tarjetas 01:07:13
de contacto, tarjetas impresas 01:07:15
en cartulina con nuestros nombres 01:07:17
los nombres de nuestras empresas, el cargo que 01:07:19
ostentábamos, el teléfono y demás 01:07:21
pues ahora eso mismo se hace con el teléfono 01:07:23
móvil y es gracias a este formato 01:07:25
al formato NDF 01:07:27
en una misma tarjeta 01:07:28
NFC 01:07:31
tú puedes tener varios registros 01:07:33
NDF, ¿vale? 01:07:35
pero esto es un poquito lioso 01:07:36
¿por qué? porque tú tienes que 01:07:39
indicar cuándo empieza 01:07:41
el mensaje y cuándo termina el 01:07:42
mensaje, ¿vale? entonces vais a ver en el ejemplo 01:07:44
que voy a hacer después, vais a ver que 01:07:46
si yo guardo varios registros 01:07:48
el primer registro lo tengo que marcar como 01:07:50
registro inicial y el último 01:07:52
registro lo tengo que marcar como registro 01:07:54
final y el registro del medio lo tengo 01:07:57
que marcar como que no es ni inicial 01:07:59
ni final 01:08:01
entonces bueno, eso lo vais a ver más claro en el ejemplo 01:08:02
entonces esto es un ejercicio sencillo 01:08:05
lo que voy a hacer es guardar en una etiqueta NFC 01:08:08
un registro, voy a mandar por ejemplo 01:08:11
una dirección web, bueno voy a ver 01:08:14
porque igual ahora no tengo aquí ninguna tarjeta 01:08:17
bueno 01:08:19
pues creo que no las tengo 01:08:21
estas son las de generación 2 01:08:24
estas son 01:08:31
las syntax normales 01:08:34
voy a poner ahora debajo del móvil 01:08:35
una tarjeta normal 01:08:38
vale, entonces 01:08:39
con la 01:09:06
aplicación esta que os estaba diciendo 01:09:09
con el NFC Tools 01:09:10
vale, pongo ahí 01:09:12
la tarjeta, coloco el teléfono 01:09:14
móvil encima y veis que lo ha actualizado 01:09:16
me dice que en este caso 01:09:18
tengo una tarjeta 01:09:20
Ultralight, NFCA, 01:09:22
lo que sea, ¿vale? 01:09:25
Voy aquí, no sé si lo estaréis viendo, 01:09:26
donde pone escribir, 01:09:28
voy a empezar a ponerlo más alto, 01:09:30
y digo que quiero añadir un registro, ¿veis? 01:09:32
Y los registros pueden ser 01:09:34
de un montón de tipos. Pueden ser textos, 01:09:36
pueden ser URLs, ¿vale? 01:09:39
URLs personalizadas, 01:09:40
vídeos, archivos, correos electrónicos, 01:09:42
para enviar 01:09:45
un SNS directamente a una dirección, 01:09:46
¿vale? Pueden ser unas coordenadas, 01:09:48
una llamada de emergencia para que llamen 01:09:50
si os pase algo, puede ser 01:09:52
vuestra dirección de bitcoin 01:09:54
si usáis bitcoin, lo que sea 01:09:56
puede ser un hangover, como veis abajo 01:09:58
de bluetooth o de wifi, entonces yo aquí 01:10:00
voy a hacer algo sencillo que es guardar un url 01:10:02
entonces veis que por defecto 01:10:04
no sé si veis algo, espero que sí 01:10:06
podéis poner el protocolo 01:10:07
que queréis usar, imaginaos que yo quiero guardar 01:10:10
aquí la página 01:10:12
web de Duca Madrid, pues yo pongo 01:10:14
https y pongo aquí 01:10:15
www.educa.madrid.org 01:10:17
y aquí le digo validar 01:10:27
ahora le doy a escribir 01:10:31
aquí veis que pone escribir 01:10:37
no sé si lo veréis 01:10:38
pone escribir 01:10:39
me dice acerque a la tarjeta 01:10:39
lo acerco a la tarjeta 01:10:42
y veis ya me dice que lo ha escrito 01:10:43
entonces si yo ahora 01:10:45
le pasase esta tarjeta a cualquier persona 01:10:47
esa persona podría venir 01:10:49
leerla con su móvil 01:10:51
y directamente 01:10:52
accedería a la página web 01:10:54
de EducaMadrid 01:10:57
quiero muy rápido 01:10:58
la coloco 01:11:01
le digo que quiero abrir con 01:11:03
Firefox y veis me sale 01:11:06
directamente la página web de EducaMadrid 01:11:08
bueno, pues igual que he hecho esto 01:11:11
igual que he grabado una dirección 01:11:13
podría haber grabado cualquier otra cosa 01:11:14
¿vale? 01:11:17
un vídeo o cualquier otra cosa que hubiera querido 01:11:18
Y el funcionamiento es tan simple como el que estáis viendo aquí, ¿vale? Simplemente, pues eso, decir lo que quieres grabar y grabarlo. Un ejercicio curioso, si queréis hacerlo esto con los alumnos, es que ellos intenten identificar dónde está esa información, ¿vale? Si yo ahora leyera esa tarjeta, bueno, no lo voy a leer porque tardo más, lo muestro aquí, ¿vale? Si la leyera, me diría que tiene esta información, ¿vale? 01:11:20
Entonces es curioso ver con ellos como en la especificación, que os la he puesto aquí, ¿vale? Para que la podáis descargar, la tenéis aquí la especificación. En la especificación dice que el tipo 55 es el que hoy corresponde a una URL, ¿vale? Y lo que estamos viendo a continuación es justo en este caso, yo creo que había grabado aquí ibm.com. 01:11:45
Entonces, lo que estamos viendo es precisamente IBM en ASRI, ¿vale? En ASRI en esa decimal, ibm.com, ¿vale? Pues es un ejercicio que está bien para hacerlo con los alumnos, para que ellos vean cómo funcionan estos protocolos. 01:12:05
bueno, el sistema de anticolisión 01:12:19
el sistema de anticolisión es muy 01:12:22
es muy curioso 01:12:24
porque lo que ocurre 01:12:26
es que 01:12:28
el lector dice 01:12:30
¿quién hay ahí? ¿vale? pregunta 01:12:32
a las etiquetas quienes están ahí 01:12:34
entonces las etiquetas empiezan a 01:12:36
identificarse, entonces claro 01:12:38
si mientras la 01:12:40
identificación de las etiquetas es igual 01:12:42
no hay ninguna colisión ¿vale? porque 01:12:44
todas están transmitiendo lo mismo 01:12:46
pero en el primer bit 01:12:47
en el que se diferencian las direcciones 01:12:49
de dos etiquetas se produce una interferencia 01:12:51
el lector detecta esa interferencia 01:12:53
y dice, oye por favor 01:12:56
no me digáis todas las que estáis ahí 01:12:57
solamente decidme quienes estáis ahí 01:12:59
que empezáis por esta cabecera 01:13:01
y el siguiente bit es un 1 01:13:04
y así va haciendo varias peticiones 01:13:05
hasta que consigue identificar 01:13:07
a todos los dispositivos 01:13:09
que hay ahí, a todas las tarjetas que hay ahí 01:13:12
metidas, ¿vale? pero claro 01:13:14
tener en cuenta que hay veces que 01:13:15
la anticolisión es un problema, de hecho 01:13:17
está prohibida, ¿vale? En las tarjetas 01:13:19
que son de crédito, está prohibido utilizar 01:13:21
anticolisión, porque eso podría 01:13:23
provocar que alguien 01:13:25
acercara dos tarjetas al datáfono 01:13:27
¿vale? 01:13:29
Entonces, eso no lo podemos permitir 01:13:31
Entonces, lo que os digo, si alguien 01:13:33
intenta, si intentáis esto hacer, bueno, se habrá pasado 01:13:35
si acercáis directamente la cartera 01:13:37
y lleváis varias tarjetas, te sale un 01:13:39
aviso de que estás intentando 01:13:41
pasar más de una tarjeta de crédito, ¿vale? 01:13:43
Bueno, pues eso es como funciona el sistema de anticolisión. 01:13:46
¿Problemas que tienes con la tecnología NFC? 01:13:50
Pues los problemas principales son que te la clonen, 01:13:54
que te hagan spoofing, que te hagan jamming, ¿vale? 01:13:59
Que te hagan airdropping o que te hagan skimming. 01:14:02
Entonces, como veis, tenemos aquí un montón de términos muy interesantes, ¿vale? 01:14:05
¿Qué significa? 01:14:10
Bueno, el de clonar, imagino que lo conocéis de sobra. 01:14:11
clonar es simplemente duplicar 01:14:14
¿vale? 01:14:17
es duplicar vuestra tarjeta 01:14:18
eso con las primeras, con las classic 01:14:20
era muy fácil, simplemente tú llevas la tarjeta 01:14:22
de identificación del trabajo en la cartera 01:14:24
y en el metro o en el autobús 01:14:26
se te acercaba alguien y te la clonaba directamente 01:14:28
sin contacto, ¿vale? 01:14:30
por eso en algunas empresas empezaron a pedir a los empleados 01:14:32
que llevasen sus tarjetas de identificación 01:14:34
en unos sobrecitos 01:14:36
de aluminio, ¿vale? para que no se los pudieran leer 01:14:38
eso es el clonado 01:14:40
el spoofing 01:14:43
es que 01:14:45
alguien puede 01:14:46
hacerse pasar por un tercero 01:14:48
eso es hacer spoofing 01:14:51
hacer jamming es impedir 01:14:52
que la tarjeta funcione 01:14:55
es obstruirla 01:14:56
hacer droping es mirar por encima 01:14:57
del hombro, es decir 01:15:00
que haya aquí un sistema 01:15:02
legítimo comunicándose 01:15:04
y que a su vez tengamos 01:15:06
otro ilegítimo que está escuchando 01:15:08
toda esa comunicación 01:15:10
y por último tenemos el de skimming 01:15:11
que es el que más miedo da 01:15:13
que es este tipo de 01:15:15
de artilugios 01:15:16
que instalan en los cajeros automáticos 01:15:19
o también en los datófonos de alguna tienda 01:15:21
para clonarte la tarjeta 01:15:23
tú no te das cuenta, metes aquí la tarjeta 01:15:25
ves que es prácticamente idéntico a la original 01:15:27
y lo que está ocurriendo, para ti todo funciona normalmente 01:15:28
o sea, la tarjeta está funcionando normalmente 01:15:31
pero además tu tarjeta 01:15:33
ha quedado clonada aquí 01:15:35
¿vale? entonces bueno 01:15:37
esos son los distintos 01:15:39
tipos de ataque 01:15:40
que tiene esta tecnología 01:15:42
¿es fácil? no es fácil 01:15:44
¿vale? esto aunque sale 01:15:46
muchas veces en televisión y tal 01:15:48
pues no es fácil, porque por ejemplo 01:15:50
en las tarjetas de crédito, es verdad 01:15:52
tú tienes que clonar la tarjeta 01:15:54
pero además tienes que conseguir el pin 01:15:56
entonces o pones aquí una cámara 01:15:58
o también clonas el teclado 01:16:00
hay algunos que también te hacen skimming 01:16:02
del teclado, ¿vale? porque necesitan 01:16:04
los dos factores para poder clonar 01:16:06
la tarjeta, bueno, estas son 01:16:08
las clases, que son las que os digo, estas son 01:16:10
las más famosas, se usan mucho, estas son 01:16:12
baratísimas 01:16:14
pero estas tienen el inconveniente que os decía 01:16:15
que no son muy seguras 01:16:18
y estas ya 01:16:19
bueno, aquí tenéis todo el formato de cómo 01:16:22
funciona, en esto no voy a 01:16:24
entrar porque no tiene mucho 01:16:26
interés, pero sí que lo que 01:16:28
tiene interés es que veáis que nosotros 01:16:30
tenemos varios bloques 01:16:32
y para acceder a esos bloques podemos 01:16:33
poner distintas contraseñas 01:16:36
contraseña de lectura y contraseña 01:16:38
de escritura y cada bloque puede 01:16:40
tener su propia contraseña 01:16:42
entonces tú puedes grabar mucha información 01:16:43
hasta un K en este caso 01:16:46
en una tarjeta y que solamente 01:16:48
las personas que tengan las contraseñas 01:16:50
oportunas puedan acceder 01:16:52
a distintas secciones 01:16:54
de esas tarjetas 01:16:55
de esa tarjeta 01:16:58
bueno, pues esto en cuanto al MiFar Classic 01:16:59
esto es lo que os decía 01:17:02
que el problema que había con estas tarjetas 01:17:03
es que usaban un algoritmo que se llama Crypto1 01:17:05
y ese empezaron a romperlo 01:17:07
en 2007 y luego ya directamente 01:17:09
lo rompieron del todo 01:17:11
con lo cual si tú tienes ahora mismo un ProSmart 3 01:17:13
un ProSmart 3 es un dispositivo 01:17:15
que se compra pues 01:17:17
no sé, por 40 o 50 euros 01:17:19
pues directamente esas tarjetas 01:17:21
las clonas sin más 01:17:23
entonces tú extraes directamente 01:17:24
las claves y por fuerza bruta 01:17:27
puedes sacar las contraseñas de escritura 01:17:29
y de 01:17:32
lectura 01:17:33
y esto es lo último que yo he sabido 01:17:35
sobre el problema 01:17:37
de las MiFlight Classic, que fue en septiembre 01:17:39
de 2024 01:17:41
que salió 01:17:42
otro ataque 01:17:45
con lo cual ya se considera muy 01:17:46
muy vulnerable, no se recomienda 01:17:49
el uso de estas tarjetas 01:17:51
la seguridad, pues bueno, lo que os decía 01:17:52
pues la seguridad va a depender del protocolo 01:17:55
que nosotros utilicemos 01:17:57
entonces aquí os he puesto una ST25 01:17:58
que es una de las tarjetas 01:18:01
más actuales que existen 01:18:03
y como veis pues tiene ahí todas las 01:18:04
pléitora de formas de seguridad 01:18:07
que se te pueda ocurrir, ¿vale? 01:18:09
Tiene un montón de ellas. 01:18:11
Pues nada. ¿Qué herramientas 01:18:13
tenemos para hacer nosotros research, 01:18:15
investigación de tarjetas NFC? 01:18:17
Pues el PROSMAR, ¿vale? Que el PROSMAR 01:18:19
es este de aquí, el de la derecha. 01:18:21
Este es un modelo muy nuevo 01:18:23
que es bastante caro, 01:18:24
pero el PROSMAR de código abierto, 01:18:27
el de hardware abierto, es bastante barato. 01:18:29
Son unos 40 euros o algo así. 01:18:31
Luego el Flipper 0, que es este 01:18:33
de la izquierda, que se ha puesto muy de moda, ¿vale? 01:18:35
Y como se ha puesto de moda, pues se ha disparado el precio. 01:18:37
Al principio no sé lo que costaba. 01:18:40
Me parece que eran, no sé si 70, 80 euros. 01:18:42
Y ahora no lo sé. 01:18:45
Anda por ahí por 200 euros o algo así, ¿vale? 01:18:46
Y luego tenemos la Capybara 0, que es un Flipper 0, pero de hardware abierto. 01:18:49
Es esto que veis aquí, que te lo construyes tú mismo, ¿vale? 01:18:54
Entonces, ¿qué tiene? 01:18:58
Pues tiene un SP32 principalmente. 01:18:59
Tiene un módulo RFID que estáis viendo aquí, un lector de tarjetas. 01:19:02
y luego tienen también un módulo que puede ser 01:19:05
un módulo Lora, como el que tiene este 01:19:07
en este caso 01:19:09
bueno 01:19:10
en esto 01:19:11
no voy a entrar, básicamente 01:19:15
creo que entendéis como funciona 01:19:17
cuando vosotros pagáis con la tarjeta 01:19:19
lo que ocurre es que se genera un número 01:19:21
y ese número 01:19:23
está en vuestro banco, entonces el datáfono 01:19:24
contacta también con vuestro banco 01:19:27
para ver que el número es el mismo 01:19:29
que el número que le ha dado a tu tarjeta 01:19:30
es el mismo número que está viendo el datáfono 01:19:33
y así tiene la certeza de que no es 01:19:35
alguien haciéndose pasar por vosotros 01:19:37
entonces lo que tenemos ahora mismo 01:19:39
son dos tipos de tarjetas 01:19:41
voy a ver si ha terminado ya Arduino de compilar lo otro 01:19:42
vale, sí, parece que ha terminado de 01:19:45
compilar, de tal forma 01:19:47
vuelvo ahora, ahora estoy volviendo a lo de 01:19:48
MFC, vale 01:19:50
entonces me dice, veis que ya está 01:19:52
comisionado y listo para utilizar 01:19:54
entonces voy a ver si lo tengo aquí 01:19:57
voy a ver si tengo aquí 01:19:59
el dispositivo 01:20:04
A ver, sería en Alexa. Alexa. En este caso, como ya está comisionado, no sé si lo habré borrado, espero que no. A ver si lo tengo del otro día. Sería el segundo dispositivo. No, no sé. No, pues no lo tengo. No lo tengo. 01:20:05
vale, pues entonces 01:20:35
otro problema más, tendría que descomisionarlo 01:20:38
¿cómo lo descomisiono? 01:20:40
pues es un poco complicado 01:20:42
entonces, hay dos formas de descomisionar 01:20:44
una es en los propios ejemplos 01:20:47
de Matter 01:20:48
que viene un ejemplo para 01:20:49
decomisionar, a ver si lo veo 01:20:52
comision, comision, comision 01:20:54
comision 01:20:57
o lo tendrán aquí a lo mejor 01:20:57
en el propio de comisionado 01:21:04
si mantengo el botón pulsado 01:21:06
a ver, voy a ver cuál es el botón 01:21:09
parece que está aquí en el mismo código 01:21:10
no sé si estáis viendo mi pantalla 01:21:13
dice que si mantengo el botón pulsado 01:21:14
por más de 5 segundos 01:21:16
que entrará en modo de comisionado 01:21:18
entonces voy a intentar pulsarlo 01:21:20
más de 5 segundos 01:21:22
suelto 01:21:23
y que me dice 01:21:31
me dice que no está comisionado 01:21:34
vale, menos mal 01:21:38
pues por aquí vamos bien 01:21:39
me dice que está esperando a comisionarse 01:21:40
vale, entonces yo ahora 01:21:43
a Alexa le digo que quiero añadir 01:21:44
un dispositivo 01:21:47
de tipo 8 01:21:48
de tipo Matter 01:21:50
si tiene la etiqueta 01:21:52
le digo que sí 01:21:55
si está conectado le digo que sí 01:21:56
vale 01:21:58
y ahora 01:21:59
me dice que 01:22:01
si quiero escanear el código QR 01:22:04
entonces no sé por qué 01:22:07
no estoy viendo aquí el código QR 01:22:09
que está aquí arriba, el código QR 01:22:11
es este, vale, a ver si para 01:22:15
esto lo voy a parar, para poder 01:22:17
coger el código QR, es esta dirección 01:22:19
entonces eso lo abro 01:22:21
en una página web cualquiera 01:22:25
y directamente lo que voy a hacer con mi 01:22:27
teléfono móvil, lo recojo 01:22:33
extraño el código QR 01:22:34
ahora está buscando el dispositivo 01:22:36
¿quieres 01:22:39
configurar el dispositivo? sí 01:22:45
estableciendo conexión 01:22:47
con el dispositivo 01:22:49
recordad que ahora ya no estoy 01:22:49
usando Thread, ahora estoy 01:22:53
usando Wifi 01:22:54
con IPv6 y luego 01:22:56
me dice ahí salta tercera luz 01:22:58
le digo vale, pues actualizar nombre 01:23:00
tercera luz, me parece bien 01:23:02
aquí me dice que si lo quiero añadir al salón 01:23:04
a la cocina, le digo que omitir de momento 01:23:06
para no perder más tiempo y veis 01:23:08
ya estamos listos para poder utilizarlo 01:23:10
entonces si por ejemplo yo lo traigo 01:23:12
para acá, a ver donde se ha ido 01:23:14
y le digo 01:23:16
no sé si lo estáis viendo en la webcam 01:23:22
Alexa, apaga tercera luz 01:23:24
Alexa, enciende 01:23:27
tercera luz 01:23:33
¿veis? cuando le digo que enciende 01:23:33
apaga, y sin embargo cuando le digo 01:23:36
Alexa, apaga tercera luz 01:23:38
Alexa, apaga tercera luz 01:23:40
lo enciende 01:23:46
¿vale? ¿por qué? porque está en lógica inversa 01:23:47
el LED, ¿vale? por eso 01:23:50
bien 01:23:51
vale, pues entonces ya hemos visto todo lo de Matter 01:23:54
ya cierro esto 01:23:57
y sigo con NFC 01:23:58
seguimos con NFC 01:24:01
y ahora mismo hay dos 01:24:10
tipos de tags 01:24:17
los tags tácticos y los tags dinámicos 01:24:19
los tags tácticos 01:24:21
¿cuáles son? pues la tarjeta que os he enseñado antes 01:24:23
¿vale? es una tarjeta 01:24:25
es un tag en la que almacenamos 01:24:27
una información, pero esa información 01:24:29
para almacenarla hace falta 01:24:31
un lector escritor, hace falta el teléfono móvil 01:24:33
pues como habéis visto antes 01:24:35
que he guardado la dirección 01:24:36
de Duca Madrid 01:24:37
ahí 01:24:38
vale 01:24:39
pues necesitas un dispositivo 01:24:39
pero ahora lo bueno 01:24:41
es que tenemos 01:24:42
tarjetas dinámicas 01:24:43
estas de aquí a la derecha 01:24:44
vale 01:24:46
estas son por ejemplo 01:24:46
la ST25 01:24:47
que es la que hemos puesto 01:24:48
nosotros en la placa 01:24:49
entonces lo interesante 01:24:50
de estas tarjetas 01:24:51
es que yo 01:24:52
desde un microcontrolador 01:24:53
les puedo poner 01:24:54
la información 01:24:55
que quiero que transmitan 01:24:56
entonces 01:24:58
imaginaos que yo tengo 01:24:58
un microcontrolador 01:24:59
con un sensor de temperatura 01:25:00
pero que no le quiero poner 01:25:01
una pantalla 01:25:03
porque es muy cara 01:25:04
o porque temo que me la puedan vandalizar 01:25:04
o por el motivo que sea, ¿vale? 01:25:07
Tengo el sensor de temperatura, pero no tengo pantalla. 01:25:08
Entonces, ¿cómo puede leer el usuario la pantalla? 01:25:12
Pues directamente con su teléfono móvil 01:25:14
lo acerca al microcontrolador y lee la temperatura, ¿vale? 01:25:16
¿Por qué? 01:25:20
Porque la temperatura la está escribiendo el microcontrolador 01:25:20
en la memoria EEPROM de la tarjeta NFC, 01:25:24
que es lo que estáis viendo aquí, ¿vale? 01:25:28
Bueno, pues eso es lo que tenemos respecto a tarjetas estáticas y tarjetas dinámicas. 01:25:30
Bueno, luego hay una diferencia entre lectores y controladores, ¿vale? 01:25:39
La principal diferencia es que el lector solamente envía y recibe datos, es decir, sirve para leer y escribir. 01:25:46
Y un controlador es un dispositivo más caro, ¿vale? 01:25:53
Es un dispositivo que ya puede ejecutar algoritmos, por ejemplo, de anticolisión. 01:25:55
entonces, siempre 01:25:59
que podamos, pues usaremos 01:26:01
un controller 01:26:03
¿vale? ¿por qué? 01:26:04
porque toda la 01:26:07
funcionalidad 01:26:09
está en el propio hardware del controller 01:26:10
¿vale? por ejemplo, la anticolisión 01:26:13
está en el controller 01:26:14
¿vale? sin embargo, si yo utilizo un lector 01:26:16
el lector apenas tiene 01:26:19
capacidad por hardware 01:26:21
¿vale? todo esto lo voy a tener que implementar 01:26:23
por software, y eso va a ser 01:26:25
complicado 01:26:26
claro, entonces en la medida de lo posible 01:26:28
nosotros compraremos controladores 01:26:30
¿qué es un controlador? pues por ejemplo 01:26:32
el ST25 01:26:34
existe en formato de controlador, yo podría 01:26:35
comprarme un ST25 01:26:38
controlador, vale, bueno 01:26:40
pues aquí tenía dos ejercicios, voy a hacer 01:26:42
solamente uno de ellos para ganar tiempo 01:26:44
tenía uno, que lo tenéis 01:26:46
aquí en la presentación, es interesante 01:26:48
es con el PN532 01:26:50
que esto es un 01:26:52
esto es un 01:26:53
un reader 01:26:55
que son muy económicos 01:26:56
no sé lo que costarán 01:27:00
no quiero meter la pata 01:27:01
pero apostaría que no cuestan más de 5 euros 01:27:03
pues con esto podéis leer 01:27:05
y escribir tarjetas 01:27:07
NFC mediante un Arduino 01:27:09
entonces la librería está aquí 01:27:11
y bueno, aquí tenéis un ejemplo 01:27:13
que simplemente lo que hace 01:27:15
es encender y apagar un LED 01:27:16
con una tarjeta, acercas la tarjeta 01:27:19
se enciende, acercas otra tarjeta 01:27:21
distinta y se apaga 01:27:23
pues esto por ejemplo estuvo de moda un tiempo 01:27:24
para la música, acercabas una tarjeta 01:27:26
y sonaba una canción, acercabas otra tarjeta 01:27:28
y sonaba otra canción distinta 01:27:31
¿vale? el ejemplo que yo voy a hacer 01:27:33
es este, que es un poquito más avanzado 01:27:35
que es con la ST25 01:27:36
la ST25 es esta 01:27:38
este controlador que os digo 01:27:40
de STM 01:27:43
que ya es NFC 01:27:45
tipo 5 y que 01:27:46
lo interesante que tiene es que lleva 01:27:48
dos interfaces, ¿vale? 01:27:50
tiene por un lado la interfaz de radio 01:27:52
NFC y por otro lado una interfaz 01:27:54
I2C mediante la que yo puedo 01:27:56
controlarlo mediante cualquier microcontrolador 01:27:58
yo lo voy a hacer aquí con un SP32 01:28:00
pero podría ser perfectamente 01:28:02
un Arduino normal 01:28:04
y corriente ¿vale? 01:28:06
entonces aquí os he puesto una 01:28:08
tarjeta de evaluación 01:28:10
para que veáis lo que vienen estas 01:28:11
tarjetas de evaluación 01:28:14
del ST25 ¿vale? 01:28:15
del ST25 perdón 01:28:18
aparte del ST25 01:28:19
trae el regulador de tensión 01:28:21
porque puede funcionar con batería o sin batería 01:28:24
bueno, se ve aquí, está para la batería de tipo botón 01:28:27
tiene un secure element para comunicaciones seguras 01:28:30
un reloj de tiempo real, dos botones 01:28:33
un segundo microcontrolador 01:28:36
un acelerómetro, otro acelerómetro 01:28:39
un giróscopo, un sensor de luz ambiental 01:28:41
un sensor de temperatura por contacto 01:28:44
y un sensor de presión ambiental 01:28:48
Vale, pues lo más interesante de todo eso es que puede funcionar incluso sin batería. ¿Cómo? Pues fijaos, aquí está la antena en esta tarjeta, pues la antena es capaz de que aunque esto no tenga batería, extraer energía suficiente del campo que genera el lector para con esa energía alimentar el microcontrolador STM que va a leer los sensores y va a escribir la lectura de esos sensores en el ST25. 01:28:51
De tal forma que el lector, el móvil en este caso, lo va a poder leer por NFC, ¿vale? Pues esto es para que veáis a qué nivel está esto de NFC, ¿vale? Que ya podemos hacer Energy Harvesting ya no sólo para las propias comunicaciones, sino incluso para alimentar terceros sensores, ¿vale? Para alimentar estos sensores y poder enviar esos datos por NFC. 01:29:18
bueno, entonces 01:29:42
la tarjeta que yo me han dado fabricar 01:29:44
es una tarjeta que es muy sencilla 01:29:47
de fabricar porque 01:29:49
no tengo que hacer la antena 01:29:51
lo problemático de estas tarjetas 01:29:53
es el diseño de la antena 01:29:55
porque el diseño de la antena depende de un montón de factores 01:29:56
depende del tipo de 01:29:59
fibra de vidrio, depende del grosor 01:30:01
de la placa, depende de todos 01:30:03
los componentes que haya por aquí en medio 01:30:05
que pueden interferir 01:30:07
entonces para evitar eso, yo lo que he usado 01:30:08
es utilizar una antena externa ¿vale? ¿qué antena externa? pues estoy usando directamente una bobina 01:30:11
estoy usando una bobina de este estilo como antena ¿vale? entonces en el datasheet del ST25 01:30:18
te dice que tú puedes poner aquí una bobina y que luego le tienes que poner aquí un condensador 01:30:26
en paralelo para conseguir que la capacidad equivalente sean 28,5 picofaradios. 01:30:33
Bueno, pues de la fórmula de los inductores capacitores, que es esta que veis aquí, 01:30:41
pues se obtiene que para una frecuencia de 13,56 MHz, la frecuencia que yo necesito, 01:30:47
la capacidad que tengo es 4,83 microfaradios. 01:30:57
Bueno, pues nada. No, perdón. Microendrios. Esto está mal, ¿vale? Aquí he puesto microfaradios. Esto es microendrios. Lo voy a corregir ahora mismo. Microendrios. Eso es. Bien. 01:31:03
vale, bueno, pues aquí 01:31:20
de la forma 01:31:28
se obtiene una inductancia de 4,83 01:31:29
microfaradios, vale, lo he puesto mal todas las unidades 01:31:32
luego lo corregiré, bien, entonces 01:31:34
lo que ocurre es que tú tienes que elegir 01:31:36
qué condensador vas a poner aquí 01:31:37
y el condensador que vamos a poner 01:31:39
haciendo los cálculos, pues te sale 01:31:41
que hay que poner un condensador de 0,8 01:31:44
picofaradios, vale, ¿por qué? 01:31:46
porque la bobina de 01:31:48
4,7 microhenrios 01:31:49
resulta que tiene una capacidad 01:31:52
de 29,3 picofaradios 01:31:54
como yo necesitaba 28,5 01:31:56
lo que tengo que hacer es 01:31:58
recordad que 01:31:59
puestos en serie los condensadores se suman 01:32:01
lo que tengo que poner es el de 01:32:04
28,5, ¿cuánto me falta? 01:32:06
0,8 picofaradios 01:32:08
por eso hay que poner ahí uno de 0,8 01:32:09
picofaradios 01:32:12
dicho esto, pues aquí tenéis la bobina 01:32:13
¿vale? veis que usar este sistema 01:32:16
es un poco caro, porque lo que 01:32:18
es caro aquí es precisamente la antena 01:32:20
la antena esta de Word 01:32:22
que si yo me hiciera la antena en el circuito impreso 01:32:23
pues me salía gratis 01:32:26
pero claro, me va a tocar hacer probablemente 01:32:27
dos o tres iteraciones 01:32:30
hasta que sintonice bien la antena 01:32:31
mientras que de esta forma 01:32:34
aquí está bien puesto 01:32:35
el 4.7 micro androids 01:32:38
lo tengo correctamente 01:32:39
correctamente sintonizado 01:32:41
entonces lo que he hecho es simplemente 01:32:43
una tarjeta 01:32:45
con keycard, pues lo que he hecho es 01:32:47
directamente aquí se ve 01:32:49
es poner el ST25, el condensador de 0,8 picofaradios y esa bobina de 4,7 microhenrios. 01:32:52
Y por el otro lado tengo el puerto I2C, ¿vale? Tengo el puerto I2C y lo que voy a hacer, que lo tengo aquí preparado todo, 01:33:00
no sé ni cómo os lo voy a enseñar, a ver si puedo llevarlo para allá para que lo veáis, si se ve, porque tengo un montón de cosas aquí colgando. 01:33:08
bueno, no sé si se verá algo 01:33:20
pero aquí tengo el SP32 01:33:22
aquí tengo precisamente lo que os estoy enseñando 01:33:24
el ST25 y la antena está de WURF 01:33:29
ahí no se verá pero en medio está el condensador 01:33:32
de 0,8 pF y esto está conectado 01:33:35
por I2C al SP32 01:33:38
eso quiere decir que desde el SP32 01:33:41
yo ahora mismo podría controlar este chip 01:33:43
NFC para mostrar la información que yo quisiera 01:33:47
a través de él, ¿vale? De hecho, fijaos, ahora mismo no está 01:33:50
alimentado y yo podría leerlo con mi teléfono 01:33:53
móvil. Lo voy a intentar. A ver, voy a coger el teléfono 01:33:56
móvil y hay una aplicación 01:33:59
precisamente de ST que es para el ST25 01:34:04
¿Vale? Es esta aplicación, no sé si se verá, la ST25 01:34:07
¿Vale? Y voy a intentar leer la 01:34:10
etiqueta. ¿Veis que pone? Por favor, tab 01:34:13
de NFC. Haga tab sobre el NFC. 01:34:16
entonces yo sé que la antena de mi móvil más o menos 01:34:19
está por esta zona, entonces 01:34:21
voy a acercar la antena ahí 01:34:23
y veis que ya la ha leído, no sé si estaréis 01:34:24
viendo algo, la ha leído 01:34:28
y si ahora voy a NDEF, recordad 01:34:30
los registros NDEF que hemos visto antes 01:34:33
para guardar la dirección de Duca Madrid 01:34:34
pues también sirven para guardar un texto 01:34:36
veis aquí tengo un registro de tipo 01:34:39
texto y si entro a ver ese registro 01:34:40
que me dice que la temperatura 01:34:42
es 24,95 01:34:44
lo que estoy leyendo es el 01:34:46
valor de 01:34:48
la última medición que se hizo con 01:34:49
este sensor de temperatura y humedad morado 01:34:52
que tengo aquí, que tampoco sé si veréis, espero 01:34:54
que sí, que es un HTU 01:34:56
21D. Entonces, este 01:34:58
sensor lo tengo 01:35:00
también conectado por I2C al 01:35:02
SP32. Es decir, lo que yo tengo aquí 01:35:04
es un SP32 01:35:06
que está conectado por I2C a un sensor 01:35:07
de temperatura y humedad. Va a leer 01:35:10
el valor de la temperatura y la 01:35:13
humedad y ese valor lo va a escribir 01:35:14
no en una pantalla, sino que lo va a escribir en el chip 01:35:17
NFC, de tal forma que nosotros vamos a poder 01:35:20
leerlo directamente con nuestro teléfono móvil 01:35:22
sin necesidad de pantalla 01:35:25
dicho esto, vamos a hacer la demostración 01:35:26
a ver si funciona, tengo por aquí un cable 01:35:32
voy a desconectar ya el equipo Matter 01:35:35
que con eso ya hemos terminado 01:35:38
y ahora voy a conectar el SP32 01:35:40
bueno, no lo voy a conectar todavía 01:35:46
voy a contaros primero un poquito 01:35:50
sobre el software 01:35:52
y luego lo cuento 01:35:53
la tarjeta ST25 como os decía 01:35:55
al principio tiene 8K de memoria 01:35:58
tiene 4 áreas de memoria 01:36:00
el área 1 01:36:02
siempre es legible 01:36:03
y las áreas del 2 al 4 01:36:05
se pueden proteger en lectura 01:36:08
y o escritura, pero el área 1 01:36:10
siempre tiene que ser legible, es obligatorio 01:36:12
y para utilizar 01:36:14
estas etiquetas se recomienda utilizar 01:36:16
la aplicación esta que yo os estaba enseñando 01:36:18
la de ST25 porque funciona un poco mejor 01:36:19
que el NFC Tools que os he enseñado antes 01:36:22
entonces afortunadamente para usar esta etiqueta 01:36:25
como para utilizar cualquier otro circuito integrado 01:36:28
hoy por hoy pues existe una biblioteca 01:36:31
esa biblioteca la ha hecho Sparfan, es esta que veis aquí 01:36:34
entonces me ofrece dos clases 01:36:37
una primera clase que es para leer y escribir en la memoria EEPROM 01:36:39
y otra que es para crear esos registros 01:36:43
NDF, las URLs 01:36:46
los textos, los 01:36:49
Hangover Wifi, lo que sea 01:36:50
entonces, ¿cómo se utiliza esto? 01:36:52
pues muy sencillo, tú pones 01:36:55
Tag Begging y dices que quieres 01:36:56
utilizar esa etiqueta por I2C 01:36:58
Wire quiere decir I2C 01:37:01
¿vale? y luego por ejemplo 01:37:03
que quiero obtener el identificador 01:37:04
único de la tarjeta, pues pongo 01:37:07
Get Device UID, ¿vale? 01:37:08
que quiero leer una versión de la memoria 01:37:10
Recepron, la dirección que 01:37:12
quiero leer, pues aquí por ejemplo estaría leyendo 01:37:14
16, estoy leyendo porque 01:37:16
pongo aquí tag read, leer 01:37:19
16 bytes 01:37:21
a partir de la posición 0 01:37:22
hay otra rata, he puesto bytes con i 01:37:24
y dejamos 01:37:27
¿cómo se escribe? 01:37:28
tenías URI puesto en el URL me parece 01:37:35
si, es que es URI 01:37:37
es el localizador 01:37:39
de sitios web 01:37:41
y URI es el localizador genérico 01:37:43
genérico, perdón 01:37:46
ah, para escribir 01:37:47
Pues igual, ¿vale? Para escribir, pues ya te lo puedes imaginar. En vez de readEpron, writeEpron. Pues aquí estoy escribiendo 16 bytes a partir de la posición 0, ¿vale? ¿Qué estoy escribiendo? Lo que yo tenga en el array tagWrite, ¿vale? Igual aquí yo había creado un array tagRead que lo había creado vacío, todo con ceros, ¿vale? Y después de ejecutar este método, pues me lo va a leer y ya está, ¿vale? 01:37:51
Entonces, para poder utilizar los métodos NDF, ¿vale? Estos que os he mostrado aquí son simplemente para escribir y leer en bruto, ¿vale? Son para escribir y leer una memoria EEPROM. Ahí lo que hacemos es escribir bytes, sin más. 01:38:14
Pero si yo lo que quiero es leer y escribir registros NDF, lo que tengo que hacer es crear un objeto de esta clase que estáis viendo aquí, ¿vale? Aparte del tag, que es lo que hemos creado aquí, ¿vale? Esta tag, pues aparte de ese tag, voy a crearme la tag como un objeto de la clase NDF, ¿vale? 01:38:29
Y para poder utilizar NDF, lo primero que tenemos que escribir aquí en bruto, lo que tendríamos que escribir es un paquete que puede ser de 8 o de 4 bytes que se llama el Capability Container. Eso es obligatorio. Si no escribes esto, no va a ser reconocida la tarjeta como una tarjeta NDF. ¿Eso cómo se escribe? Pues tan simple como este comando, tag brightcc file 8 byte. 01:38:51
Y una vez que ya tengamos eso escrito, solo hay que escribirlo una vez, ya puedes crear todos los registros que tú quieras y del tipo que tú quieras. Pero claro, le tienes que decir en qué posición de memoria lo quieres guardar. Tened en cuenta que una tarjeta NFC, lo repito ya por tercera o cuarta vez, es simplemente una memoria EEPROM. 01:39:14
Entonces, si yo, por ejemplo, le digo, oye, quiero escribir un registro NDF de tipo URI, ¿vale? Que tenga este contenido, ¿vale? Aquí le estoy diciendo el tipo, que es HTTPS World Wide Web. 01:39:31
pero luego le tengo que decir 01:39:48
en qué posición de memoria 01:39:49
lo quiero guardar 01:39:51
¿y en qué posición de memoria tiene que ir? 01:39:53
pues tiene que ir justo 01:39:55
a continuación del capability container 01:39:56
entonces yo para obtener esa posición 01:39:59
de memoria lo que hago es 01:40:01
llamar a este método que tenéis aquí 01:40:03
que ese método me da la posición 01:40:05
de memoria inmediatamente posterior 01:40:07
al capability container 01:40:09
pues eso lo tengo ya almacenado en la variable 01:40:11
memory location y directamente 01:40:13
se la paso al método write 01:40:15
de esta forma ya habré escrito 01:40:17
este primer registro 01:40:20
y fijaos que interesante, aquí le tengo que decir 01:40:21
que es el comienzo del mensaje 01:40:24
pero no es el final del mensaje 01:40:26
veis un true y un false 01:40:28
imaginaos que yo quiero escribir 01:40:30
ahora un segundo registro 01:40:32
en este segundo registro también es de tipo URI 01:40:33
pues igual, toda la primera parte igual 01:40:36
pero ahora llego aquí a memory location 01:40:38
y diría, cuidado 01:40:40
aquí tienes que poner el memory location 01:40:42
original más el tamaño 01:40:44
de este MemoryLocation que ya has ocupado 01:40:46
con Sparkfun.com 01:40:48
pues no te tienes que preocupar 01:40:50
porque precisamente el método write ya se preocupa 01:40:52
por ti de eso y él solo va a actualizar 01:40:54
en la variable MemoryLocation 01:40:57
la siguiente posición 01:40:58
entonces no tienes que hacer nada 01:41:00
tú puedes escribir aquí lo que te dé la gana 01:41:01
y él va haciendo una contabilidad interna 01:41:03
para ir manteniendo MemoryLocation 01:41:06
siempre en el siguiente byte 01:41:08
en el que puedes escribir 01:41:11
en este caso, como luego voy a escribir 01:41:12
un tercero registro, veis que aquí 01:41:14
le digo que no es el principio 01:41:16
del mensaje, ni es el 01:41:18
final del mensaje, y luego 01:41:20
ya cuando hago el tercero, en este 01:41:22
caso sí le digo que no es el principio 01:41:24
del mensaje, pero que sí 01:41:27
que es el final de un mensaje 01:41:28
¿vale? bueno, pues 01:41:30
este sería el sistema 01:41:32
que tendríamos para 01:41:34
escribir un registro, aquí veis 01:41:35
un ejemplo más claro, ¿vale? simplemente 01:41:38
grabo el capability container 01:41:40
y averiguo en qué posición de memoria ha terminado 01:41:42
y a continuación escribo 01:41:46
un mensaje en esa posición 01:41:48
diciéndole que es un principio de mensaje pero que no es 01:41:51
un final de mensaje, true, false, y luego 01:41:54
escribo unos segundos, en este caso son de texto, no de URI 01:41:57
como antes, y en este caso le digo que no es 01:42:00
un principio de mensaje pero sí es un final de mensaje 01:42:04
así de fácil, y si yo quisiera leer un registro 01:42:06
en vez de escribirlo, pues nada, le digo 01:42:09
que quiero leer un registro 01:42:12
¿cuántos bytes 01:42:14
tiene ese registro? 01:42:16
y así de sencillo 01:42:18
pues aquí está el código 01:42:19
lo que voy a hacer es este código 01:42:21
lo voy a meter en Arduino y vamos a ver cómo funciona 01:42:23
me acerco un poco al código para que veáis 01:42:26
que no tiene nada excepcional 01:42:28
aquí lo que, de hecho es un código sacado 01:42:29
de los ejemplos, como siempre 01:42:32
lo he modificado un poco para poder leer 01:42:34
el sensor 01:42:36
HTU21D de temperatura y humedad 01:42:37
pero es un ejemplo sencillo 01:42:40
Aquí lo que hago es añadir la librería. Como ya os adelantaba, creo TAG como un objeto de la clase NDF para poder crear registros NDF. Esta es la dirección de esclavo del sensor de temperatura y humedad, del HTU21D. Luego lo que hago aquí dentro es simplemente arrancar el puerto serie y comprobar si el SP32 tiene conexión con el ST25. 01:42:42
si no la tiene, se queda ahí ya parado para siempre 01:43:10
¿vale? pero si la tiene 01:43:13
lo primero que hace, como veis aquí 01:43:14
es escribir el capability container 01:43:17
¿vale? ya lo tengo escrito 01:43:19
y luego, cuando llegamos al loop 01:43:21
bueno, pues lo primero que hace 01:43:23
cuando llegamos al loop 01:43:25
es resetear el 01:43:26
HTU21D, ¿vale? lo reseteo 01:43:29
lo hago un reseteo suave 01:43:31
luego ya que lo he reseteado 01:43:32
lo que hago es 01:43:35
iniciar la medición de la temperatura 01:43:36
que es con este comando, ¿vale? 01:43:38
A ese, mandamos este comando a esa dirección de esclavo y él va a empezar a medir la temperatura. Y luego lo que hago es que realizo hasta 10 intentos para medir la temperatura. ¿Esto por qué es? Porque me puede dar algún fallo, a lo mejor en la lectura o lo que sea, ¿vale? 01:43:40
Entonces veis que le digo aquí, mientras que no haya conseguido una recepción correcta y siempre que el contador sea menor que 10, pues estoy leyendo las temperaturas que me está mandando el HTU21D. 01:43:58
El HTU21D utiliza su propio formato, que son 3 bytes, ¿vale? Y para extraer la temperatura tienes que usar esta fórmula que veis aquí tan rarísima, ¿vale? 01:44:15
pues esta fórmula ¿de dónde ha salido? 01:44:24
de la hoja de datos del HTU21D 01:44:26
¿vale? no tiene más misterio 01:44:28
esto es lo que os decía en una de las primeras clases 01:44:30
que todos los sensores son analógicos 01:44:32
y normalmente pues nos van a dar 01:44:35
una resistencia o nos van a dar una 01:44:37
tensión o nos van a dar una corriente 01:44:38
pues para pasar de esa resistencia 01:44:40
esa tensión o esa corriente 01:44:42
al valor, a la magnitud que nosotros nos 01:44:44
interesa medir, en este caso una temperatura 01:44:46
vamos a tener que utilizar pues típicamente 01:44:48
un polinomio de ajuste o bien una tabla 01:44:50
en este caso es esta fórmula 01:44:53
que es una fórmula sencilla 01:44:54
pues simplemente con los 3 bytes que hemos leído 01:44:55
calculamos la temperatura 01:44:59
pues ya tenemos la temperatura 01:45:00
y una vez que hemos medido la temperatura 01:45:02
lo que hacemos es que 01:45:04
esa temperatura la escribimos 01:45:06
como un registro NDF 01:45:09
en el ST25 01:45:10
que es justo lo que estoy haciendo aquí 01:45:12
veis que aquí le estoy diciendo que quiero escribir 01:45:14
en el NDF 01:45:16
un texto 01:45:18
en este caso 01:45:21
¿qué texto? pues el mensaje que he construido 01:45:22
aquí arriba, la temperatura 01:45:24
con su parte entera y su parte 01:45:26
decimal, y le digo que es 01:45:28
un inicio de mensaje y un final de mensaje 01:45:29
porque no voy a añadir aquí nada más 01:45:32
¿vale? pues una vez visto el código 01:45:34
lo voy a 01:45:36
lo tenía ya preparado por aquí 01:45:38
para no perder tiempo 01:45:40
¿vale? lo tengo aquí 01:45:41
lo copio 01:45:44
me voy a Arduino 01:45:45
archivo 01:45:47
nuevo sketch 01:45:55
voy ya conectando el SP32 01:45:57
a ver, perdonadme 01:46:00
pero cada vez que conecto algo 01:46:22
me parece que se desconecta la webcam 01:46:24
o algo así, no sé qué está pasando 01:46:26
no sé si 01:46:28
ahora me estáis viendo o no 01:46:30
sí, creo que ahora sí, vale, justo 01:46:32
bien, pues entonces 01:46:34
pego aquí el código 01:46:36
veis que me ha metido aquí unos caracteres 01:46:37
raros, los voy a quitar 01:46:44
y los voy a reemplazar por nada 01:46:45
reemplazar 01:46:55
vale, ya está 01:46:57
vale, es el mismo código que habéis visto ahí 01:47:00
exactamente igual 01:47:03
y lo que voy a hacer es cargarlo 01:47:04
para ello le tengo que decir en qué puerto 01:47:06
que está en el puerto 24, correcto 01:47:08
lo cargo 01:47:10
y ahora estamos metiendo ese programa en el SP32 01:47:11
con lo cual el SP32 01:47:15
va a leer 01:47:16
cada cuánto tiempo lo he puesto 01:47:18
cada 60 segundos, cada minuto 01:47:20
va a leer el sensor de temperatura 01:47:23
HTU21D 01:47:25
Y la temperatura, en vez de mostrármela por una pantalla, me la va a mostrar por el monitor serie y la va a grabar también en la etiqueta ST25, con lo cual yo voy a poder ir a la etiqueta ST25 con mi teléfono móvil y leer la temperatura de este sensor. 01:47:26
Como veis, eso es muy potente. La posibilidad de hacer esto supone de pronto que tú puedes tener información que cualquiera puede leer con su teléfono móvil o incluso información que solamente puede leer con su teléfono móvil quien conoce las contraseñas de esa etiqueta ST25. 01:47:41
¿vale? Vamos a ver 01:48:00
Perdón, ahora que lo mencionas, pero cuando 01:48:03
tienes contraseña, ¿cómo funciona eso? 01:48:06
Tú lees del teléfono y luego en el teléfono 01:48:08
tú metes ahí una contraseña y con la contraseña 01:48:10
esa decodifica la información 01:48:12
¿o cómo lo haces? Exacto, tú 01:48:14
en tu teléfono móvil le tienes que 01:48:16
dar a la aplicación cuál es la contraseña de 01:48:18
esa tarjeta, entonces cuando 01:48:20
el teléfono móvil se conecta a la tarjeta 01:48:22
le envía la contraseña 01:48:24
¿vale? No se descifra 01:48:25
a posteriori, no se desencrista a posteriori 01:48:28
directamente para acceder a la 01:48:30
información, el teléfono móvil tiene que pasar la contraseña. 01:48:32
Si no, en la tarjeta no 01:48:35
se va a dejar leer. O peor, 01:48:35
se puede dejar leer y mandarte información 01:48:38
ofuscada, ¿vale? Información que no tiene 01:48:40
nada que ver. 01:48:42
Vale. Gracias. 01:48:43
A ver si este 01:48:47
debería tardar menos porque es un ejemplo 01:48:48
más sencillo. 01:48:50
Y otra cosa, mientras compila 01:48:52
eso. Has dicho que 01:48:54
esto es una Apple, ¿no? 01:48:56
Pero también has hablado de que 01:48:57
has enseñado ahí un modelo 01:48:59
en el que la antena era capaz de alimentar también un microchip, ¿no? 01:49:02
Que llevaba, ¿no? 01:49:08
O sea, que en el modelo puede haber dos cosas, ¿no? 01:49:09
La EEPROM y el microchip, ¿no? 01:49:12
No, no. 01:49:14
El ST25 es este, ¿vale? 01:49:15
Sí. 01:49:17
Pues el ST25 es una EEPROM. 01:49:18
Pero claro, además lleva la conexión a la antena, ¿vale? 01:49:22
Entonces, lo que hace el ST25 es que él recolecta energía a través de la antena 01:49:25
y la que le sobra 01:49:30
la pone a disposición a través 01:49:32
de un pin del microcontrolador 01:49:34
principal de esta placa, que es este otro 01:49:36
de aquí, creo que no sería mi puntero ahora 01:49:38
es el que tengo más o menos centrado ahora 01:49:40
¿vale? 01:49:42
entonces lo que está haciendo es que 01:49:44
la energía que a ella le sobra, que al ST25 01:49:46
se la pasa al resto del 01:49:48
circuito, a ver 01:49:50
esto no 01:49:52
no os engaño ¿vale? 01:49:53
la demostración que hace STM en el 01:49:56
webinario no funciona 01:49:58
como un móvil, al final tienen que usar un lector profesional 01:50:00
que manda bastante más energía que el móvil para poder alimentar 01:50:03
todo este circuito, pero bueno 01:50:06
es una opción que está ahí interesante 01:50:09
y lo que has dicho ahí de la tarjeta bancaria 01:50:10
que cuando la acercas ahí al 01:50:14
datáfono y envía ahí unas contraseñas 01:50:16
perdona, que envía un número 01:50:21
al banco 01:50:24
pero ese número que es una lista 01:50:24
que lleva ahí grabada la tarjeta 01:50:30
o le da 01:50:31
algo para que el datáfono genere 01:50:33
ese número en su nombre o como 01:50:35
Mira, tú 01:50:37
Es pasivo, ¿no? Lo que lleva la tarjeta 01:50:39
lo que lleva 01:50:42
la tarjeta, la visa 01:50:43
eso es también, hay una cosa pasiva, ¿no? 01:50:45
te entiendo, Germán, lo que quieres decir con pasivo 01:50:49
Si quieres yo te cuento 01:50:51
Que es una EPROM, que eso lo puedes leer, ¿no? 01:50:52
No, no, no, es más complicado que eso 01:50:55
Tú, por ejemplo, cuando has metido la tarjeta en tu teléfono móvil, te has tenido que instalar una aplicación de pago. 01:50:57
Al instalarte esa aplicación de pago, tú has dado de alta tu tarjeta, que tiene un número, el número que sea. 01:51:03
Sí, no digo de la tarjeta metida en el móvil, yo te hablo de la tarjeta física que acercas al dataflow, la visa física. 01:51:09
¿Me estás hablando en este caso de skimming? 01:51:20
no sé, no sé 01:51:22
en general el funcionamiento 01:51:24
tú de la tarjeta visa física 01:51:26
01:51:28
esa la acercas al datáfono, ¿no? 01:51:29
sí, para pagar 01:51:32
sí, y ahí 01:51:33
el datáfono que está leyendo datos 01:51:35
que lleva ahí tu tarjeta, pero 01:51:38
estarán de alguna manera cifrados o alguna 01:51:39
cosa de esas, o cómo está eso 01:51:42
sí, está cifrado, está el ID 01:51:43
que el ID no está cifrado, ¿vale? 01:51:46
y luego está el PIN, que ese 01:51:48
sí que está cifrado, ¿vale? el PIN de tu 01:51:50
tarjeta 01:51:52
sí, sí, sí, claro 01:51:54
ahí está, entonces 01:51:57
es lo único que hay en el 01:51:59
datáfono, simplemente lo único que está pasando 01:52:01
es el número de la tarjeta, ya está 01:52:03
el ID, pasa el ID 01:52:05
de forma no encriptada 01:52:07
y luego cuando tú en el datáfono escribes el PIN 01:52:09
el PIN se manda a la tarjeta 01:52:11
y la tarjeta verifica 01:52:14
si el PIN que llega del datáfono 01:52:15
coincide con el PIN que está almacenado en la propia 01:52:17
tarjeta y si coincide autoriza 01:52:19
la operación, vale 01:52:21
y en ese caso el datáfono ya conecta con el banco 01:52:23
y te hace el cargo, si no, no te hace el cargo 01:52:25
Sí, sí, pero ahí la tarjeta 01:52:27
siendo algo pasivo 01:52:31
es capaz de autorizar la 01:52:33
Sí, sí, ten 01:52:35
en cuenta lo que te he dicho, esto es 01:52:37
NFC, aunque sea pasivo, se 01:52:39
alimenta y puede transmitir datos 01:52:41
al datáfono 01:52:43
o sea, ¿qué ocurre? tú acercas 01:52:44
la tarjeta al datáfono, entonces lo primero que 01:52:47
hace la tarjeta es transmitir su ID 01:52:49
al datáfono, ¿vale? 01:52:51
que ese ID es fijo, ese no cabe 01:52:53
¿el ID que te refieres, el número de tarjeta? 01:52:54
sí, no es exactamente el número de tarjeta 01:52:57
es un identificador que utilizan, ¿vale? 01:52:59
luego 01:53:02
escribes el PIN en el datáfono 01:53:02
entonces el datáfono transmite ese PIN 01:53:05
a tu tarjeta 01:53:07
y le pregunta a la tarjeta, ¿es este PIN válido? 01:53:09
y la tarjeta lo verifica 01:53:12
porque lleva un microcontrolador dentro 01:53:13
para verificarlo, y si es correcto 01:53:15
le contesta al datáfono si es válido 01:53:17
y entonces el datáfono 01:53:19
te hace el cargo 01:53:20
pero si lleva ahí un microcontrolador 01:53:21
ese sí se está alimentando también 01:53:25
exacto, sí, sí, es como este caso 01:53:29
que estaba enseñando aquí 01:53:31
pues ahí es una EEPROM 01:53:33
con microcontrolador, que era lo que te decía 01:53:38
ah, vale, no te estaba entendiendo, sí, sí, ahí lo que tenemos en la tarjeta 01:53:40
es una EEPROM con un pequeño microcontrolador 01:53:44
es como las tarjetas SIM de los teléfonos 01:53:46
también son básicamente una memoria 01:53:48
pero también lleva un pequeño microcontrolador muy básico 01:53:50
no es en realidad un microcontrolador 01:53:52
es un sistema hardware 01:53:54
no podríamos llamarlo microcontrolador 01:53:56
porque no es programable 01:53:58
solamente sirve para verificar que el pin es correcto 01:53:59
no hace otra cosa 01:54:02
bueno, lleva una lógica 01:54:04
lleva una lógica, exacto, eso es 01:54:05
vale, bueno 01:54:08
pues esperad a ver si ha terminado ya esto 01:54:10
ya ha terminado, fenomenal 01:54:12
entonces si voy aquí al monitor serie 01:54:13
veremos que cada minuto aproximadamente 01:54:15
bueno, lo voy a arrancar de cero para que veáis 01:54:19
la comunicación desde cero 01:54:21
lo reseteo 01:54:22
entonces aquí lo que me está diciendo 01:54:24
es ST25 01:54:26
conectado 01:54:29
ha leído la temperatura que son 25.78 01:54:30
y la ha actualizado 01:54:33
correctamente en la tarjeta ST25 01:54:35
con lo cual si yo ahora cojo 01:54:37
mi móvil y con la aplicación 01:54:39
del ST25 01:54:41
me vengo aquí 01:54:42
y tengo un poco de suerte 01:54:44
para ponerle la tarjeta 01:54:46
¿veis? 01:54:49
la he leído 01:54:50
y cuando voy a los registros NDF 01:54:51
me dice que la temperatura es 01:54:54
justo la que tengo ahí, 25,78 01:54:56
no sé si lo veréis 01:54:59
pero bueno, ahí lo veis 01:55:00
medio se ve, sí 01:55:03
¿vale? pues ahí tenéis 01:55:04
un caso de uso 01:55:06
de esta tecnología, de la tecnología 01:55:08
NFC, a mí particularmente 01:55:10
es una tecnología que me gusta mucho 01:55:13
porque es razonablemente económica 01:55:14
¿vale? en este caso con el ST25 01:55:17
usando la antena esta 01:55:19
de GUR no es barato por el precio de la 01:55:21
antena, que solo la antena son 2 euros 01:55:23
¿vale? pero si tú te haces tu propia 01:55:24
antena, realmente es una 01:55:27
tecnología muy barata para comunicaciones 01:55:28
pues eso, para comisionar dispositivos 01:55:31
o lo que sea ¿vale? 01:55:33
y luego ya, lo que os decía, esta otra tecnología 01:55:35
esto no tiene nada que ver con lo que he contado hasta ahora 01:55:37
¿eh? ahora ya doy un salto 01:55:39
al NFC 01:55:40
de ultra alta frecuencia 01:55:42
este es el que os digo que se llama 01:55:44
RINE RFID 01:55:46
ese ya no funciona en 13,56 01:55:47
sino que va en 865 MHz 01:55:50
y ahí lo que 01:55:52
tenemos es un alcance del orden de metros 01:55:54
¿de qué va a depender el alcance? 01:55:56
pues del tamaño de la antena 01:55:59
aquí veis distintos modelos 01:56:01
que se pueden comprar por Aliexpress 01:56:02
por ejemplo, con precios muy 01:56:04
económicos, la tarjeta 01:56:06
es muy económica, el lector es 01:56:08
muy caro, estas tarjetas 01:56:10
no sé lo que costarán, no me atrevo a decir nada 01:56:13
pero los lectores son del orden de 01:56:14
1000 euros o por ahí 01:56:16
y pues 01:56:17
esto es principalmente para hacer inventariado 01:56:20
entonces bueno 01:56:22
la que tiene aquí más alcance 01:56:24
que es esta que veis que ya es grandecita 01:56:26
son 8 centímetros por 12 centímetros 01:56:28
pues tiene un alcance de 01:56:30
aproximadamente 5 metros 01:56:32
y no sé si tenía algo más 01:56:34
aquí, no, bueno pues esto 01:56:36
es todo lo que tenemos 01:56:38
de NFC 01:56:39
bueno, se llama 01:56:43
REN o también EPC Global 01:56:46
Generación 2, que es este estándar 01:56:47
el estándar 18000 01:56:49
vale, pues esto está visto 01:56:50
también, a ver cuánto tiempo 01:56:53
me queda, a ver que me da tiempo a contar 01:57:00
bueno, voy a ir 01:57:02
por la parte de Bluetooth 01:57:04
que creo que ahí hay algo que os puede 01:57:06
resultar interesante también 01:57:12
vale, aquí, Bluetooth 01:57:14
Bueno, aquí en Bluetooth ya os estuve comentando en clase cuando hablamos de la IN100, por eso voy a ir un poco rápido, que hay varios tipos de Bluetooth. 01:57:18
El último que tenemos es el Bluetooth 5, que en este, por ejemplo, lo que tenía de interesante respecto al Bluetooth 4 es que tenía una versión de largo alcance, que en teoría tiene un alcance de hasta un kilómetro. 01:57:40
¿para qué era este bluetooth? pues principalmente 01:57:51
para controlar drones, por ejemplo 01:57:54
¿vale? para eso servía, esta gente 01:57:56
que utiliza los sistemas fly per view 01:57:58
que vuelan los drones mediante unas gafas 01:57:59
pues algunos de esos drones 01:58:02
funcionan con esta tecnología de bluetooth 01:58:04
long range, pero no hay magia, o sea 01:58:06
los reyes magos, ya lo hemos dicho muchas veces 01:58:08
le podemos pedir bajo consumo 01:58:10
largo alcance y velocidad, pero 01:58:12
si priorizamos una, tenemos que 01:58:14
reducir de la otra, y aquí lo que 01:58:15
se reducía es la tasa de transferencia 01:58:18
La tasa de transferencia típica de un sistema Bluetooth Low Energy es un megabit, pues aquí para conseguir un megabit por segundo, aquí para conseguir este alcance lo que hacían es que lo reducían a una cuarta parte. 01:58:19
luego vino el Bluetooth 5.1 01:58:31
con el ángulo de llegada y el ángulo de partida 01:58:33
para poder geolocalizar objetos 01:58:36
luego el 5.2 con el AuraCast 01:58:38
que es la tecnología de los audífonos 01:58:40
luego vino una versión intermedia 01:58:42
que era simplemente de optimización 01:58:44
y ahora la última versión es la 5.4 01:58:45
que tiene un sistema muy interesante 01:58:48
que es 01:58:50
advertising periódico con respuesta 01:58:51
¿y esto para qué sirve? 01:58:54
pues sirve para actualizar etiquetas electrónicas 01:58:56
las etiquetas de los precios 01:58:58
pues sirve principalmente para eso 01:58:59
ya os conté que 01:59:01
el grupo de interés Bluetooth 01:59:03
el SIG, cuando encuentra 01:59:05
un nicho de negocio lo que hace es que crea un estándar 01:59:07
nuevo para cubrir ese nicho de negocio 01:59:09
y ahora lo que nos viene con el Bluetooth 6 01:59:11
es como 01:59:14
esto del ángulo de llegada y el ángulo de partida 01:59:15
no tuvo mucho éxito porque 01:59:17
las antenas eran complicadas, eran grandes 01:59:19
y eran caras, ahora lo que están haciendo 01:59:21
es implementar una tecnología 01:59:23
similar a la de Ultra Wideband 01:59:25
entonces nos va a permitir saber a qué distancia 01:59:27
están los objetos, simplemente midiendo el tiempo que tardan las señales 01:59:29
en ir y venir, eso se llama RTT, o bien el desfase 01:59:33
que se produce en las 01:59:37
señales al transmitirlas y recibirlas, un cambio de fase 01:59:40
el Bluetooth, como os comentaba, hasta la versión 4 01:59:44
era lo que se llamaba Bluetooth Classic, y con la versión 01:59:49
4 se crea el Bluetooth Logo Energy, el SIG no 01:59:53
quiere que lo llamemos así, 01:59:57
Bluetooth Classic y BLE. Ellos 01:59:59
dicen que existe un único Bluetooth 02:00:01
y que ese Bluetooth 02:00:03
incluye cuatro tecnologías, que son 02:00:05
las que veis aquí. El Bassid Rate, 02:00:07
el Enhanced Data Rate, uno 02:00:09
que es rarísimo, que es una combinación 02:00:11
de Bluetooth y Wi-Fi, y el Low Energy, 02:00:13
que es el BLE. Bueno, pues muy 02:00:15
bien. Si ellos lo quieren así, pues así lo hacemos. 02:00:17
Entonces, el problema 02:00:20
que hay es que si tú compras modems 02:00:21
de Bluetooth 4, tienes 02:00:23
un problema, porque puede ser que Bluetooth 02:00:25
el modem solo sea VR o Enhanced Data Rate 02:00:27
puede ser que solo sea 02:00:30
BLE o bien puede ser que 02:00:31
incluya los cuatro modos de tecnología 02:00:33
bueno, principalmente los tres, porque ya os digo que 02:00:35
SDA-MP es muy raro 02:00:37
¿vale? entonces hay que tener 02:00:39
cuidado al comprar el modem 02:00:41
porque tú a veces que vas y compras un modem Bluetooth 02:00:42
y dices, pues ya está, bandera para todo 02:00:45
pues no, a lo mejor solo vale para BLE 02:00:46
o a lo mejor solo vale para VR 02:00:49
o EDR, ¿vale? 02:00:51
el ESP32 por ejemplo no hay ningún problema 02:00:53
porque te permite utilizar los dos modos. 02:00:55
Entonces, no te tienes que preocupar. 02:00:57
Bueno, ¿cuál es la diferencia entre estos dos modos de funcionamiento? 02:01:00
Pues aquí a la izquierda tenéis el Low Energy y a la derecha el Classic. 02:01:08
La principal diferencia es el número de canales. 02:01:11
En el Low Energy hay 40 canales y en el Classic hay 79 canales. 02:01:14
Entonces, en el Low Energy hay tres de esos canales que se usan solo para advertising. 02:01:20
Es decir, para decir que estoy aquí, oye, que estoy aquí, ¿vale? Pero por lo demás son muy similares. El tipo de modulación que utilizan es parecido, ¿vale? La tasa de transferencia son realmente muy parecidas, los alcances también son muy parecidos, pero el otro cambio importante que tienen es el consumo. 02:01:24
El Bluetooth Low Energy, como emite paquetes de información breves, ¿vale? Cortitos, pues resulta que consiga consumos muy inferiores a los que consigue el Bluetooth Classic. Entonces, esa es la principal diferencia. Aparte luego de las topologías, ¿vale? En Bluetooth Classic, pues ya sabéis que siempre tenéis una conexión uno a uno. Un dispositivo se conecta con otro. 02:01:42
pero en Bluetooth Low Energy ya hay muchas posibilidades 02:02:05
por supuesto está esa de uno a uno 02:02:08
pero también está la de Broadcast 02:02:10
es decir que un dispositivo mande la misma información a muchos dispositivos 02:02:11
esto es lo que pasa por ejemplo en AuraCast 02:02:16
existe también la posibilidad de crear redes malladas 02:02:17
por ejemplo la que os enseñé de Wirepass 02:02:20
hay en clase una tecnología de nicho, una tecnología propietaria 02:02:22
que utiliza Bluetooth Low Energy para crear redes malladas 02:02:25
entonces en las redes malladas 02:02:29
los modos que tenemos de funcionamiento 02:02:32
son el modo normal 02:02:35
el modo 1 megabit por segundo 02:02:37
ese es el modo de funcionamiento 02:02:39
normal, o bien tenemos 02:02:41
modos de codificación física 02:02:43
de coded file 02:02:45
esos modos que ocurren 02:02:46
pues lo que ocurre es que 02:02:49
dedican parte de este ancho de banda 02:02:51
a enviar información de corrección 02:02:53
de errores, con lo cual 02:02:55
la carga de pago se reduce 02:02:57
porque estamos utilizando 02:02:59
un ancho de banda mayor para la corrección 02:03:01
de errores, pero claro 02:03:04
reducimos la carga de pago 02:03:05
pero como tenemos más información redundante 02:03:07
sobre errores, conseguimos mayor 02:03:09
alcance, esta es la diferencia 02:03:11
entre el modo normal 02:03:13
y los modos codificados, entonces 02:03:15
veis que tenemos el codificado 02:03:17
de 500 kilobits y el 02:03:20
codificado de 125 kilobits 02:03:21
este sería el que 02:03:23
permitiría llegar a un kilómetro de distancia 02:03:25
que os decía al principio de la presentación 02:03:27
el LCODED con S8 02:03:29
hay también uno más raro 02:03:32
que permite duplicar la velocidad 02:03:35
es decir, justo lo contrario 02:03:37
en vez de utilizar más información 02:03:38
de corrección de errores 02:03:41
utilizamos casi ninguna corrección de errores 02:03:42
y así conseguimos aumentar 02:03:45
el alcance 02:03:47
¿cuánto se aumenta el alcance? 02:03:48
como veis aquí, si el alcance normal 02:03:51
es 1, pues 02:03:53
si aumenta 2 Mbps 02:03:54
voy a llegar a 0,8 02:03:56
y si reduzco a 125 kilobits 02:03:58
voy a llegar prácticamente 02:04:01
a cuatro veces el alcance normal 02:04:02
¿vale? bueno, pues eso 02:04:04
es teoría, luego 02:04:06
¿cómo funciona el bluetooth? ¿vale? 02:04:08
la arquitectura general 02:04:10
pues aquí hay como dos partes 02:04:12
hay una parte 02:04:14
que es el host, ¿vale? que es 02:04:16
la parte que estamos viendo aquí arriba 02:04:18
y luego 02:04:20
hay otra parte que es la parte física 02:04:22
la parte más de radio que estamos 02:04:24
viendo aquí abajo, ¿vale? entonces 02:04:26
veis que por ejemplo aquí tengo un modem 02:04:28
que tiene las dos tecnologías 02:04:30
el basic rake y el low energy 02:04:32
¿vale? y esta es la parte 02:04:34
por así decirlo de hardware y aquí 02:04:36
arriba tendríamos el controlador 02:04:38
¿vale? que esto podría ser el sistema operativo 02:04:40
de tu teléfono móvil o el SP32 02:04:42
¿vale? aquí es donde tenemos el stack 02:04:44
de bluetooth y esto está dentro 02:04:46
del modem de radio bluetooth 02:04:48
es decir, nosotros de aquí no nos tenemos que preocupar 02:04:49
de nada, esto funciona ello solo 02:04:52
nosotros lo que vamos a tener que hacer es 02:04:54
mandar instrucciones 02:04:56
desde el controlador 02:04:57
al sistema de radio 02:04:59
y eso lo hacemos a través de una capa intermedia 02:05:01
que es esta que veis aquí, que es el HCI 02:05:04
el Host Controller Interface 02:05:05
¿vale? 02:05:07
aquí hay muchísima teoría 02:05:09
pero resumiendola es la que estáis viendo aquí 02:05:11
la capa física y la capa de enlace 02:05:13
¿vale? que está en el controlador 02:05:16
en la parte de abajo y luego tenemos 02:05:18
el Host Controller Interface 02:05:20
el host en la parte de arriba 02:05:21
creo que lo he dicho al revés aquí ¿no? 02:05:23
aquí os he dicho que esto era el host, no, esto es el controlador 02:05:25
¿vale? y esto es el host 02:05:28
no sé si lo he dicho al revés o no 02:05:29
pero ahora al verlo aquí me ha parecido que lo he dicho al revés 02:05:32
entonces, este es el host 02:05:34
que es la parte del stack bluetooth 02:05:36
y ahí lo que tenemos son 02:05:37
distintos perfiles, ¿vale? 02:05:39
veis que tenemos aquí un perfil que se llama 02:05:41
que es la capa de control, este de aquí 02:05:43
tenemos perfiles de seguridad, perfiles 02:05:45
de atributos, ¿vale? 02:05:47
tenemos un montón de perfiles posibles 02:05:49
pero dos de los más famosos son 02:05:51
estos que veis aquí, el GAT 02:05:53
y el GAP, ¿vale? 02:05:55
que los vamos a usar mucho, estos son 02:05:57
un perfil genérico de 02:05:59
atributos y un perfil 02:06:01
genérico de acceso 02:06:03
¿vale? bueno 02:06:05
¿esto qué quiere decir? pues esto quiere decir 02:06:07
básicamente que yo puedo tener por ejemplo 02:06:09
un SP32 que se 02:06:11
anuncie con unos determinados 02:06:13
servicios GAT, ¿qué servicios 02:06:16
GAT? pues por ejemplo puedo decir 02:06:18
oye yo soy un sensor de temperatura 02:06:19
¿vale? eso sería un servicio GAT 02:06:21
y entonces a través del gap 02:06:23
podríamos leer esa temperatura 02:06:25
con el teléfono móvil 02:06:26
o con cualquier otro dispositivo bluetooth 02:06:28
porque esto como ocurría en Matter 02:06:30
está también estandarizado 02:06:32
es decir, existen colecciones de atributos 02:06:34
que están estandarizadas 02:06:36
¿cuál es el problema que tenemos 02:06:38
con los paquetes BLE? 02:06:40
pues el problema que tenemos 02:06:41
es que la carga de pago 02:06:42
es muy pequeñita 02:06:43
como mucho 31 bytes 02:06:44
y este es el problema 02:06:46
que teníamos con la IN100 02:06:47
que si a la IN100 02:06:48
le poníamos un nombre muy largo 02:06:50
pues luego apenas nos quedaba espacio para almacenar 02:06:51
información adicional, para poner la temperatura 02:06:54
lo que quisiéramos enviar 02:06:56
¿vale? pues esto 02:06:57
es así, es una limitación 02:06:59
con la que tenemos que vivir, como mucho 02:07:02
en un paquete BLE, como os digo 02:07:03
podemos mandar 31 bytes 02:07:05
no podemos mandar más 02:07:08
¿vale? bien, lo que ocurrió 02:07:09
es que como esto era una limitación muy grande 02:07:12
pues en la versión PUTZO 4.2 02:07:13
se añadió una característica 02:07:15
de paquete extendido 02:07:18
que permite llegar hasta 251 bytes 02:07:19
pero esto no todos los dispositivos 02:07:22
son compatibles con ellos 02:07:24
por ejemplo la IN100 no es compatible 02:07:26
entonces esto 02:07:28
existe pero en unos 02:07:30
poquitos dispositivos, no en todos 02:07:32
entonces aquí lo que estáis viendo es la capa 02:07:34
de enlace para Bluetooth 4 y 4.1 02:07:36
que son hasta 27 bytes 02:07:38
y la de 4 02:07:40
o 4.2 y 5 en adelante 02:07:42
que puede llegar hasta 251 bytes 02:07:44
entonces 02:07:47
¿cómo se transmite la información 02:07:49
en Bluetooth? fijaos que ahora no hablo 02:07:51
de Bluetooth Low Energy, estoy hablando 02:07:53
en general de Bluetooth 02:07:55
pues hay varias formas 02:07:57
la más habitual es utilizar lo que se llama 02:07:58
ACL 02:08:01
ACL permite a varias aplicaciones 02:08:02
compartir un mismo enlace 02:08:05
¿eso qué quiere decir? que yo puedo tener 02:08:07
en el host varias aplicaciones 02:08:09
que a través del 02:08:11
HCI 02:08:13
que a través de una sola conexión del HCI 02:08:14
se comunican con el modem, ¿vale? 02:08:17
Pues ese es uno de los modos 02:08:20
de transporte que tenemos. Otro es 02:08:22
el modo síncrono, ¿vale? 02:08:24
¿El modo síncrono para qué sirve? Para los manos 02:08:25
libres. Se utiliza 02:08:28
para transmitir audio 02:08:30
de baja calidad. Claro, si tú 02:08:31
tienes sus manos libres, tienes que 02:08:34
garantizarte que lo que dices 02:08:35
y lo que escuchas está sincronizado 02:08:37
porque si no hay un desfase y te vuelves 02:08:40
loco, ¿vale? Por eso se utiliza 02:08:42
ese protocolo de transporte síncrono. 02:08:43
Y luego tenemos otro protocolo de transporte que es el isócrono, ¿vale? Que este se utiliza en los auriculares cuando tú quieres mandar a un auricular el canal izquierdo y al otro el canal derecho y tienen que estar sincronizados entre sí. 02:08:46
Claro, obviamente no puede haber desfase entre el canal izquierdo y el derecho porque te pasa lo mismo, te volverías loco, ¿vale? Bueno, luego, dentro de todo esto, el Bluetooth tiene un capítulo aparte para el audio, ¿vale? Entonces, en las versiones clásicas de Bluetooth, el audio se transmitía de una forma, ¿vale? 02:09:00
Pero afortunadamente, en las versiones low power, ¿vale? En esas se va a transmitir utilizando otro códec distinto, que es el códec, este que veis aquí, que se llama LCE. Y este códec tiene muchísimas virtudes. Por ejemplo, tiene la virtud de hacer multi-stream. Es decir, mandarte una misma grabación en varios idiomas, por ejemplo. 02:09:20
tiene la posibilidad de hacer broadcast 02:09:45
mandar una misma locución 02:09:47
a varios usuarios, tiene la posibilidad 02:09:49
de sincronizarse con audífonos 02:09:51
¿vale? pues claro, todo esto 02:09:53
es muy interesante, pero esto solo como os digo 02:09:55
está disponible 02:09:57
en el Low Energy ¿vale? 02:09:59
fijaos, aquí se ve, quizás lo entendáis 02:10:01
un poco mejor con este gráfico de abajo 02:10:03
cuando tú tenías unos auriculares 02:10:05
Bluetooth Classic 02:10:08
lo que ocurría es que tu teléfono 02:10:11
móvil se conectaba a uno de esos auriculares 02:10:13
y el otro auricular se 02:10:16
conectaba al segundo auricular 02:10:17
no era el móvil que mandaba 02:10:19
información distinta a cada auricular 02:10:21
sino que mandaba toda la información al 02:10:23
primer auricular, ese auricular 02:10:25
se quedaba con el canal izquierdo 02:10:27
y el canal derecho se lo pasaba al otro 02:10:29
¿vale? sin embargo 02:10:31
en los nuevos auriculares, en los auriculares 02:10:33
de Low Energy, el teléfono móvil 02:10:35
envía dos strings distintos 02:10:37
uno a cada auricular 02:10:39
¿vale? esa es la principal diferencia 02:10:41
Incluso podría haber uno aquí si fueran auriculares con micrófono para enviar la voz. Tenemos varios canales por la posibilidad de enviar información por varios canales. 02:10:43
Bueno, pues en Bluetooth se utiliza el concepto de central y periférico. Normalmente el central es el cliente y el periférico es el servidor. Un central puede mantener varias conexiones a la vez. Sin embargo, los periféricos suelen tener capacidades reducidas. 02:10:52
Puede ser, por ejemplo, lo que os decía, un auricular y típicamente no puede mantener más de una conexión activa a la vez. Por ejemplo, si tenéis una Fitbit, la Fitbit sería el periférico y vuestro móvil sería el central. Si tenemos un sensor, ese sensor sería el periférico y el gateway al que se conecta sería el central. 02:11:15
si tenemos una baliza 02:11:36
pues esa baliza sería el periférico 02:11:38
y el móvil sería el central 02:11:40
¿vale? ¿para qué sirven 02:11:42
las balizas? pues ya lo vimos con el 02:11:44
IN100, había balizas 02:11:46
IBICOM que no valen para nada 02:11:48
¿vale? que son las de Apple 02:11:49
balizas Edison que son las 02:11:51
de Android que tienen 02:11:54
un poco más de capacidad, pueden enviar telemetrías 02:11:56
pero ahora las balizas se están 02:11:58
renaciendo otra vez porque 02:12:00
nos podemos crear balizas personalizadas 02:12:02
es decir, balizas que transmitan 02:12:04
cualquier información que nosotros queramos 02:12:06
¿vale? el dispositivo 02:12:08
central, en este caso 02:12:10
vuestro teléfono móvil 02:12:11
es el que genera la señal de reloj 02:12:13
¿vale? y también le dice al 02:12:16
periférico por qué 02:12:18
frecuencias tiene que transmitir la información 02:12:20
recordad que de las primeras 02:12:22
diapositivas, el modelo de 02:12:24
transmisión que utiliza Bluetooth 02:12:25
es Frequency Hopping, ¿vale? va dando saltos 02:12:27
constantemente entre 02:12:30
distintas 02:12:31
frecuencias, ¿vale? pues 02:12:32
Entonces, lo que tenemos en Bluetooth son dos conceptos. 02:12:35
Un concepto que es el concepto de Piconet y otro concepto que es el concepto de Scatternet, ¿vale? 02:12:39
Una Piconet son todos los dispositivos que comparten el mismo reloj y el mismo patrón de Frequency Hopping, ¿vale? 02:12:46
Eso es una Piconet. 02:12:54
Entonces, una Piconet pueden ser dos dispositivos o pueden ser más dispositivos. 02:12:56
y luego puede ocurrir que hubiera un dispositivo 02:13:01
que formase a la vez 02:13:04
parte de dos Piconets 02:13:05
¿vale? y entonces se dice 02:13:08
que ese dispositivo 02:13:09
conforma una Scatternet 02:13:10
¿vale? entonces bueno, eso es un poco 02:13:13
lo que intenta representar este gráfico 02:13:15
que veis aquí, para el Bluetooth Classic 02:13:17
¿vale? para el Bluetooth con Basic Rate 02:13:19
y Enhanced Data Rate 02:13:21
y entonces aquí lo que vemos son distintos casos 02:13:22
por ejemplo, aquí tenemos una Piconet 02:13:25
la Piconet A 02:13:27
que utiliza dos canales 02:13:30
para hablar con los dispositivos 02:13:32
D y E 02:13:34
sin embargo E, como veis, está en dos 02:13:35
piconets, la piconet roja 02:13:37
y en la morada, por eso se dice 02:13:39
que E está involucrada 02:13:41
en una scatternet 02:13:44
¿vale? y luego bueno, hay una 02:13:45
cosa que se llama el adaptive frequency 02:13:48
hopping, ¿vale? que es esto de aquí 02:13:50
que reduce el número de canales 02:13:51
que se utiliza en una piconet para evitar 02:13:53
interferencias, pero no todos los dispositivos 02:13:55
son compatibles con eso 02:13:58
¿Vale? Entonces, por ejemplo, aquí tenemos D, que D admite a FH, ¿vale? Pero J, imaginaos que no, ¿vale? Entonces, lo que han hecho es crearse su propio canal. D en esta piconet, en estas piconet, porque forma parte de varias, usa FH y, sin embargo, en esta otra es capaz de conectarse con J que no usa FH. 02:13:59
Pues esto, como veis, es muy flexible. Tenemos muchas posibilidades aquí. El Low Energy se reduce. Aquí en Low Energy lo que tenemos es que cada periférico conforma una piconet con el central. Es decir, una piconet van a ser siempre dos dispositivos, el central y el periférico. 02:14:21
y luego vamos a tener también 02:14:38
scatter net, por ejemplo aquí tenemos el K 02:14:41
el K 02:14:43
está funcionando 02:14:44
en dos piconets, vale, la L 02:14:46
y en la M y por eso se dice que está 02:14:49
en una scatter net, vale 02:14:51
¿qué más tenemos por aquí? 02:14:52
igual, o en este caso 02:14:55
es periférico en dos piconets 02:14:57
en estas dos piconets de aquí, vale 02:14:59
bueno, pues esa es la diferencia 02:15:01
vale, ¿qué? 02:15:03
¿cómo se identifica un dispositivo 02:15:05
bluetooth pues un dispositivo bluetooth va a tener típicamente una dirección de dispositivo pública 02:15:07
vale que hay que registrarla y tienes que pagar para registrarla vale yo no puedo tener una 02:15:13
dirección bluetooth para un dispositivo si no pago esa dirección está compuesta de dos partes vale 02:15:20
la parte baja por así decirlo y la parte que identifica a la organización entonces esta parte 02:15:27
baja son 3 bytes, es decir, podemos tener hasta 16 millones de dispositivos en cada 02:15:35
organización, ¿vale? Yo soy, por ejemplo, Philips, pues Philips tiene su identificador 02:15:41
de organización y Philips puede fabricar hasta 16 millones de dispositivos con ese 02:15:47
identificador de organización, ¿vale? El identificador de organización a su vez se 02:15:52
divide en dos partes, ¿vale? Una parte que es la parte superior y otra que es la parte 02:15:57
no significativa. ¿Para qué sirve 02:16:02
esto? Pues principalmente como Sevilla 02:16:04
para los algoritmos de encriptación. 02:16:06
¿Vale? 02:16:09
Pues nada, eso es lo que tenemos aquí. 02:16:10
Aquí tenéis una publicadrez 02:16:12
típica de 48 bits. 02:16:14
¿Vale? Y ahí tenéis la parte 02:16:16
que es la parte del dispositivo 02:16:18
y la parte de la organización, esta 02:16:20
de la derecha. Esto existe un registro 02:16:22
que tú puedes ir a ese registro, 02:16:24
¿vale? Que es este que veis aquí, y 02:16:26
consultar en ese registro si un dispositivo 02:16:28
que tú tienes es genuino o no. 02:16:30
Entonces yo, qué sé, pues yo por ejemplo aquí, vamos a correr este ejemplo en un momento, ¿vale? 02:16:32
Me voy a ir a Arduino un momento, y en el SP32 que lo tengo aquí, en ejemplos, en Bluetooth Serial, 02:16:37
tengo aquí, creo que es este, el de GetLocalMath, ¿no? 02:16:47
Sí, ese es. Vale, pues a ver si se abre, y lo cargo, ¿vale? 02:16:56
y lo dejamos ahí cargando para que luego podáis ver 02:17:00
cómo es esa dirección MAC 02:17:02
y si yo voy a esta 02:17:04
dirección, comprobaría ahí 02:17:06
que esa MAC corresponde a Expressive 02:17:08
entonces yo sé que tengo 02:17:10
un SP32 genuino, ¿vale? 02:17:12
que no es una falsificación 02:17:14
a ver si ha cargado ya esto 02:17:15
está aquí, el penúltimo 02:17:17
ahí, lo voy a cargar 02:17:23
a ver que tenga el puerto bien elegido 02:17:27
¿sí? vale, pues lo cargo 02:17:28
voy a cerrar ya este que hemos 02:17:31
hecho de 02:17:33
NFC para que no me genere problemas 02:17:33
vale 02:17:36
dime 02:17:38
¿qué pasa si cuando Express 02:17:39
venda 16 millones 02:17:42
pide otro OUI? 02:17:44
de hecho muchas empresas tienen un montón de OUIs 02:17:47
¿vale? 02:17:51
entonces eso directamente cuando se te agota uno 02:17:52
pides otro o de hecho muchas empresas 02:17:54
tienen un OUI para cada línea de productos 02:17:56
que tienen ¿vale? 02:17:59
eso es obligatorio ¿vale? tú tienes que tener 02:18:00
una dirección pública de dispositivo 02:18:02
pero es que luego adicionalmente 02:18:04
puedes tener otras direcciones 02:18:05
¿vale? 02:18:08
y una de ellas es obligatoria, una de las dos 02:18:10
no puedes ir sin dirección 02:18:12
en el mundo Bluetooth no te permiten ir sin dirección 02:18:13
¿vale? tú puedes usar tu public address 02:18:16
¿vale? la que 02:18:18
os he dicho antes, esta 02:18:20
o bien, si no la tienes 02:18:21
puedes utilizar una dirección 02:18:24
aleatoria 02:18:26
¿vale? esa dirección 02:18:28
aleatoria puede ser fija 02:18:30
es decir, siempre la misma, o bien que cambie con cada arranque del dispositivo, ¿vale? 02:18:32
Lo bueno que tiene es que esto no tienes que pagar por ello. 02:18:37
Tú, si no tienes una dirección pública, dices, pues no hay problema, voy a usar direcciones aleatorias 02:18:41
y lo único es que todas esas direcciones empiezan por 1-1, ¿vale? 02:18:45
Para distinguirlas de las que son públicas. 02:18:49
Estas son estáticas aleatorias, ¿vale? 02:18:51
Luego, aparte, como veis aquí, ¿vale? 02:18:55
Puede ser pública o puede ser aleatoria, ¿vale? 02:18:58
además de la aleatoria 02:19:01
puedes tener 02:19:04
pueden ser en este caso de dos tipos 02:19:04
pueden ser estáticas 02:19:07
que era la que os estaba diciendo antes 02:19:09
o bien pueden ser privadas 02:19:10
¿vale? 02:19:12
la privada es muy interesante 02:19:15
porque cambia, como os decía, con cada arranque 02:19:16
¿vale? no es siempre la misma 02:19:19
sino que va cambiando 02:19:21
pero puede cambiar de forma resolvible 02:19:22
o no resolvible 02:19:25
¿vale? no resolvible ¿qué quiere decir? 02:19:26
que a ti no te va a poder identificar nadie 02:19:29
Cada vez que tu dispositivo se identifique, yo voy con mi teléfono móvil, 02:19:31
entro a un centro comercial, después voy a la comisaría de policía y después voy al instituto 02:19:36
y si hay ahí gente esnifando direcciones Bluetooth, no van a saber que yo soy la misma persona. 02:19:41
¿Por qué? Porque estoy usando direcciones aleatorias, privadas, no estáticas y no resolvibles. 02:19:47
Es decir, nadie podría identificarme. Esas direcciones empiezan todas por 00. 02:19:54
O bien podrían ser resolvibles. Esto que quería decir, que sí que me van a poder rastrear, pero solamente me va a poder rastrear quien yo quiera, es decir, aquella persona con la que yo haya compartido mi clave IRQ, ¿vale? Y esas empiezan por 01. 02:19:59
entonces tú puedes crear dispositivos 02:20:15
con dirección pública 02:20:18
como es siempre la misma 02:20:19
te pueden rastrear 02:20:21
entonces muchas veces 02:20:23
incluso aunque el dispositivo tenga una dirección pública 02:20:25
usa una dirección aleatoria 02:20:27
esa dirección aleatoria 02:20:30
puede ser fija, estática, perdón 02:20:31
en cuyo caso empieza por 1,1 02:20:33
y también te pueden rastrear 02:20:35
porque es siempre la misma 02:20:36
o más comúnmente va a ser privada 02:20:37
y entonces puede ser privada, resolvible 02:20:40
que va a empezar por 0,1 02:20:43
o no resolvible que va a ser por 00 02:20:44
no resolvible, no te puede 02:20:46
trackear nadie 02:20:48
resolvible, te puede trackear quien tú quieras 02:20:49
¿vale? 02:20:52
pues bueno, luego respecto a las 02:20:54
características de seguridad, pues bueno 02:20:56
principalmente ya sabéis que los dispositivos 02:20:58
bluetooth hay que parearlos 02:21:00
¿vale? luego una vez que está pareado 02:21:02
ya queda almacenado en tu teléfono 02:21:05
móvil, por ejemplo, si tú tus auriculares 02:21:07
los pareas con el teléfono 02:21:08
móvil, se dice que han hecho 02:21:11
bonding, eso quiere decir que las claves 02:21:12
ya están almacenadas ahí y la siguiente 02:21:14
vez que entren en contacto no tienes que parearlos 02:21:16
otra vez, porque ya tienen 02:21:18
esas claves, no tienen que intercambiar las claves 02:21:20
de pareado, y luego 02:21:22
hay otra parte que es como se autentican 02:21:24
los dispositivos, y esto 02:21:26
hay muchas formas, sabéis que los primeros había que 02:21:28
poner la clave física que era 02:21:30
0000, ahora hay algunos 02:21:32
que te sacan un número aleatorio y tienes que 02:21:34
copiarlo en el otro dispositivo, o que 02:21:36
cada uno te da un número y tienes que copiar en el otro 02:21:38
dispositivo el número que te da el otro 02:21:40
hay muchas formas, luego los mensajes van encriptados 02:21:42
y por supuesto no se pueden manipular los mensajes 02:21:45
de forma inadvertida, esas son las formas que tenemos 02:21:50
de seguridad, aquí no voy a entrar porque esto ya lo habéis hecho todos 02:21:53
habéis pareado dispositivos tanto en modo legacy 02:21:58
como en modo SSP, los legacy son estos que os decía que había que poner un número 02:22:01
que era siempre el mismo, era un código a veces de 4 pines 02:22:06
la mayoría de las veces, eso se considera 02:22:09
que está obsoleto 02:22:11
y ahora lo que tenemos son los sistemas 02:22:12
SEPT, Secure Simple Pairing 02:22:14
que esos ya utilizan sistemas 02:22:17
de pareado más complejos, en los que hay que escribir 02:22:19
un número más largo 02:22:21
o que se autoautentican ellos mismos 02:22:22
entonces bueno, ahí hay 02:22:25
un montón de opciones 02:22:27
¿de qué depende de que se use uno u otro? 02:22:28
pues principalmente de las capacidades de entrada y salida 02:22:31
que tenga el dispositivo 02:22:33
si tú tienes un auricular, el auricular 02:22:34
ni tiene pantalla ni tiene teclado 02:22:37
Entonces, ¿cómo se podría parear? 02:22:39
Pues si no tiene ni entrada ni salida, 02:22:42
solamente se puede parear con un sistema que se llama JustWorks, 02:22:44
que es sin autenticación, que son los que veis aquí, 02:22:47
pues no se puede autenticar. 02:22:51
Pues, por ejemplo, si tú tienes una pantalla, 02:22:54
pero que solo admite botones sí o no, 02:22:57
pues, por ejemplo, si te vas a parear con un dispositivo 02:23:01
que también tiene botones sí o no, 02:23:03
puedes utilizar JustWorks, que es sin autenticar, 02:23:05
o bien podrías usar una comparación numérica 02:23:08
eso que es, que un dispositivo te va a decir 02:23:11
oye, el número que está haciendo en el otro dispositivo es este 02:23:14
sí o no, y contestas sí o no, y ya está 02:23:17
bueno, pues esa es la diferencia 02:23:19
aquí del tema de seguridad hay muchísimo 02:23:22
por ejemplo hay un modo de seguridad que se llama OB 02:23:24
que ese no usa bluetooth para hacer 02:23:28
el intercambio de claves, el pairing 02:23:31
sino que usa una etiqueta NFC 02:23:33
y esto engancha con lo que os estaba contando antes 02:23:36
que se combinan a la vez 02:23:38
NFC y Bluetooth 02:23:40
vale 02:23:42
entonces, cuando usamos 02:23:43
JazzWorks, que es este de aquí 02:23:46
que no está autenticado, todos los que veis aquí 02:23:48
de JazzWorks, pues claro 02:23:50
son con dispositivos que están muy limitados 02:23:52
pues cuando usamos eso 02:23:54
tenemos el problema de que podemos 02:23:56
sufrir un ataque de hombre 02:23:58
en el medio 02:24:00
¿esto qué es? que yo tengo mi ordenador 02:24:01
le quiero conectar un teclado externo 02:24:04
y lo que tengo es alguien entre medias 02:24:06
con un SP32 por ejemplo 02:24:09
que se presenta al teclado como si fuera el ordenador 02:24:11
y que se presenta al ordenador como si fuera el teclado 02:24:14
con lo cual el teclado se parea con el SP32 02:24:16
pensando que se está pareando con el ordenador 02:24:19
el móvil se parea con el SP32 02:24:23
pensando que está funcionando con el teclado 02:24:25
todo funciona perfectamente, tú escribes en el teclado 02:24:27
y aparece en el ordenador y crees que todo está bien 02:24:30
pero hay un tipo en el medio 02:24:33
que está interceptando todos esos datos 02:24:34
¿vale? entonces 02:24:37
se pueden ver comprometidos 02:24:39
esto es un riesgo enorme, por eso 02:24:41
se intentan utilizar 02:24:43
este modo de 02:24:44
acreditación, el Just Work 02:24:46
se intenta utilizar siempre uno de los otros 02:24:48
¿vale? porque esto es inevitable 02:24:51
este modo de ataque es un riesgo 02:24:52
que lo vas a tener siempre 02:24:55
en Just Work 02:24:56
esto lo paso 02:24:58
porque ya estuvimos viendo un poco como funcionaba 02:25:00
esto de los sistemas de clave asimétrica 02:25:03
lo estuvimos viendo por el caso 02:25:05
de Amazon Web Services 02:25:07
y aquí se usa lo mismo, aquí se usan claves asimétricas 02:25:08
después del pareado 02:25:11
se generan esas claves 02:25:13
y con esas claves asimétricas 02:25:15
se intercambian unas claves simétricas 02:25:17
que son las que realmente se usan 02:25:19
para encriptar 02:25:21
no se usa criptografía asimétrica para encriptar 02:25:22
porque la criptografía asimétrica 02:25:25
es muy pesada, implica mucho cálculo 02:25:27
entonces lo que se hace 02:25:29
es que se usa criptografía simétrica para intercambiar las claves simétricas 02:25:31
y luego las claves simétricas se usan, como digo, para encriptar el resto de la información. 02:25:35
Bueno, voy a ver si he acabado ya de cargar el programa. 02:25:42
La verdad es que no me acuerdo siquiera si le he dado a cargar. 02:25:46
A ver. 02:25:49
No, está todavía cargando la anterior. 02:25:53
Bueno, pues le doy a cargar y luego lo vemos. 02:25:55
Bien, entonces, bueno, aquí hay una serie de ejemplos 02:25:58
que vosotros podéis cargar en un SF32 02:26:00
para ver cómo funciona todo esto del Pairing SSP, ¿vale? 02:26:02
Entonces, pues tenemos el Serial2VP, 02:26:06
tenemos el JazzWord, tenemos el Passkey Entry, ¿vale? 02:26:09
O el Input y Output. 02:26:12
Pues, por ejemplo, aquí tenemos un caso que es de PIN, ¿vale? 02:26:13
Pero este no es el PIN Legacy, ¿vale? 02:26:16
Este no es siempre el mismo. 02:26:18
Este es un PIN que va variando. 02:26:20
Y veis que te dice, 02:26:21
si es el mismo que se muestra en el otro dispositivo, 02:26:23
escriba sí, ¿vale? 02:26:25
Y si no, pues escribes no y ya está. 02:26:27
y esta es la forma que tienen de parearse 02:26:29
bueno, ¿para qué utilizamos 02:26:31
nosotros Bluetooth en el mundo de los sistemas 02:26:33
embebidos? pues principalmente 02:26:35
los usamos para puertos serie 02:26:37
¿vale? el puerto serie está muy 02:26:39
extendido, se utiliza para un montón de 02:26:41
cosas, ¿vale? pues resulta que hay un 02:26:43
perfil de Bluetooth 02:26:45
que es el perfil de puertos serie 02:26:46
entonces yo puedo emular 02:26:49
sobre Bluetooth 02:26:51
un puerto serie, ¿vale? y esto es 02:26:53
súper cómodo, porque yo 02:26:55
me puedo comunicar de pronto 02:26:57
como si estuviera usando un puerto serie 02:26:58
pero no tengo que tender cables 02:27:00
directamente con un móvil que tenga 02:27:02
bluetooth, puedo acceder 02:27:04
entonces por ejemplo, aquí os ponía 02:27:07
un ejemplo de aplicaciones 02:27:09
para Android y para IOS 02:27:11
que son terminales bluetooth 02:27:12
esta que tenéis aquí 02:27:14
es la interfaz, es la aplicación para Android 02:27:15
que lo que hago 02:27:19
es que digo, a ver, escanea 02:27:21
me conecto al SP32 02:27:22
y lo que ocurre en ese momento 02:27:24
si he cargado en el SP32 este ejemplo 02:27:26
serial to serial 02:27:29
es que lo que tengo ahí es una comunicación serie 02:27:29
entre esos dos dispositivos 02:27:32
es una comunicación serie 02:27:34
pero que en lugar de ir por cables 02:27:36
va por bluetooth 02:27:38
entonces esto es súper cómodo 02:27:39
de hecho es una de las aplicaciones más habituales que tiene el bluetooth 02:27:42
el puerto serie 02:27:45
bueno 02:27:47
entonces aquí yo hacía 02:27:48
una serie de ejemplos 02:27:50
de bluetooth classic 02:27:52
que aquí no los voy a contar 02:27:54
Porque el Bluetooth Classic, ya os digo, el ejemplo más importante es este, el del Serial Profile, ¿vale? Y hay otros periféricos, por supuesto, para transmitir archivos, para transmitir audio, ¿vale? Para el que usa los altavoces y tal. 02:27:56
Pero bueno, yo ahora lo que quería centrarme es en el stack de Low Energy, que creo que es el más interesante para encarnar de las cosas, ¿vale? Y aquí tengo que volver otra vez a lo que os he enseñado antes. 02:28:12
A la parte del modem, que es el controlador, a la parte de la pila, o sea, del microcontrolador, que es el host, y al elemento intermedio, al host controller interface. ¿Vale? Bien. Pues aquí tenemos que podemos utilizar distintos modos de comunicación. ¿Vale? Un sistema de comunicación, por ejemplo, broadcasting. Un sistema de comunicación de advertiser y scanner. ¿Vale? Pues estos serían, por ejemplo, las balizas. Bueno, pues estos son distintos sistemas. 02:28:23
Y aquí podemos tener, por ejemplo, un broadcaster y un observador, que sería este caso que veis aquí arriba. Uno haciendo broadcasting y dos observadores que están recibiendo la información de ese broadcaster. O bien tenemos periféricos y centrales. Por ejemplo, yo puedo tener aquí varios periféricos que se comunican con un mismo central. 02:28:52
Pues, por ejemplo, podrían ser varios sensores de temperatura en una casa que se conectan con un SP32 central que recibe por BLE las temperaturas de todos esos sensores. 02:29:12
Entonces, a nivel de GATT, ¿qué roles tenemos? Pues el rol de servidor y el rol de cliente. 02:29:26
cliente. Entonces, el servidor es el que contiene los datos que se desean 02:29:34
monitorizar. Por ejemplo, el sensor de temperatura sería el servidor. Esto 02:29:40
choca un poco al principio. El sensor es el servidor y el cliente es tu 02:29:46
teléfono móvil. El cliente es el que le pide al sensor, oye, sírveme tus datos 02:29:50
de temperatura. ¿Y esto cómo funciona? Pues funciona mediante servicios GAT, 02:29:55
Servicios de atributos, como os decía. Por ejemplo, yo tengo aquí un sensor, que es un BM70, que tiene dos servicios. Un servicio público y un servicio privado. Cada servicio tiene un identificador único. Aquí tengo un identificador único de 16 bits y aquí tengo un identificador privado de 128 bits. 02:30:01
y luego lo que tengo dentro de los servicios son características 02:30:23
¿qué características podrían ser esto? 02:30:26
la temperatura, la humedad, la calibración 02:30:28
¿vale? lo que fuera 02:30:30
y aquí tendría el teléfono móvil 02:30:31
que le solicita al servidor 02:30:33
que en este caso es el sensor 02:30:36
le dice, oye, ¿cuál es el valor de tu 02:30:37
característica identificada por 02:30:40
este identificador único? ¿qué es la temperatura? 02:30:42
y él le contesta, y así sabemos 02:30:44
cuál es la temperatura 02:30:46
¿vale? y luego por encima de esto 02:30:46
está el 02:30:49
protocolo de acceso genérico 02:30:51
el GAP 02:30:53
que este aquí lo que tenemos es para 02:30:54
ahorrar energía, lo que ocurre 02:30:57
es que el periférico 02:30:59
está la mayor parte del tiempo dormido 02:31:01
esta raya vertical es cuando está despierto 02:31:03
y el resto del tiempo está 02:31:05
dormido, y sin embargo el central 02:31:07
que tiene menos problemas de batería 02:31:09
pues lo que tiene que hacer es despertar 02:31:11
a un intervalo 02:31:13
de tal forma que en algún modo se solape 02:31:15
con el otro, veis que aquí 02:31:17
en este primero no ha sido posible la comunicación 02:31:19
en este segundo tampoco ha sido 02:31:21
posible la comunicación, pero aquí 02:31:23
sí que ha sido posible la comunicación 02:31:25
¿vale? entonces lo que tenemos es un 02:31:27
periférico que está casi siempre dormido 02:31:29
y un central que 02:31:31
establece un tiempo de dormido 02:31:33
y luego tiene que estar un tiempo 02:31:35
mucho más amplio despierto 02:31:37
para poder garantizarse que en algún momento 02:31:38
va a poder comunicarse con ese dispositivo 02:31:41
bluetooth, y este es el problema 02:31:43
por el que los dispositivos bluetooth son a veces 02:31:45
tan lentos, porque hay que dejar pasar varias de estas ventanas 02:31:47
veis que estas ventanas son de 4 segundos, de más de 4 segundos 02:31:50
hay que dejar pasar varias de estas ventanas para 02:31:54
conseguir una comunicación eficiente, en IOS 02:31:58
aunque no lo tienen publicado, no se sabe con certeza porque el código es cerrado 02:32:03
normalmente los dispositivos funcionan mejor y se cree que es porque 02:32:06
utilizan valores de 40 y de 30 milisegundos, en vez de 3 segundos 02:32:10
y un segundo ocupan 40 02:32:14
y usan 40 y 30 02:32:17
no se sabe con certeza, pero bueno 02:32:18
ahí lo dejo, esa es la 02:32:21
explicación de que funcionen mejor 02:32:23
los dispositivos iPhone 02:32:25
los dispositivos Apple 02:32:27
que los Android, vale, bueno 02:32:28
pues aquí tenemos entonces la clave de todo esto 02:32:30
nosotros vamos a tener perfiles 02:32:33
dentro de los perfiles vamos a tener servicios 02:32:34
y dentro de los servicios vamos a tener 02:32:37
características, que a su vez van a estar compuestas 02:32:39
por propiedades 02:32:41
valores y descriptores 02:32:42
Pues lo interesante es que cada uno de estos, cada servicio y cada característica y cada descriptor tiene un identificador único. Esos identificadores están compuestos por 16 bytes y no están asignados, no están reservados, los puede usar cualquiera. 02:32:44
de hecho hay generadores por ahí 02:33:02
de UIDs 02:33:04
pero hay otros que son abreviados 02:33:06
que son los de 2 y los de 4 bytes 02:33:09
que esos sí que están registrados 02:33:11
por el SIG, por el Special Group Interest 02:33:12
de Bluetooth 02:33:15
entonces esos no los puedes usar libremente 02:33:15
tú puedes usar uno de 16 bytes 02:33:18
sin problemas, pero de 2 o de 4 bytes 02:33:20
no puedes 02:33:23
entonces bueno, esto ya lo hemos visto 02:33:24
que es lo de antes 02:33:26
el sistema de descubrimiento 02:33:27
que aquí tenéis los servicios que están predefinidos 02:33:30
por ejemplo aquí tenemos los de 2 bytes 02:33:33
pues de 2 bytes 02:33:34
un 1852 02:33:36
es un sistema de anuncios por audio 02:33:37
vale 02:33:41
yo que sé, un 1843 02:33:42
es un dispositivo de 02:33:44
entrada de audio, vale, todo esto 02:33:46
está 02:33:49
registrado, vale, por la 02:33:50
SIG, entonces si yo necesito 02:33:52
crearme mi propio UID 02:33:54
pues simplemente me vengo aquí 02:33:56
a una dirección como esta, uidgenerator 02:33:58
voy a ir por ejemplo 02:34:01
para que lo veáis un momento, aquí 02:34:02
uidgenerator.net 02:34:06
y ahí le digo que me genere 02:34:09
una, que me genere 02:34:12
directamente un uid 02:34:14
y yo ese uid lo podría usar 02:34:16
para un servicio, lo podría 02:34:18
usar para una característica, para lo que yo 02:34:20
necesitará, nosotros lo usaremos principalmente 02:34:22
para los servicios 02:34:25
vale, entonces 02:34:26
en las características que tenemos 02:34:28
pues el valor, ¿vale? ¿El valor qué es? Pues si es una 02:34:30
característica de temperatura, pues el valor 02:34:32
sería 23 grados. Luego 02:34:34
tener propiedades. Las propiedades 02:34:36
determinan qué se puede hacer con 02:34:38
ese valor. Si se puede leer, 02:34:40
si se puede escribir, si se puede notificar, 02:34:42
ya veremos luego qué es esto de la notificación, 02:34:45
¿vale? Y el descriptor son simplemente 02:34:47
metadatos, ¿vale? Es información que tú 02:34:49
puedes poner ahí, es decir, esto es un 02:34:50
sensor de temperatura de tipo 02:34:52
pues NTP, o es una 02:34:54
sonda, de lo que sea, ¿vale? 02:34:56
Son simplemente información adicional. 02:34:58
entonces, resulta que tenemos ya características 02:35:00
también predefinidas por el SIG 02:35:03
¿vale? que son estas que veis aquí 02:35:05
pues por ejemplo, si yo tengo 02:35:07
una edad 02:35:08
pues una edad la tengo que meter 02:35:10
en una característica que sea 02:35:13
que utilice el UID 2A80 02:35:14
¿vale? 02:35:17
un nivel de alerta, pues en un 2A06 02:35:19
¿vale? hay muchísimas más 02:35:21
podéis ir a estas direcciones 02:35:23
¿vale? y hay miles de páginas 02:35:24
de números de estos 02:35:26
ya asignados 02:35:28
y ahora bien 02:35:30
ahora ya decimos, vale, muy bien 02:35:33
hemos contado aquí un mundo maravilloso 02:35:35
y ahora esto en realidad, ¿cómo podemos usarlo? 02:35:37
bueno, pues por ejemplo 02:35:39
en el caso del SP32 02:35:40
aquí os cuento un poquillo que podéis utilizar 02:35:42
entonces resulta que para el SP32 02:35:45
hay varias librerías 02:35:47
la librería Nimble 02:35:49
la librería BluDroid 02:35:51
o el SP Controller 02:35:52
y según la que elijáis, podéis usar una cosa u otra 02:35:54
pero podéis ver claramente 02:35:57
que en cuanto pasamos a la versión 5 02:35:58
prácticamente no podemos hacer nada 02:36:00
¿vale? hasta la versión 4 02:36:02
pues más o menos podemos hacer 02:36:05
lo mismo en todas ¿vale? 02:36:06
que es básicamente conexiones LE 02:36:08
pero cualquier otra posibilidad como esta 02:36:10
que yo os decía de largo alcance que estáis viendo 02:36:12
aquí ¿vale? o 02:36:14
el paquete 02:36:16
extendido no lo podemos usar 02:36:18
en ninguna de las librerías que existen para el SP32 02:36:20
o sea que estamos bastante 02:36:23
bastante limitados 02:36:24
bueno 02:36:26
¿cuál es el problema que tenemos realmente 02:36:27
en Bluetooth? pues el problema 02:36:32
que tenemos no es la encriptación 02:36:34
la encriptación de los datos está bien resuelta 02:36:36
el problema es la autenticación 02:36:38
es decir, ¿cómo sé yo que estoy 02:36:40
hablando con quien yo creo que estoy 02:36:42
hablando? ¿vale? 02:36:44
eso es un problema, y eso no son 02:36:46
capaces de resolverlo bien 02:36:48
en Bluetooth, en BLE 02:36:49
¿vale? por eso muchas veces se recurre 02:36:51
a este sistema OV 02:36:54
que es el que os digo que hace uso 02:36:55
de un sistema externo que usa NFC 02:36:57
o otra tecnología para poder 02:37:00
hacer el pareado 02:37:02
entonces bueno, eso es un problema 02:37:03
que está todavía sin resolver 02:37:06
y aquí si queréis probar por ejemplo 02:37:07
ver cuantos dispositivos BLE 02:37:10
hay en vuestro alrededor 02:37:12
yo creo que esto ya se habrá cargado, ahora ya si 02:37:13
a ver, lo voy a arrancar 02:37:16
y veis que aquí me está dando la MAC 02:37:17
este es el 02:37:26
identificador de 02:37:28
mi SP32, del controlador 02:37:29
el controlador bluetooth 02:37:32
de mi SP32 02:37:34
y si ahora ejecuto 02:37:36
este ejemplo 02:37:38
de escáner 02:37:39
si me voy aquí a ejemplos 02:37:41
de BL 02:37:45
escáner 02:37:46
no esté 02:37:47
con escáner 02:37:50
scan, este 02:37:51
vale, lo voy a poner ahí a cargar 02:37:53
tardará un rato, espero poderlo enseñar 02:37:56
antes de acabar la clase 02:37:58
Lo que vamos a ver ahí es todos los dispositivos que tengo a mi alrededor de tipo BL, ¿vale? A ver si acaba de cargar. Vale, pues ya está aquí, le doy a cargar, ¿vale? Mientras esto se carga, voy a dar un salto mortal, ¿vale? Porque quiero contaros una cosa que creo que os va a interesar, que es esto de las notificaciones y las indicaciones. 02:37:59
resulta que tú dentro de los servicios 02:38:40
que te puedes crear 02:38:43
de las propiedades 02:38:45
recuerdo en este gráfico 02:38:46
aquí 02:38:48
recordad, tenemos servicios 02:38:51
que tienen características 02:38:52
y esas características tienen valores 02:38:54
y tienen propiedades 02:38:57
por ejemplo, si esto es una característica de temperatura 02:38:58
el valor sería 25 grados 02:39:00
y dentro de las propiedades 02:39:03
es lo que tú puedes hacer con la característica 02:39:04
puedes leerla, puedes escribirla 02:39:07
o muy importante 02:39:08
puedes notificarla 02:39:10
¿vale? 02:39:12
que es esta parte del salto mortal que os estaba diciendo 02:39:13
notificarla 02:39:16
¿notificarla qué quiere decir? 02:39:18
eso quiere decir 02:39:21
que es directamente el sensor 02:39:22
el que envía la información 02:39:23
al cliente, es decir, es como si el cliente 02:39:25
se quedase suscrito 02:39:28
a cualquier cambio de temperatura 02:39:29
y el cliente no le tiene que preguntar al sensor 02:39:31
oye, dime la temperatura 02:39:34
es el sensor el que le dice al cliente 02:39:35
la temperatura ha cambiado 02:39:37
eso es una notificación 02:39:39
y eso es muy interesante 02:39:41
porque de pronto tenemos comunicación 02:39:43
en sentido contrario 02:39:45
recordad que el servidor era el sensor 02:39:46
y el cliente es el móvil 02:39:48
entonces el cliente le tenía que preguntar al sensor 02:39:50
oye por favor dime la temperatura 02:39:53
y él le contestaba 02:39:54
pero gracias a las notificaciones 02:39:56
lo que podemos hacer es que sea el propio sensor 02:39:58
el que notifique al cliente 02:40:00
que ha cambiado la temperatura 02:40:03
sin que el cliente se lo solicite 02:40:04
eso es una notificación 02:40:06
como os digo, y hay otro tipo de 02:40:08
notificaciones que se llaman indicaciones 02:40:10
¿y en qué se diferencian 02:40:12
de las notificaciones? 02:40:14
en el que el cliente confirma 02:40:15
que ha recibido esa notificación 02:40:18
simplemente esa es la diferencia 02:40:19
las indicaciones son notificaciones 02:40:21
pero en las que el cliente confirma 02:40:24
que ha recibido la información 02:40:26
entonces bueno, aquí 02:40:27
en la presentación tenéis 02:40:29
ejemplos de notificaciones 02:40:31
pero lo más interesante que tiene esto para mí 02:40:33
es que tú te puedes crear aplicaciones 02:40:35
en tu teléfono móvil 02:40:38
que utilicen BLE 02:40:39
y entonces te vas a poder conectar 02:40:41
o sea, tú puedes crear una app 02:40:44
y esa app 02:40:45
te va a permitir conectarte a los sensores 02:40:47
que tú quieras, entonces un problema 02:40:49
grave que tenemos para crear aplicaciones 02:40:51
es que no es fácil, podemos utilizar 02:40:53
frameworks que facilitan un poco las cosas 02:40:55
podemos hacerlo en Java 02:40:57
pero lo bueno que tiene es que lo podemos 02:40:58
hacer incluso en App Inventor 02:41:01
que esto está 02:41:03
disponible para cualquiera 02:41:04
entonces os quería enseñar aquí 02:41:07
un pequeño ejemplo que he preparado 02:41:09
que lo tenéis aquí todo en la presentación 02:41:11
entonces fijaos 02:41:13
ahora os lo enseño, lo tengo ya cargado en 02:41:15
App Inventor para que lo veáis 02:41:17
pero para aterrizar todo esto que os he estado 02:41:18
contando, lo que yo tengo 02:41:21
aquí 02:41:23
lo que tengo aquí 02:41:23
es un identificador 02:41:26
de servicio y un 02:41:29
identificador de características 02:41:31
esos identificadores los he 02:41:32
generado con el generador de 02:41:35
UIDs que os he enseñado antes, ¿vale? 02:41:37
Y luego he creado un botón 02:41:39
en... Bueno, la aplicación es esta. 02:41:41
¿Veis que tiene un botón para escanear? 02:41:43
¿Vale? Otro botón 02:41:46
para parar el escaneo. 02:41:47
Y luego eliges el dispositivo que tú quieras 02:41:49
y te conectas a él o te 02:41:51
desconectas de él, ¿vale? Entonces, ¿eso cómo se hace? 02:41:53
Pues fijaos. Es este 02:41:55
programilla que he hecho aquí. Tengo un botón 02:41:57
que es el botón de escanear 02:41:59
que lo que hace es que llama 02:42:00
al objeto Bluetooth LE 02:42:02
inicia el escaneo, otro que es para el escaneo 02:42:05
otro que es cuando encuentra un dispositivo 02:42:08
lo añade a la lista, es decir, lo voy aquí a ver 02:42:11
en esta lista, ¿vale? otra vez que cuando le doy 02:42:14
al botón conectar, se conecta con ese dispositivo 02:42:17
y claro, si yo me conecto con ese dispositivo que puede ser 02:42:20
un SP32, por ejemplo, ya podría intercambiar 02:42:23
información entre mi teléfono móvil con una 02:42:26
aplicación que yo me crease, ¿vale? imaginaos que esto es 02:42:29
pues por ejemplo, un gráfico de vuestra casa 02:42:31
y que queréis leer aquí las temperaturas de vuestra casa 02:42:34
o que esto es un mando para controlar 02:42:37
una grúa, lo que vosotros queráis 02:42:39
te puedes quedar en la aplicación que tú quieras aquí 02:42:41
y por Low Energy enviar 02:42:42
esa información 02:42:45
entonces, ¿cómo funciona 02:42:46
todo esto? pues bueno, lo tengo aquí abierto 02:42:49
en App Inventor 02:42:51
a ver si lo tengo por aquí 02:42:52
esto es el generador 02:42:55
es que tengo 02:42:57
una cosa ahí arriba y no puedo ver 02:43:00
mmm 02:43:03
no sé si lo tengo ahí 02:43:04
o lo tengo en Chrome 02:43:07
a ver dónde lo he abierto 02:43:08
vale, voy a abrir una 02:43:10
página de App Inventor 02:43:16
App Inventor 02:43:18
me apredito 02:43:26
veis, si tengo ya aquí una 02:43:41
una aplicación creada 02:43:58
es esa que os estaba enseñando 02:44:00
¿vale? 02:44:07
Y lo más interesante que tiene es esto de aquí. Veis que tiene un módulo que es el Bluetooth Low Energy. Ese módulo no viene por defecto en App Inventor. Lo tienes que añadir como una extensión. Tienes que ir aquí a importar extensión y ahí en esa extensión tienes que importarla. ¿Cómo la importas? Pues os lo he dejado ahí puesto en la presentación. 02:44:07
tienes que 02:44:30
usar esta dirección para poder 02:44:33
importarla, ¿vale? y el código fuente está ahí 02:44:36
si lo queréis ver 02:44:38
bueno, pues una vez que la tienes importada 02:44:39
como la tengo yo 02:44:42
la he añadido aquí 02:44:44
y eso quiere decir que ya puedo utilizar 02:44:45
el modem bluetooth de mi teléfono 02:44:47
móvil en esta aplicación, ¿vale? entonces yo he 02:44:50
creado aquí una cosa sencilla como os estaba enseñando 02:44:52
y ahora si voy aquí a ver 02:44:54
los bloques 02:44:56
pues veis que tengo aquí 02:44:56
los bloques que os he enseñado a vosotros 02:44:59
que tenía el bloque del servicio 02:45:02
pero en este caso he añadido una segunda 02:45:04
característica, tengo la primera característica 02:45:06
¿vale? y otra 02:45:08
segunda característica, ¿por qué he hecho 02:45:10
eso? porque en este ejemplo 02:45:12
lo que hacemos 02:45:14
es que utilizamos esas características 02:45:15
como se ve aquí a la derecha 02:45:18
para encender 02:45:20
y apagar un LED ¿vale? 02:45:22
si tú me mandas desde el teléfono móvil 02:45:24
el valor LEDON 02:45:26
yo lo voy a recibir aquí 02:45:27
y el SP32 va a encender el LED 02:45:29
y sin embargo si tú pulsas 02:45:34
el botón apagar LED 02:45:37
me va a mandar a esta característica 02:45:40
el valor LED OFF 02:45:43
y entonces el LED del SP32 se va a apagar 02:45:45
eso respecto a la característica 2 02:45:49
y veis que la característica 1 02:45:51
es para poder leer botones 02:45:54
es justo lo contrario 02:45:56
Y esto funciona por notificaciones, ¿vale? Si yo pulso un botón en el SP32, en mi aplicación del teléfono móvil voy a ver inmediatamente que se ha pulsado ese botón. ¿Por qué? Porque estoy usando el sistema de notificaciones. Y aquí, sin embargo, estoy usando el sistema normal, ¿vale? El de escribir y leer. 02:45:57
vale 02:46:16
pues bueno, yo creo que 02:46:21
lo vamos a tener que dejar por aquí 02:46:24
sé que es mucha 02:46:25
información y mucho más que hay 02:46:28
esto es un mundo inacabable 02:46:29
pero no quiero 02:46:31
que dejaros con la idea esa 02:46:34
de que esto es imposible, al revés 02:46:35
tenéis aquí como veis un montón 02:46:37
de información que está 02:46:39
todo aquí, no oculto nada 02:46:41
está todo aquí para poder hacer este ejemplo 02:46:43
por ejemplo que os estaba enseñando 02:46:46
de los botones ¿vale? está todo aquí 02:46:47
las soluciones de los ejercicios y todo 02:46:49
entonces la idea 02:46:51
es que 02:46:53
vosotros veáis 02:46:55
todas las comunicaciones que hemos usado 02:46:57
en este curso ¿vale? hemos usado un montón de 02:47:00
comunicaciones y veáis que unas 02:47:01
tienen puntos fuertes y 02:47:03
puntos débiles y que hay veces 02:47:05
que no tenemos más remedio 02:47:07
que combinar varias de esas comunicaciones 02:47:09
¿qué se me ha quedado en el tintero? 02:47:12
pues principalmente 02:47:14
se me ha quedado en el tintero la parte de NB-IoT, ¿vale? Os he subido también la presentación 02:47:15
y nada, voy a dar unas nociones 02:47:20
para que sepáis un poco lo que vais a encontrar en esa presentación, ¿vale? 02:47:23
El NB-IoT ya es un protocolo celular, 02:47:28
es decir, es un protocolo ya que no usa bandas ISM, usa bandas 02:47:32
con licencia. Entonces, para utilizarlo, yo necesito una SIM, 02:47:35
que era el otro ejemplo que tenía aquí preparado, pero que no me va a dar tiempo 02:47:39
a contar. Entonces, tú necesitas una SIM y luego necesitas un modem celular, que es 02:47:43
este que estoy señalando ahora con el dedo en la web, ¿vale? Este curso yo tenía preparado 02:47:49
hacerlo con la SIMGY91, que es un módulo de Nordic bastante complicado de utilizar 02:47:54
y un módulo más asequible, que es el SIM7080, ¿vale? Entonces, me voy directamente a este 02:47:59
SIM7080 contándoos que tenéis que tener en cuenta que estos dispositivos, estos modems 02:48:06
celulares, tienen una SIM como se estaba diciendo 02:48:12
y que lo primero que tienen que hacer es cuando tú 02:48:15
metes la SIM y arrancas el modem 02:48:18
lo que hace el modem es conectarse al router de tu proveedor 02:48:20
¿vale? de Orange o de quien sea 02:48:25
entonces ese router es lo que se llama el APN 02:48:27
que seguramente recordéis que alguna vez habéis tenido 02:48:30
que configurarlo en vuestro teléfono móvil, en los teléfonos móviles 02:48:33
más antiguos para poder tener datos había que 02:48:36
configurar el APN, en los más nuevos ya se configura 02:48:39
automáticamente, ¿vale? 02:48:42
Entonces, una vez que ya se ha configurado 02:48:44
ese router, ese router lo que hace 02:48:46
es de intercambio entre 02:48:48
la red celular y la red 02:48:50
internet, ¿vale? 02:48:52
Entonces, en NB-IoT podemos 02:48:54
usar dos tipos de protocolo. 02:48:56
El protocolo UDP, que os sonará, que es 02:48:58
un protocolo del stack TCP-IP, 02:49:00
o sea, que usa direcciones IP, 02:49:02
y otro que es el protocolo 02:49:04
no IP, ¿vale? 02:49:06
¿Por qué usaríamos protocolos 02:49:08
no IP? Porque son menos verbosos. 02:49:09
Cuando queremos ahorrar en datos y en energía, utilizamos protocolos no IP y así nos ahorramos los 60 bytes del encabezado UDP. Daos cuenta que en Internet de las Cosas los datos que nosotros transmitimos, a veces es un byte, 6 bytes. Pues para transmitir 6 bytes, tener que usar un encabezado de 60 bytes parece una locura. 02:49:11
¿vale? pero esto tiene un problema 02:49:29
si yo uso un APN 02:49:31
no IP ¿vale? si uso 02:49:33
un APN de estos que no es un APN UDP 02:49:35
sino que es un APN no IP 02:49:37
los datos no me van a llegar a mi directamente 02:49:39
voy a tener que ir yo a recogerlos 02:49:41
al proveedor ¿vale? 02:49:43
voy a tener que ir a Orange 02:49:46
y a través de una API voy a tener que recoger yo 02:49:47
esos datos ¿por qué? porque esos datos 02:49:49
no están vinculados a una dirección IP 02:49:51
están vinculados a un nombre 02:49:53
de dispositivo entonces yo tendré que ir 02:49:55
a ese proveedor o a través de esa API 02:49:57
y descargar los datos, sin embargo 02:49:59
si uso CoAP, que es un protocolo 02:50:01
sobre UDP, yo directamente 02:50:03
desde mi sensor, desde mi mota 02:50:05
podré mandar los datos, por ejemplo, a 02:50:07
Thingsboard, que es un servicio en la nube 02:50:09
¿vale? sin embargo, con los servicios no IP 02:50:11
no podría 02:50:13
y simplemente, aquí hay muchísima 02:50:14
información, ¿vale? una importante 02:50:17
es cómo conseguir las tarjetas 02:50:20
yo, por ejemplo, las compro en OneCE 02:50:21
¿vale? que es esta empresa 02:50:23
que tengo por aquí 02:50:25
una, es esta 02:50:27
One C, que me parece que 02:50:30
cuesta la tarjeta 02:50:32
10 euros por 10 años 02:50:34
¿vale? entonces 02:50:36
el módulo que yo estoy usando 02:50:38
es este módulo 02:50:41
el SIM7080 02:50:42
y este es muy fácil de utilizar porque se usa por comandos 02:50:43
AT, así es que tú 02:50:46
directamente te conectas a él 02:50:48
¿vale? voy a conectar un momento 02:50:50
para que al menos lo veáis funcionando 02:50:52
me conecto 02:50:54
y al conectarlo 02:50:56
a ver, ¿dónde está la mesa 02:51:04
de dispositivos? 02:51:20
¿Este servicio lo ofrecen todos los 02:51:24
operadores o solo algunos? 02:51:26
No, solo algunos, ¿vale? 02:51:28
Todos ofrecen el co-app, eso te lo ofrecen 02:51:30
todos. El Noipet solo te lo 02:51:32
ofrece algunos operadores, ¿vale? 02:51:34
Entonces, aquí 02:51:37
ahora lo acabo de conectar y ahora 02:51:38
lo tengo que arrancar, ¿vale? Que para arrancarlo 02:51:40
tiene un pin que lo tienes que poner en alto 02:51:42
luego en bajo, un segundo 02:51:44
y luego 02:51:47
desconectarlo, ¿vale? 02:51:50
Como veis, tienen sus cosillas, estos 02:51:52
modems, ¿vale? Y una vez que he hecho 02:51:54
eso, ya 02:51:56
me está generando aquí los tres puertos, 02:51:58
¿vale? Y uno de esos 02:52:00
puertos, ¿veis que pone comandos AT? 02:52:02
Pues ese es el puerto que yo tendría que usar 02:52:05
para comunicarme con este dispositivo. 02:52:06
En este caso es el puerto 25. 02:52:08
Tengo yo aquí abierto el hiperterminal 02:52:11
que he estado probando antes, ¿vale? 02:52:12
Entonces le digo aquí que me quiero conectar 02:52:14
al puerto 25 02:52:16
clear, open 02:52:17
¿vale? y en principio ya estoy 02:52:19
conectado, entonces si yo le mando un comando 02:52:22
por aquí, por ejemplo le llamo, le mando 02:52:24
AT, me contesta ok 02:52:26
¿vale? y luego ya simplemente 02:52:30
cuestión de ir mandando comandos 02:52:32
según lo que quieras hacer, pues por ejemplo 02:52:34
yo quiero saber que dirección IP 02:52:36
me han asignado 02:52:38
pues sería este comando de aquí 02:52:40
lo pego aquí por ejemplo 02:52:42
lo envío 02:52:49
¿vale? y de momento no tengo dirección IP 02:52:50
porque voy a ver si está conectado 02:52:53
a la red. Me está dando error, algo le está pasando. 02:52:57
Voy a ver si tengo ya operador. Esta tarjeta aquí en España funciona con 02:53:07
Orange. No, no tengo operador. Si no me tenía que salir ahí la información 02:53:11
del operador. Ah, claro, no tengo operador porque está la tarjeta 02:53:16
sin aquí fuera. Acabo de ver que ha salido la tarjeta sin. 02:53:20
Sería cuestión de meter la tarjeta sin 02:53:25
y veríais que con estos 02:53:27
comandos AT, pues directamente 02:53:30
ya puedes hacer comunicaciones co-app 02:53:32
¿vale? o comunicaciones 02:53:34
directamente por UDP 02:53:36
¿y esto qué es lo interesante? pues lo interesante es que 02:53:38
tú puedes ir a la página de 02:53:40
WANS, que no la tengo 02:53:42
por aquí abierta, me parece, o sí 02:53:45
02:53:46
¿vale? y yo te la hago un portal en el que 02:53:48
veis, yo tengo dos tarjetas, una 02:53:50
está conectada y otra desconectada 02:53:52
y luego en cada una de estas tarjetas yo 02:53:54
podría entrar, bueno ya me hace desacreditado 02:53:56
pero podría entrar y ver la información que estoy intercambiando 02:53:59
con esa tarjeta, pues así funciona esto de NB-IoT 02:54:03
y entonces claro, quedó pendiente la parte de 02:54:06
comunicaciones por satélite, pero es que la parte de comunicaciones por satélite 02:54:08
ahora mismo es así, es direct to cell, directamente a celda 02:54:12
es decir, funciona con NB-IoT, lo que pasa es que 02:54:15
en vez de conectarnos con estaciones base en tierra 02:54:17
nos conectamos con satélite, así es que hay operadores 02:54:20
WANCE no es uno de ellos 02:54:23
pero hay otros operadores que ya te permiten utilizar 02:54:25
directamente por comunicaciones por satélite 02:54:28
y para ti es completamente transparente 02:54:30
o sea, tú no ves la diferencia 02:54:32
entre estar usando NB-IoT 02:54:33
por estaciones base terrestre o por estaciones 02:54:35
por satélite 02:54:38
bueno, lo vamos a dejar aquí 02:54:39
siento que no me haya dado tiempo 02:54:41
a contar más, pero es que es igual 02:54:44
si no hubiera dado tiempo a contar más 02:54:45
me hubieran quedado más cosas por contar 02:54:46
entonces nada 02:54:48
me despido de vosotros, ya sabéis que estoy 02:54:50
a vuestra disposición para dudas cuando vosotros 02:54:53
queráis, acordaremos 02:54:55
esa sesión para soldar las placas 02:54:57
y nada más, creo que 02:54:59
no se me olvida nada, Jesús 02:55:01
Al final, la sesión para 02:55:02
lo de soldar las placas 02:55:06
me gustaría saber un poco 02:55:07
porque hablamos la semana que viene, no 02:55:10
la siguiente, ¿verdad? 02:55:12
A mí me da igual, cuando la pongáis 02:55:15
Sí, sí, es mejor 02:55:17
que tenemos evaluaciones 02:55:18
Lo digo por consultarlo 02:55:19
Vale, pues yo lo consulto 02:55:22
y os pongo un correo 02:55:24
para la semana del 02:55:26
las siguientes 02:55:27
del 10 al 14, no, para la semana del 02:55:29
17 al 21 02:55:32
si, ok 02:55:33
lo consulto y os pongo un correo 02:55:36
¿y dónde sería? ¿en el ISMIE o dónde? 02:55:38
yo lo voy a consultar 02:55:41
aquí en el ISMIE, a ver si nos dejan 02:55:42
la misma sala donde estuvimos 02:55:44
¿un martes o un jueves? 02:55:45
exacto 02:55:47
preferiblemente martes 02:55:48
para no trastocar un poco los días 02:55:51
no olvidarlo de la encuesta 02:55:53
por favor 02:55:59
no te preocupes 02:56:00
muchas gracias a todos 02:56:01
muchas gracias 02:56:04
a vosotros 02:56:08
chao, nos vemos 02:56:10
Idioma/s:
es
Etiquetas:
Mediateca
Autor/es:
ISMIE
Subido por:
Mediateca ismie
Licencia:
Reconocimiento - No comercial - Compartir igual
Visualizaciones:
9
Fecha:
13 de marzo de 2025 - 9:34
Visibilidad:
Público
Centro:
ISMIE
Duración:
2h′ 56′ 21″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
707.80 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid