精华内容
下载资源
问答
  • 蓝牙IBEACON定位资料

    2018-05-23 10:02:06
    蓝牙IBEACON定位资料,里面是蓝牙定位资料集合,蓝牙IBEACON定位资料,里面是蓝牙定位资料集合,
  • 自定义cordova插件,允许调用原生设备扫描蓝牙ibeacon信号,并给出信号的详细解析信息
  • 蓝牙IBEACON协议详细解析

    千次阅读 2020-10-14 11:38:16
    蓝牙IBEACON协议详细解析 先看一个不太清楚的图片,这个是nordic官方提供的解析的文档。 先看顶上的三个字节,flags length type,这三个是固定的,因为ibeacon长度是固定,所以length位也是固定的,三个我们可以...

    蓝牙IBEACON协议详细解析

    先看一个不太清楚的图片,这个是nordic官方提供的解析的文档。
    在这里插入图片描述
    先看顶上的三个字节,flags length type,这三个是固定的,因为ibeacon长度是固定,所以length位也是固定的,三个我们可以忽略,主要是后面的25个字节是我们需要解析的数据。
    4C 00 这两位代表beacon的公司名称,4C就是苹果的ibeacon,nordic的是0x59,其他公司的需要查询蓝牙联盟的数据库。
    02 15 这个代表了是ibeacon的服务类型,这个也是固定的,就是说我们设备如果需要扫描ibeacon设备,只要判断这里两位是02 15 就是可以判定这个是ibeacon设备。
    01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 这16个字节是ibeacon的UUID,注意ibeacon里的UUID,不是唯一指这个设备是唯一的,一般指设备的服务类型,比如该beacon是用于干什么的,手机app开发的时候,就是通过一个固定的uuid扫描到一组beacon来处理。
    AB CD 这两位是beacon的Major值,经常用于beacon的分组,比如1层楼的beacon是一组major的值,2层的beacon是一组major的值。
    01 02 这两位是beacon的Minor值,跟上面的major值放在一起,指在同一major值(组)下,唯一的一个设备id号。
    C3 最后一位代表rssi的参考值,这个一般是指该beacon设备在一米处的rssi信号强度值,注意这个是有符号的int8类型,比如这里的C3就是代表了-61

    展开全文
  • nRF52832蓝牙iBeacon广播

    千次阅读 2019-05-31 14:15:00
    蓝牙iBeacon实现 iBeacon的核心就是广播,不需要进行连接,通过在广播包中插入信息然后广播出去。 广播数据包最多仅可以包含31字节数据,所以设计者必须慎重选择需要包含的数据。蓝牙SIG组织在Core Specification ...

    开发环境

    SDK版本:nRF5_SDK_15.0.0

    芯片:nRF52832-QFAA

    蓝牙iBeacon实现

    iBeacon的核心就是广播,不需要进行连接,通过在广播包中插入信息然后广播出去。

    广播数据包最多仅可以包含31字节数据,所以设计者必须慎重选择需要包含的数据。蓝牙SIG组织在Core Specification Supplement (CSS)文件中将这31个字节数据分成多个AD Type结构,每个AD Type都有相同的结构,分别为长度字节,类型字节以及数据域。
    Beacon设备可以在一个或多个标准广播数据包中编码数据,传递信息。但是编码原理可能有所差异,即帧格式不同。目前主流的三种帧格式分别为苹果公司的iBeacon,Radius Networks公司的AltBeacon以及谷歌公司的Eddystone。
    因此为了与不同的beacon设备进行交互,应用开发者在开发beacon应用时需要了解对应设备的帧格式。

    iBeacon帧格式

    AD Field Length 表示 advertisement data的长度,即广播包有用信息的总长度;

    Type 广播类型

    Company ID  厂商数据字段的数据域前2字节为公司识别码。由蓝牙SIG组织分配给各公司,指示后续数据的解码方式。在上图中,0x004C为苹果公司的ID。

    0x02 指明该设备为“proximity beacon”,该值在iBeacon设备中均为0x02。

    UUID指明拥有该beacon设备的机构。

    Major 和 Minor 主次字段用来编码位置信息,通常主字段指明某个建筑,而次字段指明在这栋建筑中的特定位置。例如“伦敦中心商场,运动产品区”。

    Tx Power 发送功率字段帮助应用进行距离估算。

    有关iBeacon的详细内容可以参考Getting started with iBeacon

    具体代码实现

    #if (GNT_IBEACON_EN)
    #define APP_BEACON_INFO_LENGTH          0x17                               /**< Total length of information advertised by the Beacon. */
    #define APP_ADV_DATA_LENGTH             0x15                               /**< Length of manufacturer specific data in the advertisement. */
    #define APP_DEVICE_TYPE                 0x02                               /**< 0x02 refers to Beacon. */
    #define APP_MEASURED_RSSI               0xC3                               /**< The Beacon's measured RSSI at 1 meter distance in dBm. */
    #define APP_COMPANY_IDENTIFIER          0x0059                             /**< Company identifier for Nordic Semiconductor ASA. as per www.bluetooth.org. */
    #define APP_MAJOR_VALUE                 0x01, 0x02                         /**< Major value used to identify Beacons. */
    #define APP_MINOR_VALUE                 0x03, 0x04                         /**< Minor value used to identify Beacons. */
    #define APP_BEACON_UUID                 0x01, 0x12, 0x23, 0x34, \
                                            0x45, 0x56, 0x67, 0x78, \
                                            0x89, 0x9a, 0xab, 0xbc, \
                                            0xcd, 0xde, 0xef, 0xf0            /**< Proprietary UUID for Beacon. */
    
    #define MAJ_VAL_OFFSET_IN_BEACON_INFO   18                                 /**< Position of the MSB of the Major Value in m_beacon_info array. */
    #define UICR_ADDRESS                    0x10001080                         /**< Address of the UICR register used by this example. The major and minor versions to be encoded into the advertising data will be picked up from this location. */
    
    static uint8_t m_beacon_info[APP_BEACON_INFO_LENGTH] =                    /**< Information advertised by the Beacon. */
    {
        APP_DEVICE_TYPE,     // Manufacturer specific information. Specifies the device type in this
                             // implementation.
        APP_ADV_DATA_LENGTH, // Manufacturer specific information. Specifies the length of the
                             // manufacturer specific data in this implementation.
        APP_BEACON_UUID,     // 128 bit UUID value.
        APP_MAJOR_VALUE,     // Major arbitrary value that can be used to distinguish between Beacons.
        APP_MINOR_VALUE,     // Minor arbitrary value that can be used to distinguish between Beacons.
        APP_MEASURED_RSSI    // Manufacturer specific information. The Beacon's measured TX power in
                             // this implementation.
    };
    #endif
    
    /**@brief Function for initializing the Advertising functionality. */
    static void advertising_init(void)
    {
        ret_code_t             err_code;
        ble_advertising_init_t init;
    
        memset(&init, 0, sizeof(init));
    
    // 使用iBeacon广播,由于广播包长度需要控制好,部分信息可放置到广播应答包中    
    #if (GNT_IBEACON_EN)
        ble_advdata_manuf_data_t manuf_specific_data;        //厂商自定义信息
        manuf_specific_data.company_identifier = APP_COMPANY_IDENTIFIER;    //厂商ID
        uint16_t major_value = (uint16_t)((UICR_ADDRESS & 0xFFFF0000) >> 16);
        uint16_t minor_value = (uint16_t)(UICR_ADDRESS & 0x0000FFFF);
    
        uint8_t index = MAJ_VAL_OFFSET_IN_BEACON_INFO;
    
        m_beacon_info[index++] = MSB_16(major_value);
        m_beacon_info[index++] = LSB_16(major_value);
    
        m_beacon_info[index++] = MSB_16(minor_value);
        m_beacon_info[index++] = LSB_16(minor_value);
        
        NRF_LOG_HEXDUMP_INFO(m_beacon_info, APP_BEACON_INFO_LENGTH);
        
        manuf_specific_data.data.p_data = (uint8_t *) m_beacon_info;
        manuf_specific_data.data.size   = APP_BEACON_INFO_LENGTH;
        init.advdata.p_manuf_specific_data     = &manuf_specific_data;
    #endif
        //注意advdata长度不能超过 BLE_GAP_ADV_SET_DATA_SIZE_MAX (31)
        init.advdata.name_type               = BLE_ADVDATA_NO_NAME;       //广播iBeacon信息,长度有限 --广播时的名称显示类型(全名)BLE_ADVDATA_FULL_NAME
    //    init.advdata.include_appearance      = true;                    //是否需要图标
        init.advdata.flags                   = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;     //蓝牙设备普通发现模式 BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED   BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE
    //    init.advdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);    //广播UUID
    //    init.advdata.uuids_complete.p_uuids  = m_adv_uuids;
    //    init.advdata.p_tx_power_level        = &tx_power_level;       //设置发射功率
        
        init.srdata.name_type                 = BLE_ADVDATA_FULL_NAME;
        
        init.config.ble_adv_fast_enabled  = true;                       //快速广播使能
        init.config.ble_adv_fast_interval = APP_FAST_ADV_INTERVAL;      //快速广播间隔 30ms
        init.config.ble_adv_fast_timeout  = APP_FAST_ADV_DURATION;      //默认快速广播超时 20s
        
        init.config.ble_adv_slow_enabled  = true;                       //慢速广播使能
        init.config.ble_adv_slow_interval = APP_SLOW_ADV_INTERVAL;      //慢速广播间隔 200ms
    //    init.config.ble_adv_slow_timeout  = APP_SLOW_ADV_DURATION;      //默认慢速广播超时 40s
        
        if(nrf_gpio_pin_read(USBVIN_CHECK) == 1)    //USB插入
        {
            gnt_led_indication_set(LED_USB_IN);
            g_gnt_info.gnt_usbvin_flag = 1;
            init.config.ble_adv_slow_timeout = 0;
        }
        else
        {
            gnt_led_indication_set(LED_USB_OUT);
            g_gnt_info.gnt_usbvin_flag = 0;
            init.config.ble_adv_slow_timeout  = APP_SLOW_ADV_DURATION;   //默认慢速广播超时 40s
        }
    
        init.evt_handler = on_adv_evt;
    
        err_code = ble_advertising_init(&m_advertising, &init);
        APP_ERROR_CHECK(err_code);
    
        ble_advertising_conn_cfg_tag_set(&m_advertising, APP_BLE_CONN_CFG_TAG);
    }

     

    转载于:https://www.cnblogs.com/silencehuan/p/10955008.html

    展开全文
  • 低功耗蓝牙ibeacon的初级应用

    千次阅读 2016-02-26 18:27:26
    低功耗蓝牙ibeacon的初级应用!~

    低功耗蓝牙ibeacon的初级应用

    1、直接CoreBluetooth API这是针对蓝牙的API,并不特指低功耗蓝牙,直接上代码:

        #import <CoreBluetooth/CoreBluetooth.h>
        //<CBCentralManagerDelegate,CBPeripheralDelegate>这两协议是需要遵守的,前一个是扫描相关的代理,后一个是连接后相关的代理
        //central是执行扫描的一个执行者
        @property(strong,nonatomic)CBCentralManager *central;
        -(void)viewdidLoade{
        //初始化并设置代理和运行线程
            self.central = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
            }
        #pragma -mark -CentralManagerDelegate
        //在central初始化后,会首先进入这个代理,CBCentralManagerStatePoweredOn状态证明蓝牙功能是正常的,然后scanForPeripheralsWithServices调用,开始搜索附近蓝牙设备,@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}这个option是让扫描可以重复扫同一个设备。
        - (void)centralManagerDidUpdateState:(CBCentralManager *)central{
        if(central.state == CBCentralManagerStatePoweredOn){
            [self.central scanForPeripheralsWithServices:nil options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}];
        }
    }
    //没扫描到一个设备一次都会调用此代理,返回相关信息,RSSI:信号,advertisementData:广播信息 peripheral:蓝牙对象
    - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI{
        //code 进行数据相关操作
    }
    //如果有连接蓝牙设备的需要,通过此方法连接
        [self.central connectPeripheral:peripheral options:options];
    //连接成功进入的代理,在这里为peripheral设置代理,并调用discover方法查询服务
    - (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral{
        [self.delegata connectState:YES];
        peripheral.delegate = self;
        [peripheral discoverServices:nil];
    }
    //连接失败进入的代理
    - (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error{
        [self.delegata connectState:NO];
    }
    //在discover方法调用后,此代理方法运行,会取得iBeacon服务uuid标识,选取目标service,调用discoverCharacteristics,去获得该服务内的所有特征符。
    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error{
    //    for (CBService* service in peripheral.services){
    //        NSLog(@"%@",   service.UUID.UUIDString);
    //        if ([service.UUID.UUIDString isEqualToString:@"FFF0"]) {
    //            [peripheral discoverCharacteristics:nil forService:service];
    //        }
    //    }
        NSLog(@"%@",peripheral.services);
        [peripheral discoverCharacteristics:nil forService:[peripheral.services firstObject]];
    }
    //discoverCharacteristics后此代理调用,可取得目标服务的所有状态符信息
    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error{
        for (CBCharacteristic *charact in service.characteristics) {
            NSLog(@"%@",charact.UUID.UUIDString);
        }
    }

    以上则是该框架下蓝牙的使用,当然只是一部分,peripgeral的代理方法还有很多。接下来看第二种简单使用

    2、CoreLocation框架也有蓝牙部分,当然这是在beacon出现之后才有的,由于beacon多被用于位置信息方面,所有将这部分API放入了CoreLocation中

    //调用框架,遵循代理,两个属性
    #import <CoreLocation/CoreLocation.h>
    <CLLocationManagerDelegate>
    @property(strong,nonatomic)CLBeaconRegion *region;
    @property(strong,nonatomic)CLLocationManager *manager;
    -(void)start{
    //这个扫描方式并不是扫描所有的蓝牙设备,而是有针对性的,region则是扫描的一个标准,uuidstr,对于每个ibeacon 都有uuid,这个扫描方式则是扫描具有相同uuid的设备,
        self.manager = [[CLLocationManager alloc] init];
        self.manager.delegate = self;
        self.region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:uuidstr] identifier:identifier];
         //app扫描权限的询问
         [self.manager requestAlwaysAuthorization];
         //这个权限访问被允许后,才可以进入下面的操作
    }
    #programe delegate
    //允许权限后,才能进入此方法,开启Monitoring模式,进入或者退出目标iBeacon的范围,
    - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
        if (status == kCLAuthorizationStatusAuthorizedAlways) {
            self.region.notifyOnEntry=YES;
            self.region.notifyOnExit=YES;
            self.region.notifyEntryStateOnDisplay=YES;
            //能够进入这里才进行扫描操作
            [self.manager startMonitoringForRegion:self.region];
        }
    }
    //开启Monitoring模式,进入这个代理,locationmanager发送请求信息
    - (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region{
        NSLog(@"request");
        [self.manager requestStateForRegion:self.region];
    }
    //请求之后调用此代理,如果已经在目标iBeacon范围内,择开启ranging模式
    -(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
    {
        NSLog(@"determ");
        if (state == CLRegionStateInside)
        {
            //Start Ranging
            [self.manager startRangingBeaconsInRegion:self.region];
    }
    
    //进入iBeacon区域执行的代理,在此开启ranging模式
    - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
    {
        NSLog(@"Entered region");
        [self.manager startRangingBeaconsInRegion:self.region];
    
    }
    //退出iBeacon区域执行的代理,停止ranging模式
    -(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
    {
        NSLog(@"Exited region");
        [self.manager stopRangingBeaconsInRegion:self.region];
    }
    
    //开启ranging模式后,不断刷新执行的代理,返回beacon的实时信息(信号,主副值,距离等)
    -(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region{
    //扫描到beacon信息后后进入这里,beacons是此次符合要求的所有beacon设备,region当然是我们的中心标准设备。beacon是个CLBeacon的实例对象,其属性proximityUUID是uuid,major是主值,minor副值,用于表示每一个beacon设备,accuracy距离信息,rss信号强度,总之,所需要的信息,这里面基本都有了。
    }

    总结,两种模式都可以获得蓝牙信息,前者无目标,针对所有设备,后者目标性唯一,有针对性,一般只用于beacon设备,再者,前者扫描速度很快,而后者比起前面则会慢上许多了,本人感觉,后面的扫描速度大约在1s一次。。

    3、此外,iOS后台运行限制比较多,app退出后台时可以执行部分功能,但是如果超过10分钟保持后台状态,任何行为都会被终止。beacon设备是允许在后台进行扫描的,当然效率也会降低,并且只针对明确的beacon设备,不能后才检测未知设备。

          首先,蓝牙的后台功能是需要plist文件的相关设置的,![plist.png](https://img-blog.csdn.net/20160226182210005)
          这两个是后台运行的前提,然后,iBeacon或者其他基站的广播数据包种必须有这个键值对   kCBAdvDataServiceUUIDs = ~~~   centermanager后台扫描必须执行 serviceuuid才能扫描到基站,并且频率不可控,而且比前台要低很多,
    
    //第一个参数这是扫描指定的iBeacon,为数组,可设置多个,此类基站广播数据包中都会有kCBAdvDataServiceUUIDs== FFF0这个键,
    [self.central scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:@"FFF0"]] options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}];

    这个的扫描速度更慢……

    展开全文
  • 分析蓝牙Ibeacon室内定位和微信摇一摇周边的原理和实现过程

    苹果推出Ibeacon室内定位技术是为了弥补GPS无法覆盖室内定位这种场景。苹果意味着创新,在其推动下,蓝牙Ibeacon得到了极大的应用。而腾讯则是利用蓝牙Ibeacon在场景体验方面进行了创新,实现了微信摇一摇周边的功能,这在O2O领域有巨大的潜力。

    对苹果和腾讯来说,Ibeacon都是应用创新,而不是技术创新。

    本文分析Ibeacon室内定位和微信摇一摇的原理。

    一、
    无线测距原理

    无线信号都有一个信号强度(RSSI),蓝牙BLE自然也有。根据蓝牙BLE自身的发射功率(假设能够获取这个功率值)和无线信号接收端的RSSI,可以计算出两者的距离。

    D =10^((abs(RSSI)-A)/(10*n)

    D是计算距离,RSSI是信号强度,A为发射端和接收端相隔1米时的信号强度,n是环境衰减因子。对于不同的蓝牙设备该值是不一样的,同样的设备在不同的发射功率的情况下其信号强度也是不一样的,而且对于同是1米的情况下,环境对于信号强度也是有影响的。n是环境衰减因子,自然跟环境有关。n一般取经验值。

    实际的算法编程是:

    二、定位原理

    其实这个原理很简单,小学的知识:两边长可以确定第三个点。

    A和B是两个已知经纬度的坐标点,待测点计算出跟A和B的距离,自然就可以确定自身的坐标点。具体的算法就自行研究去吧。

    三、苹果Ibeacon室内定位

    其实就是在A和B点各放置一个ibeacon,然后手机进入ibeacon的广播范围即可以通过算法计算出自己的坐标。

    这里需要一个前提,就是ibeacon室内定位是一个应用APP,应用是已经知道A和B的经纬度坐标的,该应用其实是一个地图应用来的,装有APP的手机进入A和B的信号覆盖范围自然就可以在地图上标记自己的位置。

    室内定位在停车场和商场里面有极好的应用前景。

     

    四、蓝牙ibeacon原理

    苹果推出的ibeacon是基于蓝牙BLE的,其实ibeacon未来不见得就一定以蓝牙为载体,理论上,无线设备都可以,但是一定要手机集成支持的,否则就失去意义了。现在手机除了蓝牙就是wifi了,wifi功耗太大,不符合ibeacon长时间工作的要求。所以目前就只有蓝牙ibeacon应用了。

    蓝牙通信有广播和连接两种通信模式。Ibeacon只利用广播这种方式,当然,如果要更新ibeacon的广播内容是需要建立连接并通信的。

    蓝牙BLE广播的有效载荷payload是最长31字节,苹果约定一种前缀来标识ibeacon,并固定使用30字节。格式如下:

    1)ibeacon prefix 9字节: 02 01 06 1A FF 4C 00 02 15

    2)proximity UUID 16字节: 区分不同设备厂商生产的ibeacon

    3)Major 2字节:区分不同商店的ibeacon

    4)Minor 2字节:区分同一家商店的不同位置的ibeacon

    5)TX power 1字节:发射功率,用于计算距离。

     

    五、微信摇一摇周边

           这个场景是指当你走到商家门前时,你开启蓝牙,并用微信摇一摇周边,那么你可以摇到优惠券和广告等信息。这在O2O领域是应用最广泛的。

           Ibeacon英文是信标的意义,在室内定位里面意义非常明确。但是在微信摇一摇周边里面其实信标的意义比较牵强,腾讯完全可以自定义一个微信摇一摇周边的prefix,然后不用ibeacon的约定。不过,腾讯这样改也没啥意思,苹果的推动导致市面上那么多ibeacon,腾讯就沿用好了。话说回来,对于商家来说,ibeacon还是有定位意义的,因为微信摇一摇周边的后台接口能够统计处某个具体位置的ibeacon被多少用户摇到了,例如前门放一个,后门放一个,多少人走过摇一摇是知道的。

     

           摇一摇周边就不用计算距离啦,它的工作过程是这样的:

    1)商家的微信后台申请ibeacon设备的UUID、Major和Minor。

    2)商家购买ibeacon设备,并请求设备上将1)中的UUID、Major和Minor配置到设备中,或者通过特定的应用更新到设备中。

    3)商家配置摇一摇周边的结果页面,如优惠券信息,也可以是关注页面。其实就是H5,也可以利用摇一摇周边的JSAPI。

    4)商家将设备和结果页面绑定。

    5)商家将设备放到某个位置。

    6)用户走进,摇一摇周边,微信应用会获取UUID、Major和Minor,并通过后台获取到对应的结果页面的链接,显示给用户。

    7)用户点击链接,内置浏览器打开,就可以看到优惠券等信息了。

     

    展开全文
  • 蓝牙iBeacon工作原理

    2021-07-17 08:41:55
    iBeacon技术是Apple公司在2013年9月发布的一种基于BLE蓝牙的通信协议。主要用于短距离传送少量数据。应该场景例如在商场中,当你靠近某个商品时,在不用解锁手机的情况下,会把这个商品的折扣信息推送到你的手机上。...
  • 苹果意味着立异,在其推进下,蓝牙Ibeacon得到了极大的运用。而腾讯则是运用蓝牙Ibeacon在场景体验方面进行了立异,实现了微信摇一摇周边的功用,这在O2O范畴有巨大的潜力。对苹果和腾讯来说,Ibeacon都是运用立异,...
  • 蓝牙定位还分好多种,蓝牙网关,蓝牙iBeacon定位技术,目前蓝牙iBeacon定位技术应用最广泛,我们一起来了解一下iBeacon定位技术. iBeacon技术经过低功耗蓝牙来实现。这也是为什么iBeacon设备靠纽扣电池就能运转很长...
  • Go to PageGoAbout products and suppliers:Alibaba.com offers 885 ble beacon ibeacon android bluetooth beacons products. About 8% % of these are iot solutions & products, 1%% are temperature instrum...
  • iOS蓝牙IBeacon开发

    2018-07-02 20:47:15
    /**开始搜索蓝牙外设,每次在block中返回一个蓝牙外设信息   * @param nameStr   模糊搜索设备 目标设备名称包含字段(该参数视需求而定)   * 返回的block参数可参考CBCentralManager 的 centralManager:...
  • 【2】EFR32 蓝牙ibeacon

    2019-09-16 17:01:40
    EFR32 蓝牙ibeaon 环境:Windows 10、Simplicity Studio 4 APP:Blue Gecko SDK: Gecko SDK Suite 工程:simple_trx_wifi_fifo 设备:EFR32MG12P433 板子两个 1. 打开例程 然后选择 “ SOC-ibeacon ...
  • Android基于蓝牙iBeacon的室内定位App和算法

    千次阅读 热门讨论 2021-01-27 14:38:56
    室内部署蓝牙信标,移动端app通过接收广播信号, 通过定位算法实现位置定位,并在三维系统实时更新显示位置。 二、代码 package ibeaconlocate; import android.Manifest; import android.bluetooth....
  • 蓝牙资产管理方案特点: 低功耗蓝牙体系,使用寿命长 采用低功耗蓝牙技能,经过蓝牙标签iBeacon蓝牙网关互联,采集蓝牙标签的实时信息,蓝牙标签iBeacon使用电池即能够 小于10微安电流持续工作五年时间,不必忧虑...
  • 这是一个大家很少看到的世界,在看不见的背后,是最前沿科技领域,各种跌宕起伏,研发工作艰苦卓绝,因为ibeacon技术应用横跨芯片、驱动、数字电路、射频信号、移动互联网、大数据,甚至模式识别,当然,还有精密...
  • H5连接低功耗蓝牙源码ibeacon , 蓝牙开启成功之后 获取iBeacon设备
  • 是一款通过低功耗蓝牙ibeacon技术对接微信摇一摇周边的方案。RF Star采用美国德州仪器TI 蓝牙4.0 CC254X 系列作为核心处理器,开发高性能、超低功耗(Bluetooth Low Energy)射频收发模块、方案和产品,可用于...
  • 局域网唤醒WOL TCP/UDP调试 经典蓝牙串口 BLE蓝牙串口 蓝牙IBeacon HTTP客户端 HTTP服务器 网 络流量查看 无线ADB SHELL SSH TELNET 其他工具: Sqlite数据库管理 屏幕坏点测试 尺子 指南针 分贝计 水平仪
  • 蓝牙资料 BLE4.0 ibeacon

    2017-01-09 17:14:28
    包含了iOS开发所有蓝牙相关的资料,BLE4.0, ibeacon, GameKit等蓝牙框架的使用.
  • //监听蓝牙切换的状态 蓝牙切换状态 执行search函数 wx.onBluetoothAdapterStateChange(function(res){ if(res.available){ search(); } }) search(); //搜索函数 function search(){
  • Apple 基于蓝牙iBeacon技术

    千次阅读 2015-03-22 07:27:54
    2 iBeacon的发射器虽然电池耗电少/小巧,但是现实世界中,WiFi热点功能强大,WiFi AP受电信运营商和广告商的支持 - 满地都是,通过云可以远程管理,比iBeacon更加现实和容易维护。 百度百科 2013年 室内定位
  • ibeacon蓝牙技术简介

    千次阅读 2017-05-01 20:27:11
    概述在讲解ibeacon技术之前,我们首先来看一下蓝牙实际到现在经历了哪些发展。截止目前,蓝牙共有八个版本 V1.0/1.1/1.2/2.0/2.1/3.0/4.0/4.1,各版本的功能变化如下:V1.0版(发布日期1999.7.5) 传输速率748~810kb...
  • iBeacon蓝牙4.0技术分析

    2015-04-28 16:52:09
    iBeacon 技术基于低功耗蓝牙技术,当建立起一个 iBeacon 基站后,用户的 iPhone 就可以通过 iBeacon 与之互动。比如说,当一个商场建立了 iBeacon 基站,顾客进入商场后也进入了他们的 iBeacon 信号区域,如果顾客...
  • 蓝牙BLE与iBeacon

    千次阅读 2019-06-06 15:42:33
    一、蓝牙BLE

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,658
精华内容 663
关键字:

蓝牙ibeacon