Bluetooth LE con BlueGiga devboard (BLE112)

3

Esta es mi primera publicación, por favor, perdóname por cualquier informalidad, pero llegaré directamente a mi punto.

Estoy intentando enviar datos RS-232 (8N1 asíncrono a una velocidad de baudios de más de 115,200) desde mi micro PIC a través de bluetooth a un teléfono inteligente. Lo he hecho con éxito con Bluetooth 2.0, pero eso fue fácil, ya que pude obtener módulos BT 2.0 con un conjunto de comandos AT que me permitió configurarlo a cualquier velocidad en baudios que quisiera. Ahora estoy haciendo la transición a Bluetooth LE (modo único) con el kit de evaluación Blue Giga y el módulo BLE-112. Tengo una idea general de cómo codificar el BLE-112 para recibir datos en serie usando su UART pero no estoy seguro de cómo enviar esos datos a la radio. Parece que tendré que guardar los datos recibidos en un archivo GATT, ¿después de lo cual se transmitirán en uno de los paquetes? ¿Hay alguna forma en que pueda transmitir datos como lo hice con BT 2.0?

Por último, transmitiría los datos al módulo Bluetooth y sé que el modo dual Bluetooth 4.0 puede ser la mejor opción, pero esta versión de modo único es con lo que tengo que trabajar en este momento.

    
pregunta user15564

2 respuestas

3

Como probablemente sepa, el BLE112 es un módulo de modo único de Bluetooth 4.0, lo que significa que no admite / interoperar con dispositivos Bluetooth anteriores a la versión 4.0. El iPhone 4s y el iPhone 5 son prácticamente los teléfonos más populares que tienen compatibilidad con Bluetooth 4.0 y proporcionan API para usar Bluetooth 4.0. Algunos proveedores de Android tienen sus propias API como Motrola para su teléfono Razr, pero no hay una API de Android para Bluetooth 4.0. Actualmente, cualquier solución que realice no funcionará con cualquier teléfono inteligente con Bluetooth.

Bluetooth 4.0 también es muy diferente a los Bluetooth más antiguos en la forma en que transmite y maneja los datos. Todos los paquetes de datos tienen solo 20 bytes de largo. Como ha leído, en el corazón de la misma se encuentra la base de datos GATT del dispositivo esclavo (generalmente un sensor) que puede ser una tabla con claves y valores. En comparación con el perfil de puerto serie (SPP), esta es una forma muy diferente de pensar en los datos.

Puede leer y escribir los valores (atributos) de las claves (controladores de atributos) localmente (sensor / esclavo) o de forma remota (teléfono móvil). La idea con gatt es que en lugar de escribir sus datos como nombre, medición, marca de tiempo en un flujo de datos largo, actualice el atributo de nombre ("valor"), atributo de medición y atributo de marca de tiempo en el gatt local del sensor. Estos cambios luego se indican al teléfono móvil por el aire. En resumen: Bluetooth 4.0 no está diseñado para usarse para crear un flujo de datos.

Sin embargo, siempre es posible simular o emular la transmisión incluso cuando todo está empaquetado. Bluegiga proporciona un Sensor de efectos de la actividad de la empresa. requerido) que discute exactamente cómo reemplazar un cable UART con Bluetooth 4.0 y brindan explicaciones detalladas sobre cómo lograr eso con el BLE112.

Actualización : cualquier dispositivo con Bluetooth y una versión de Android 4.3 o más reciente es compatible con Bluetooth 4.0 de forma nativa. Todas las pilas específicas de proveedores anteriores han quedado en desuso en favor del soporte oficial.

    
respondido por el Mikko Virkkilä
0

Llegando directamente al punto:

  

Tengo una idea general de cómo codificar el BLE-112 para recibir datos en serie usando su UART pero no estoy seguro de cómo enviar esos datos a la radio. Parece que tendré que guardar los datos recibidos en un archivo GATT, después de lo cual se transmitirán en uno de los paquetes.

Cuando crea el archivo .bgproj usando la utilidad BleUpdate, genera un archivo .txt junto con el .hex . Este archivo de texto tiene una lista de todos los atributos y sus identificadores. Estas identificaciones son lo que usted pasa como un argumento a la función de escritura.

ble_cmd_attclient_write_command(connection,atthandle,data_len,data_data)

atthandle debe ser el ID que obtienes del archivo .txt .

    
respondido por el WedaPashi

Lea otras preguntas en las etiquetas