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 pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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
C6
00:19:12
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
y
01:08:30
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
No
01:50:49
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
sí
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
de
02:10:07
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
ok
02:17:47
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
sí
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:
- 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