- ¿Qué es BLE y Bluetooth Beacon?
- ¿Cómo funciona y se utiliza la tecnología BLE con las balizas?
- ¿Qué es Eddystone Beacon?
- Requisitos
- Configurar Raspberry Pi para Eddystone Beacon
- Optimice la potencia de la señal de transmisión calibrando la potencia de transmisión
- Aplicaciones de la baliza Bluetooth Eddystone
Bluetooth es una de las tecnologías revolucionarias para transferir datos de forma inalámbrica, controlar otros dispositivos, construir sistemas de automatización del hogar, etc. Pero, ¿se ha preguntado alguna vez que el Bluetooth también se puede usar para transmitir cualquier información a dispositivos cercanos para mostrar información importante? pago, etc. Existe un protocolo desarrollado por Google para realizar la tarea que se puede implementar fácilmente en Raspberry Pi para convertirlo en transmisor de balizas Bluetooth.
En este tutorial, conoceremos BLE (Bluetooth Low Energy) y la baliza Bluetooth e instalaremos la baliza Bluetooth Eddystone en Raspberry Pi para transmitir una URL. Es muy fácil convertir Raspberry Pi en una baliza Bluetooth, ya que tiene Bluetooth incorporado.
¿Qué es BLE y Bluetooth Beacon?
El Bluetooth Low Energy, como su nombre indica, consume menos energía que el Bluetooth clásico. Se logra enviando datos cuando sea necesario con actualizaciones periódicas predefinidas. Pero a diferencia del Bluetooth clásico, no se usa para transferir archivos o música. Un dispositivo BLE funciona con Bluetooth V4.0 y puede funcionar con poca energía como servidor o como cliente, lo que hace que BLE sea una opción ideal para balizas, relojes inteligentes, bandas de fitness, etc. El Bluetooth clásico, por otro lado, es simplemente el viejo Protocolo Bluetooth que usamos para transferir archivos y otros datos. Casi todos los dispositivos BLE tienen la funcionalidad Bluetooth clásica asociada. Anteriormente explicamos BLE en detalle con ESP32.
Balizas Bluetooth:
Las balizas son los dispositivos de hardware que transmiten algunos mensajes a dispositivos electrónicos cercanos y se comportan como emisores. Esta tecnología permite que los dispositivos portátiles realicen algunas acciones cuando están muy cerca del dispositivo de baliza. Ahora, las balizas se pueden implementar usando BLE y Bluetooth clásico. Dado que, la mayoría de los teléfonos inteligentes y otros dispositivos electrónicos son compatibles con BLE y se pueden usar como receptor de baliza, la implementación de la baliza BLE es más eficiente en comparación con la baliza Bluetooth clásica para reducir el consumo de energía.
En promedio, una baliza Bluetooth de baja energía puede transmitir señales BLE a 80 metros.
¿Cómo funciona y se utiliza la tecnología BLE con las balizas?
BLE es una tecnología de bajo consumo de energía diseñada para comunicaciones de corto alcance y se prefiere cuando la duración de la batería es un factor más importante que la alta velocidad de datos. La transferencia de datos en esta comunicación es unidireccional. La baliza BLE transmite pequeños paquetes de datos a intervalos regulares de tiempo. Estos paquetes de datos son recibidos y decodificados por la aplicación de escáner de baliza instalada en los teléfonos inteligentes. Estos datos recibidos desencadenan acciones como promocionar un producto o enviar un mensaje.
En la baliza Bluetooth, se transmite un número de identificación 10 veces por segundo a través de los canales BLE. Luego, el dispositivo habilitado para Bluetooth recibe este número de identificación y la aplicación del escáner de baliza lo reconoce, lo vincula a una acción, como descargar una aplicación o contenido almacenado en la nube, y lo muestra en el teléfono inteligente.
¿Qué es Eddystone Beacon?
Eddystone es un protocolo desarrollado por Google que permite transmitir mensajes unidireccionales a dispositivos BLE. El marco de URL de Eddystone forma la columna vertebral de la Web física, que ayuda a descubrir contenido web en los alrededores. Beacon puede transmitir cuatro tipos de datos utilizando el protocolo Eddystone. Son los siguientes:
- Eddystone-URL para transmitir direcciones URL
- Eddystone-UID para difundir ID de balizas
- Eddystone-TLM para transmitir telemetría de baliza como temperatura del dispositivo, potencia de la batería, etc.
- Eddystone-EID por seguridad.
También hay otros tipos de balizas como iBeacon, que es para dispositivos compatibles con iOS, pero Eddystone es solo para dispositivos Android. También tenga en cuenta que Google ha descontinuado las notificaciones cercanas, ahora el usuario tendrá que instalar una aplicación de escáner de baliza especializada que mostrará el contenido transmitido.
En este tutorial, usaremos Raspberry Pi como Eddystone Beacon y nos enfocaremos en transmitir la dirección URL usando la URL de Eddystone para que cualquiera pueda acceder fácilmente a la información transmitida con la ayuda de sus dispositivos Android.
Requisitos
Aquí solo se necesita Raspberry Pi para construir esta baliza Bluetooth. Debe ser Raspberry Pi 2 o más reciente con Raspbian Jessie o un OD más nuevo instalado en él.
Aquí, usaremos SSH para acceder a Raspberry Pi en la computadora portátil. Puede usar la conexión VNC o Escritorio remoto en la computadora portátil, o puede conectar su Raspberry pi con un monitor. Obtenga más información sobre cómo configurar Raspberry Pi sin cabeza aquí sin un monitor.
Configurar Raspberry Pi para Eddystone Beacon
Es muy fácil configurar la emisora Eddystone en Raspberry Pi. Implica solo 3 comandos.
Esto se puede hacer configurando la HCI (Interfaz de controlador de host) a la que se puede acceder mediante hciconfig commad. Para verificar qué se puede hacer con este comando, ingrese el siguiente comando en la terminal.
hciconfig -h
1. Primero, tenemos que habilitar el dispositivo Bluetooth en nuestra Raspberry Pi usando el siguiente comando.
sudo hciconfig hci0 up
2. Ahora, tenemos que configurar el Bluetooth para "anunciar y no conectable" dispositivo usando el siguiente comando.
sudo hciconfig hci0 leadv 3
3. Los comandos anteriores hacen que el dispositivo ejecute el servicio de transmisión, ahora solo ingrese los datos de la baliza en el siguiente comando que contiene información de diferentes marcos y URL en formato hexadecimal. Ejecute el siguiente comando para iniciar la transmisión de balizas.
sudo hcitool -i hci0 cmd 0x08 0x0008 1c 02 01 06 03 03 aa fe 14 16 aa fe 10 00 02 63 69 72 63 75 69 74 64 69 67 65 73 74 07 00 00 00
Este comando transmitirá la URL
Para verificar el mensaje transmitido en su teléfono inteligente, descargue la aplicación web física o el escáner Beacon en su teléfono inteligente Android e inicie el escaneo. Verá el enlace transmitido en la aplicación como se muestra a continuación. Haga clic en el enlace para visitar y abrir el sitio web en el navegador.
Ahora entendamos la codificación hexadecimal del mensaje. En la siguiente tabla, hemos dado una explicación de todos y cada uno de los valores presentes en el código:
Valor |
Descripción |
---|---|
0x08 |
#OGF = Campo de grupo de operación = Grupo de comando de Bluetooth = 0x08 |
0x0008 |
#OCF = Campo de comando de operación = HCI_LE_Set_Advertising_Data = 0x0008 |
1c |
Longitud. El hexadecimal 1c se convierte en 23 decimales, que es el número de bytes que sigue. |
02 |
Longitud |
01 |
Valor del tipo de datos de las banderas |
06 |
Datos de banderas |
03 |
Longitud |
03 |
Lista completa de valores de tipo de datos UUID de servicio de 16 bits |
Automóvil club británico |
UUID de Eddystone de 16 bits |
fe |
UUID de Eddystone de 16 bits |
14 |
Longitud. El hexadecimal 14 se convierte en 15 decimal, que es el número de bytes que siguen |
dieciséis |
Valor del tipo de datos de datos de servicio |
Automóvil club británico |
UUID de Eddystone de 16 bits |
fe |
UUID de Eddystone de 16 bits |
10 |
Tipo de marco = URL |
00 |
TX Power (debe calibrarse) |
02 |
Esquema de URL (http: // = 0x02) |
63 |
'c' en hexadecimal |
69 |
'i' en hexadecimal |
72 |
'r' en hexadecimal |
63 |
'c' en hexadecimal |
75 |
'u' en hexadecimal |
69 |
'i' en hexadecimal |
74 |
't' en hexadecimal |
64 |
'd' en hexadecimal |
69 |
'i' en hexadecimal |
67 |
'g' en hexadecimal |
sesenta y cinco |
'e' en hexadecimal |
73 |
's' en hexadecimal |
74 |
't' en hexadecimal |
07 |
.com (.com = 0x07) |
00 |
|
00 |
|
00 |
Para transmitir cualquier URL personalizada usando Raspberry Pi Bluetooth Beacon, simplemente convierta los caracteres de la URL en hexadecimal usando cualquier herramienta en línea y póngalo en el comando anterior. Los caracteres máximos que se pueden transmitir son 16, si la URL es demasiado larga, acórtela utilizando cualquier servicio de acortamiento de URL como bitly.com y luego ajuste los datos en la tabla anterior.
Es muy engorroso y requiere mucho tiempo convertir cada carácter en equivalente hexadecimal. Entonces, para hacer su trabajo fácilmente, hay una calculadora de comandos de URL de Eddystone en la que solo necesita ingresar la URL que desea que se transmita y obtendrá su comando listo de esta manera.
La baliza Bluetooth ahora está transmitiendo la URL y funciona bien, pero hay una cosa más que calibrar: la potencia Tx, que es uno de los valores en el comando anterior para obtener la distancia precisa desde la baliza Bluetooth.
Optimice la potencia de la señal de transmisión calibrando la potencia de transmisión
En el marco de Eddystone hay pocos componentes que se transmiten y la potencia Tx es uno de ellos que indica la fuerza de la señal. Al decodificar la fuerza de la señal, el receptor encuentra la distancia desde la emisora Beacon. El valor de la potencia de Tx puede oscilar entre -12 y 10. Tenemos que encontrar el valor por método de prueba y golpe para obtener la distancia exacta. Para ello, ajuste el valor de la potencia Tx en el comando de mensaje de Eddystone y coloque su teléfono inteligente a una distancia de 1 m con la aplicación del escáner Beacon abierta. Ahora comience a poner los valores de potencia Tx en el comando desde 0 a valores negativos. Recuerde convertir los valores decimales en formato hexadecimal, para esto use las herramientas de conversión de valores en línea para una fácil decodificación y tome los dos últimos dígitos del valor convertido. En mi caso, el valor hexadecimal es f4. Verifique la distancia en la aplicación del escáner, ajuste los valores hasta que muestre aproximadamente 1 my después de eso debe usar el transmisor de URL de Eddystone con una distancia precisa.
Aplicaciones de la baliza Bluetooth Eddystone
Estos son algunos de los casos de uso de la baliza BLE:
- Venta minorista habilitada para BLE: esta tecnología se puede utilizar para atraer clientes en las cercanías de las tiendas mediante la publicidad de ofertas y ventas interesantes.
- Eventos habilitados para balizas BLE: se puede utilizar para inscripciones fáciles en los eventos y en estadios con pagos fáciles de pagar.
- Balizas BLE en Bienes Raíces: Puede obtener todos los detalles de las propiedades disponibles cerca de usted y puede reservar con un solo toque.
Hay muchas otras aplicaciones en las que puede pensar e implementar de acuerdo con los requisitos.
Entonces, así es como se puede usar la Raspberry Pi para transmitir cualquier mensaje o URL convirtiéndolo en una baliza Bluetooth usando Eddystone. Vea el video de demostración a continuación.
/>