¿qué es y como funciona un ibeacon?

21
¿Qué es un iBeacon y como funciona? Pedro Muñoz Cabrera [email protected] @pmunoz08

Upload: pedro-munoz

Post on 30-May-2015

4.982 views

Category:

Technology


3 download

DESCRIPTION

Slides de mi charla sobre iBeacons en NSCoder de Madrid el 8 de nero de 2014

TRANSCRIPT

Page 1: ¿Qué es y como funciona un iBeacon?

iquestQueacute es un iBeacon y como funciona

Pedro Muntildeoz Cabrera13pmunoz08gmailcom13pmunoz08

Queacute es un beaconNo es bacon es beacon13

Su inicio data del 2007 cuando Nokia creoacute Wibree punto de inicio de BLE13

Funciona bajo el protocolo BLE (Bluetooth 40) junio 201013

Indoor positioning sytem o ldquoSystem Advertisingrdquo13

Enviacutea informacioacuten contiacutenuamente no necesario ser enlazado13

CB 40 emite en una frecuencia de 24GHz divididos en 39 canales de 20 MHz (36 primeros para intercambio de datos con dispositivos enlazados los otros 3 son los usados para ldquoAdvertisingrdquo)13

Alcamce 50-70m dependiendo de posibles interferencias

y un iBeacon

Es el nombre comercial acuntildeado por Apple para los beacons13

ldquoa new class of low-powered low-cost transmitters that can notify nearby iOS 7 devices of their presencerdquo WWDC 201313

Soportado por 13

iPhone 4S y posteriores13

iPad3 y posteriores13

iPod touch 5ordf generacioacuten13

Macs con Mavericks y Bluetooth 40

y un iBeaconAunque Bluetooth 40 estaacute soportado desde iOS 50 hasta iOS 7 no hemos contado una api para trabjar con beacons incluyendo en el Framework Core Location13

Nuevos meacutetodos en el protocolo CLLocationManagerDelegate13

CLBeacon13

CLBeaconRegion13

Dentro Bluetooth LE hay dos grupos o conceptos13

Peripheral Informan de servicios y expone sus caracteriacutesticas (properties)13

Central Buscar servicios y leenescriben las propiedades del mismo13

Un iBeacon es un ldquoPeripheralrdquo que expone sus caracteriacutesticas pero no es un servicio BLE

CLLocationManagerDelegatePara poder interactuar con iBeacons en iOS7 se han antildeadido algunos meacutetodos al protocolo CLLocationMAnagerDelegate13

locationManagerdidDetermineStateforRegion El CLLocationManager llama a este meacutetodo cuando se pasa la frontera de una region CLREgionState (CLRegionStateUnknown CLRegionStateInside CLRegionStateOutside)13

locationManagerdidRangeBeaconsinRegion El CLLocationMAnager llama a este meacutetodo cuando detecta beacons o dejar de detectarlos Los iBeacosn detectados se reciben en un aray ordenados por proximidad El maacutes cercano el primero 13

locationManagerrangingBeaconsDidFailForRegionwithError Si una CLBeaconRegion contiene datos no vaacutelidos o falla al registrase13

requestStateForRegion Nos permite preguntar por estado del dispositivo en relacioacuten con una regioacuten

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 2: ¿Qué es y como funciona un iBeacon?

Queacute es un beaconNo es bacon es beacon13

Su inicio data del 2007 cuando Nokia creoacute Wibree punto de inicio de BLE13

Funciona bajo el protocolo BLE (Bluetooth 40) junio 201013

Indoor positioning sytem o ldquoSystem Advertisingrdquo13

Enviacutea informacioacuten contiacutenuamente no necesario ser enlazado13

CB 40 emite en una frecuencia de 24GHz divididos en 39 canales de 20 MHz (36 primeros para intercambio de datos con dispositivos enlazados los otros 3 son los usados para ldquoAdvertisingrdquo)13

Alcamce 50-70m dependiendo de posibles interferencias

y un iBeacon

Es el nombre comercial acuntildeado por Apple para los beacons13

ldquoa new class of low-powered low-cost transmitters that can notify nearby iOS 7 devices of their presencerdquo WWDC 201313

Soportado por 13

iPhone 4S y posteriores13

iPad3 y posteriores13

iPod touch 5ordf generacioacuten13

Macs con Mavericks y Bluetooth 40

y un iBeaconAunque Bluetooth 40 estaacute soportado desde iOS 50 hasta iOS 7 no hemos contado una api para trabjar con beacons incluyendo en el Framework Core Location13

Nuevos meacutetodos en el protocolo CLLocationManagerDelegate13

CLBeacon13

CLBeaconRegion13

Dentro Bluetooth LE hay dos grupos o conceptos13

Peripheral Informan de servicios y expone sus caracteriacutesticas (properties)13

Central Buscar servicios y leenescriben las propiedades del mismo13

Un iBeacon es un ldquoPeripheralrdquo que expone sus caracteriacutesticas pero no es un servicio BLE

CLLocationManagerDelegatePara poder interactuar con iBeacons en iOS7 se han antildeadido algunos meacutetodos al protocolo CLLocationMAnagerDelegate13

locationManagerdidDetermineStateforRegion El CLLocationManager llama a este meacutetodo cuando se pasa la frontera de una region CLREgionState (CLRegionStateUnknown CLRegionStateInside CLRegionStateOutside)13

locationManagerdidRangeBeaconsinRegion El CLLocationMAnager llama a este meacutetodo cuando detecta beacons o dejar de detectarlos Los iBeacosn detectados se reciben en un aray ordenados por proximidad El maacutes cercano el primero 13

locationManagerrangingBeaconsDidFailForRegionwithError Si una CLBeaconRegion contiene datos no vaacutelidos o falla al registrase13

requestStateForRegion Nos permite preguntar por estado del dispositivo en relacioacuten con una regioacuten

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 3: ¿Qué es y como funciona un iBeacon?

y un iBeacon

Es el nombre comercial acuntildeado por Apple para los beacons13

ldquoa new class of low-powered low-cost transmitters that can notify nearby iOS 7 devices of their presencerdquo WWDC 201313

Soportado por 13

iPhone 4S y posteriores13

iPad3 y posteriores13

iPod touch 5ordf generacioacuten13

Macs con Mavericks y Bluetooth 40

y un iBeaconAunque Bluetooth 40 estaacute soportado desde iOS 50 hasta iOS 7 no hemos contado una api para trabjar con beacons incluyendo en el Framework Core Location13

Nuevos meacutetodos en el protocolo CLLocationManagerDelegate13

CLBeacon13

CLBeaconRegion13

Dentro Bluetooth LE hay dos grupos o conceptos13

Peripheral Informan de servicios y expone sus caracteriacutesticas (properties)13

Central Buscar servicios y leenescriben las propiedades del mismo13

Un iBeacon es un ldquoPeripheralrdquo que expone sus caracteriacutesticas pero no es un servicio BLE

CLLocationManagerDelegatePara poder interactuar con iBeacons en iOS7 se han antildeadido algunos meacutetodos al protocolo CLLocationMAnagerDelegate13

locationManagerdidDetermineStateforRegion El CLLocationManager llama a este meacutetodo cuando se pasa la frontera de una region CLREgionState (CLRegionStateUnknown CLRegionStateInside CLRegionStateOutside)13

locationManagerdidRangeBeaconsinRegion El CLLocationMAnager llama a este meacutetodo cuando detecta beacons o dejar de detectarlos Los iBeacosn detectados se reciben en un aray ordenados por proximidad El maacutes cercano el primero 13

locationManagerrangingBeaconsDidFailForRegionwithError Si una CLBeaconRegion contiene datos no vaacutelidos o falla al registrase13

requestStateForRegion Nos permite preguntar por estado del dispositivo en relacioacuten con una regioacuten

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 4: ¿Qué es y como funciona un iBeacon?

y un iBeaconAunque Bluetooth 40 estaacute soportado desde iOS 50 hasta iOS 7 no hemos contado una api para trabjar con beacons incluyendo en el Framework Core Location13

Nuevos meacutetodos en el protocolo CLLocationManagerDelegate13

CLBeacon13

CLBeaconRegion13

Dentro Bluetooth LE hay dos grupos o conceptos13

Peripheral Informan de servicios y expone sus caracteriacutesticas (properties)13

Central Buscar servicios y leenescriben las propiedades del mismo13

Un iBeacon es un ldquoPeripheralrdquo que expone sus caracteriacutesticas pero no es un servicio BLE

CLLocationManagerDelegatePara poder interactuar con iBeacons en iOS7 se han antildeadido algunos meacutetodos al protocolo CLLocationMAnagerDelegate13

locationManagerdidDetermineStateforRegion El CLLocationManager llama a este meacutetodo cuando se pasa la frontera de una region CLREgionState (CLRegionStateUnknown CLRegionStateInside CLRegionStateOutside)13

locationManagerdidRangeBeaconsinRegion El CLLocationMAnager llama a este meacutetodo cuando detecta beacons o dejar de detectarlos Los iBeacosn detectados se reciben en un aray ordenados por proximidad El maacutes cercano el primero 13

locationManagerrangingBeaconsDidFailForRegionwithError Si una CLBeaconRegion contiene datos no vaacutelidos o falla al registrase13

requestStateForRegion Nos permite preguntar por estado del dispositivo en relacioacuten con una regioacuten

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 5: ¿Qué es y como funciona un iBeacon?

CLLocationManagerDelegatePara poder interactuar con iBeacons en iOS7 se han antildeadido algunos meacutetodos al protocolo CLLocationMAnagerDelegate13

locationManagerdidDetermineStateforRegion El CLLocationManager llama a este meacutetodo cuando se pasa la frontera de una region CLREgionState (CLRegionStateUnknown CLRegionStateInside CLRegionStateOutside)13

locationManagerdidRangeBeaconsinRegion El CLLocationMAnager llama a este meacutetodo cuando detecta beacons o dejar de detectarlos Los iBeacosn detectados se reciben en un aray ordenados por proximidad El maacutes cercano el primero 13

locationManagerrangingBeaconsDidFailForRegionwithError Si una CLBeaconRegion contiene datos no vaacutelidos o falla al registrase13

requestStateForRegion Nos permite preguntar por estado del dispositivo en relacioacuten con una regioacuten

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 6: ¿Qué es y como funciona un iBeacon?

CLBeaconHereda de NSObject y representa alos iBeacons encontrados en una CLBeaconRegion13

Nos provee de las siguientes propiedades13

proximityUUID Un ID global por ejemplo para identificar una compantildeiacutea13

major y minor Permite crear aacutereas o secciones de beacons13

proximity Distancia relativa a un iBeacon (Inmediate Near Far Unknown)13

accuracy Distancia en metros No posicioacuten exacta13

rssi Fuerza de la sentildeal recibida medida en Db13

Crear un uuid en terminal13

$ uuidgen F33AA853-94A8-4912-8BCF-D2EF6C2EF36F

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 7: ¿Qué es y como funciona un iBeacon?

CLBeaconRegion

Hereda de CLRegion define una regioacuten basada en la proximidad de un dispositivo a un CLBeacon Nos ofrece 3 inicializadores13

initWithProximityUUIDidentifier13

initWithProximityUUIDmajoridentifier13

initWithProximityUUIDmajorminoridentifier13

CLBeaconRegion region = [[CLBeaconRegion alloc]

initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier]

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 8: ¿Qué es y como funciona un iBeacon?

CLBeaconRegionPropiedades13

notifyEntryStayOnDisplay Si su valor es YES enviacutea notificaciones de beacons cuando el usuario enciende la pantalla del dispositivo y estaacute dentro de la regioacuten incluso si la app no estaacute corriendo en este caso la app se lanza en background Ojo que la app no esteacute corriendo se refiere a que esteacute inactiva porque la ha parado el SO si la apara el usuario la app no recibiraacute notificaciones Default NO13

CLRegion13

notifyOnEntry llamaraacute a locationManagerdidEnterRegion cunado se entre en una regioacuten Default Yes13

notifyOnExit llamaraacute a locationManagerdidExitRegion cunado se salga en una regioacuten Default Yes

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 9: ¿Qué es y como funciona un iBeacon?

Monitoring iBeacons selflocManager = [[CLLocationManager alloc] init] [selflocManager setDelegateself] if ([CLLocationManager isRangingAvailable]) NSLog(Beacon ranging available) NSUUID proximityUUID = [[NSUUID alloc] initWithUUIDStringUUIDiBeacon] selfbeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUIDproximityUUID identifiercomsoftpmcbeacons] [selfbeaconRegion setNotifyEntryStateOnDisplayYES] [selflocManager startMonitoringForRegionselfbeaconRegion]

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 10: ¿Qué es y como funciona un iBeacon?

Ranging iBeaconspragma mark - CLLocationManagerDelegate - (void)locationManager(CLLocationManager )manager didDetermineState(CLRegionState)state forRegion(CLRegion )region if (state == CLRegionStateInside) [selflocManager startRangingBeaconsInRegion(CLBeaconRegion )region] else [selflocManager stopRangingBeaconsInRegion(CLBeaconRegion )region] - (void)locationManager(CLLocationManager )manager didRangeBeacons(NSArray )beacons inRegion(CLBeaconRegion )region if ([beacons count] = 0) for (CLBeacon beacon in beacons) Do something

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 11: ¿Qué es y como funciona un iBeacon?

CLBeaconRegion

Meacutetodos13

peripheralDataWithMeasuredPower Devuelve un diccionario con la informacioacuten que identifica al beacon codificada ademaacutes de la informacioacuten a trnasmitir Este diccionario se debe pasar a una instancia de CBPeropheralMAnager al meacutetodo startAdvertising Este es uno de los pasos a realizar para convertir nuestro dispositivo en un iBeacon Lo veremos despues en un ejemplo 13

El paraacutemetro measuredPower es opcional representa la medida de la fuerza de la sentildeal a 1 metro de distancia del beacon

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 12: ¿Qué es y como funciona un iBeacon?

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 13: ¿Qué es y como funciona un iBeacon?

Donde encuentro un iBeaconPosiblemente lleves un potencial iBeacon en el bolsillo -) Como hemos visto un iPhone puede funcionar como iBeacon lo veremos en una Demo13

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegateself queuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT 0)] CLBeaconRegion region = [[CLBeaconRegion alloc] initWithProximityUUIDuuid majormajor minorminor identifierkBeaconIdentifier] NSDictionary peripheralData = [region peripheralDataWithMeasuredPowernil] [_peripheralManager startAdvertisingperipheralData] opcional [[UIApplication sharedApplication] setIdleTimerDisabled YES]

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 14: ¿Qué es y como funciona un iBeacon?

Donde encuentro un iBeacon

Ademaacutes acutalmente hay varios fabricantes que comercializan iBeacons e imagino que el nuacutemero creceraacute algunos son estos13

RedBearLAb plug in board for arduino httpredbearlabcombleshield13

Kontakt httpkontaktioorder-now13

GeoHopper httpgeohoppercombleupricing13

Estimote httpestimotecom13

Remotte httpremottecom 13

De las opciones de arriba la que me pareciacuteo maacutes interesante fueacute la de Estimote

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 15: ¿Qué es y como funciona un iBeacon?

Queacute oferece EstimoteLos iBeacons distribuidos por Estimote tienen las siguientes caraacutecteriacutesticas13

CPU 32bit ARM Cortex con 256kb de memoria flash13

Aceleroacutemetro13

Sensor de temperatura13

SDK realmente es un wrapper de CLLocationManager CLBeaconRegion y CLBeacon A parte de ofrecerte una api para modificar la configuracioacuten de los iBeacons (No el proximityUUID viene fijo de faacutebrica) actualizar el firmaware modificar la frecuencia de emisioacuten13

Autonomiacutea de 2 antildeos y alcance de 70 metros (en un escenaro ideal sin interferencias)13

Es estanco afirman que puede funcionar bajo el agua13

Si he de decir que estaacute en versioacuten beta y el SDK no permite exprimir al maacuteximo los ibeacons auacuten

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 16: ¿Qué es y como funciona un iBeacon?

Queacute usos se le puede dar a un iBeacon

Geoposicionamiento ldquoindoorrdquo crear zonas Proximidadlo que se te ocurra a partir de la deteccioacuten de 1 punto o regioacuten13

En Passkit ahora podemos antildeadir en el json el uuid y el texto a mostrar el dispositivo detectaraacute el beacon cuando esteacute cerca de eacutel y mostraraacute una alaerta con el texto indicado13

En combinacioacuten con el nuevo Framework Multipeer Connectivity para detectar usuarios o apps con las que puedas intercambiar informacioacuten alertando al usuario de ello

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 17: ¿Qué es y como funciona un iBeacon?

Casos de uso

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications13

Macys tests location-specific store discounts using Apples iBeacon13

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds13

PayPal Beacon

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 18: ¿Qué es y como funciona un iBeacon?

Demo

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 19: ¿Qué es y como funciona un iBeacon?

Enlaces de IntereacutesBibliografiacutea13

Bluetooth Low Energy Beacons and Retail13

With iBeacon Apple is going to dump on NFC and embrace the internet of things13

Whatrsquos New in Core Location WWDC 201313

Core Location Framework Reference13

Can you Smell the iBeacon13

Reverse Engineering the Estimote

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 20: ¿Qué es y como funciona un iBeacon?

Enlaces de Intereacutes

Coacutedigo ejemplo13

Demo 1 iBeacon Emitter for iOS13

Demo2 Working with iBeacons13

Beacon emitter for Mac13

iOS 7 SDK iBeacons Game

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08

Page 21: ¿Qué es y como funciona un iBeacon?

Gracias

Pedro Muntildeoz13pmunoz08gmailcom13pmunoz08