11.1. Por qué Bluetooth¶
Las redes ponen a la cámara en una red Wi-Fi o Ethernet para que pueda comunicarse con cualquier dispositivo accesible desde ella. Un portátil al final del pasillo, un servidor en otro continente, un teléfono en itinerancia por la red celular. Ese alcance conlleva requisitos previos. Tiene que existir una red. Algún punto de acceso debe estar dentro del rango, deben estar disponibles algunas credenciales, algún router debe estar dispuesto a asignar una dirección a la cámara. La cámara también debe mantener la radio (o el puerto Ethernet) funcionando con la suficiente intensidad para conservar el enlace.
Bluetooth cubre el caso opuesto: corto alcance, sin infraestructura, bajo consumo. La cámara y un teléfono en la misma sala intercambian datos a través de un enlace de radio directo, sin nada entre medias. Sin punto de acceso, sin router, sin necesidad de que ninguna de las partes esté en red alguna. La radio permanece mayormente apagada entre breves ráfagas de actividad, de modo que una batería que apenas sobreviviría un día con Wi-Fi puede durar meses.
11.1.1. Cuándo Bluetooth es la herramienta adecuada¶
Los casos habituales en una cámara:
Un teléfono o tableta se empareja con la cámara. Un usuario cercano abre una aplicación en su teléfono y configura la cámara, lee su estado o descarga resultados, sin necesidad de poner antes ambos dispositivos en la misma red Wi-Fi. La mayoría de los teléfonos hablan Bluetooth Low Energy de forma nativa, así que la experiencia del usuario es «abre la app, pulsa conectar» y no «primero únete a esta red».
Un dispositivo ponible o sensor reporta a la cámara. Una banda de frecuencia cardíaca, un termómetro, una baliza, un interruptor de contacto: todos son dispositivos alimentados por batería diseñados en torno a Bluetooth Low Energy. La cámara se conecta como cliente, lee sus valores e incorpora los datos a lo que sea que esté haciendo.
La cámara publica un pequeño flujo de estado. Nivel de batería, último objeto detectado, velocidad de fotogramas: unos pocos números expuestos para cualquier dispositivo cercano que quiera leerlos. El emparejamiento es opcional; para datos no sensibles la cámara puede anunciar los valores directamente sin necesidad de conexión alguna.
Dos cámaras (o una cámara y un microcontrolador) comparten datos sin una red. Ambos extremos se conocen entre sí; ambos están en el mismo edificio; no hay razón para que los bytes viajen hasta la nube y vuelvan abajo para cruzar la sala.
11.1.2. Cuándo las redes son, en cambio, la herramienta adecuada¶
Las concesiones de Bluetooth no encajan en varios casos habituales:
Contrapartes fuera de rango. Bluetooth Low Energy alcanza un par de metros en la práctica, y decenas de metros en espacio libre en el mejor de los casos. Cualquier cosa que esté al otro lado de un edificio, al otro lado de la ciudad o a través de internet necesita Wi-Fi o Ethernet.
Enlaces de gran ancho de banda. Bluetooth Low Energy ofrece de decenas a unos pocos cientos de kilobits por segundo en la práctica. Transmitir fotogramas o cualquier vídeo significativo necesita Wi-Fi.
Comunicación de grupo de muchos a muchos sobre infraestructura compartida. Una sala llena de dispositivos que hablan todos con un único servidor, o una malla de cámaras que comparten resultados: ese patrón es para lo que está hecha una red IP.
11.1.3. Low Energy, no clásico¶
«Bluetooth» en el uso cotidiano abarca dos pilas de radio distintas. El Bluetooth clásico es el de los auriculares inalámbricos, el audio del coche y los enlaces de teclado/ratón: una radio de calidad de voz y audio, una pila comparativamente compleja y un consumo de energía notable. Bluetooth Low Energy (BLE) es un protocolo aparte y más reciente que comparte la marca y la banda de 2,4 GHz pero muy poco más. Está construido en torno a ráfagas de radio cortas y poco frecuentes para mantener el consumo medio ínfimo, y en torno a un modelo de datos clave/valor en lugar de la transmisión de audio.
MicroPython en la cámara solo admite BLE. El Bluetooth clásico no forma parte en absoluto de la API. «Bluetooth» a continuación significa BLE.
11.1.4. Qué cambia respecto al modelo de redes¶
BLE tiene la misma pila de cinco capas que tenían las redes, pero las capas superiores se comportan de forma diferente:
No existe la abstracción de «abrir un socket y enviar bytes». BLE está construido en torno a una pequeña base de datos clave/valor que un lado aloja y el otro lee, escribe o a la que se suscribe. La cámara publica valores con nombre (un nivel de batería, una temperatura, un registro de comandos); el par los lee o los observa.
No existe el direccionamiento por nombre. Los dispositivos se identifican anunciando (advertising) una breve emisión que describe quiénes son; los pares escanean (scan) esas emisiones y eligen una a la que conectarse.
La radio está mayormente inactiva. Ambos extremos acuerdan en el momento de la conexión con qué frecuencia despertar y comunicarse. Entre medias, ambos vuelven a dormir.
Esas tres diferencias son las que alejan al resto de la API de BLE del modelo de sockets.