Red de conocimiento informático - Material del sitio web - Cómo utilizar CC2540 para crear iBeacon

Cómo utilizar CC2540 para crear iBeacon

Preparación

Una PC

IAR Embedded Workbench IDE, disponible como prueba de 30 días.

Un teléfono inteligente con Bluetooth 4.0 y una de las siguientes aplicaciones instaladas

Tienda de aplicaciones Google Play de Android.

Placa de desarrollo CC2540

Descargador del depurador CC

Crear documento de proyecto iBeacon

Instalar el entorno de desarrollo CC254x oficial de TI

Copia la carpeta C:\Texas Instruments\BLE-CC254x-1.3.2\Projects\ble\SimpleBLEBroadcaster

Pega en: C:\Texas Instruments\BLE-CC254x-1.3.2/projects\SimpleBLEBroadcaster carpeta

Pegue en .\Ejecute IAR Embedded Workbench, haga clic en Archivo > Abrir > Espacio de trabajo

Modificar el código fuente

simpleBLEBroadcaster.c

// GAP - datos publicitarios (tamaño máximo = 31 bytes, pero

//es mejor mantenerlos breves para ahorrar energía al hacer publicidad)

static uint8 advertData[] =

{

// Banderas; esto configura el dispositivo para usar el modo visible limitado

// (cada vez que se publican anuncios de 30 segundos) en lugar del normal

// Modo visible (publicar anuncios indefinidamente)

0x02, //La longitud de estos datos

GAP_ADTYPE_FLAGS,

GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,

// Tres -byte de datos de transmisión "1 2 3"

0x04, //Longitud de los datos, incluidos los bytes del tipo de datos

GAP_ADTYPE_MANUFACTURER_SPECIFIC, // Tipo de datos publicitarios específicos del fabricante

1,

2,

3

};

Modificar las siguientes palabras clave

UID: E2C56DB5- DFFB-48D2-B060-D0F5A71096E0

Mayor: 1 (0x0001)

Menor: 1 (0x0001)

Potencia medida: -59 (0xc5 )

// GAP - Datos publicitarios (tamaño máximo = 31 bytes, pero

//Es mejor mantenerlo más corto para ahorrar energía al hacer publicidad)

estático uint8 advertData[] =

{

// 25 bytes de datos publicitarios de ibeacon

// Preámbulo: 0x4c000215

// UUID: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0

// Mayor: 1 (0x0001)

// Menor: 1 (0x0001)

// Potencia medida :

0x1A, // La longitud de estos datos incluye datos // La longitud de estos datos incluye bytes de tipo de datos

GAP_ADTYPE_MANUFACTURER_SPECIFIC, // Tipo de datos publicitarios específicos del fabricante

0x4c,

0x00,

0x02,

p>

0x15,

0xe2,

0xc5,

0x6d,

0xb5,

0xdf,

0xfb,

0x48,

0xd2,

0xb0,

0x60,

0xd0,

0xf5,

0xa7,

0x10,

0x96,

0xe0. ,

0x00,

0x01,

0x00,

0x01,

0xc5

};

El siguiente paso es modificar el tipo de transmisión modificando el siguiente código

//uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND // Usar publicidad no conectable

<; p> uint8 advType = GAP_ADTYPE_ADV_DISCOVER_IND; // Usar anuncios escaneables no dirigidos

Modifique el código a continuación

//uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND // Usar anuncios escaneables no dirigidos

Cambiar a uint8 advType = GAP_ADTYPE_ADV_NONCONN_IND; // Usar anuncios no conectables

//uint8 advType = GAP_ADTYPE_ADV_DISCOVER_IND // Usar anuncios unidireccionales escaneables

Próxima modificación GAP

//Establecer parámetros de función GAP

GAPRole_SetParameter( GAPROLE_ADVERT_ ENABLED, sizeof( uint8 ), amp; inicial_advertising_enable

GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), amp.

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, tamaño de ( scanRspData ), scanRspData

GAPRole_ SetParameter( GAPROLE_ADVERT_DATA, tamaño de ( advertData ), advertData

); GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof( uint8 ), & advType );

Dado que iBeacon debe transmitir continuamente y no responder a ninguna solicitud de datos, modificaremos GAPROLE_ADVERT_OFF_TIME y GAPROLE_SCAN_RSP_DATA.

//Establecer parámetros de rol GAP

GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), amp; inicial_advertising_enable

//GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), y amp; p>

p>

GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof( uint8 ), amp; advType );

Guarde el proyecto, compile y descargue el programa a la placa de desarrollo a través de CCDebugger.

Seleccione Proyecto gt; Limpiar para limpiar el proyecto.

Seleccione Proyecto gt; Crear para crear el proyecto.

Seleccione Proyecto gt; Descargar y depurar para enviar el código al llavero CC2540.

Seleccione Depurar gt; Ir para ejecutar el código en el llavero CC2540.

BLE iBeacon

Protección TI Displayport ESD--TPD8S009TPD8S009

Arduino SPI Essentials

TAGS

Arduino Arduino Due Arduino Esplora Atmega32u4 Atmel BacklightBMP085 Bootloader CC3x00 Hoja de datosDisplayport EasyDriver EDID eDPEsplora HDMI HMC5883L I2CJoystick LCD LED Luban LVDS MIPIMPU6050 MySQL Nginx PCB PHP pinModePWM PX4Raspberry Pi RGB SensorSPIStepper Motor Ubuntu Wifi Joystick Raspberry Pi Motor paso a paso fuente de alimentación retroiluminación Bluetooth

Categoría

Impresora 3D

Android

Instrucciones de aplicación

Arduino

AFR

Controlador de retroiluminación

C

CC3x00

Hoja de datos

Entorno de desarrollo de desarrollo

HDMI

Imágenes y Gráficos

Desarrollo de Gráficos

iOS

JavaScript

LCD/LCM

Materiales

Otros

Diseño de PCB

Gestión de energía

Desarrollo de prototipos

Raspberry Pi

Rostock

Sensor

Servidor

Software

STM32

Súper Manual

Tutorial

Trabajo