精华内容
下载资源
问答
  • 最近刚好有一个需求,需要实时收取并保存指定蓝牙广播,用于蓝牙定位应用。 然后我使用老方法注册广播开启蓝牙搜素,发现并不能实时收到广播,有时会隔个几秒。 这个当然是不行的,蓝牙定位最低要求也是需要一秒一...

    最近刚好有一个需求,需要实时收取并保存指定蓝牙广播,用于蓝牙定位应用。

    然后我使用老方法注册广播开启蓝牙搜素,发现并不能实时收到广播,有时会隔个几秒。

    这个当然是不行的,蓝牙定位最低要求也是需要一秒一次。并且我手上的蓝牙板子,是每300毫秒就发送一次广播的。

    在网上找了很多资料,一直没有实现。最近突然发现一个方法可以,好了废话不多说,直接上代码。

    1.首先权限配置

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

    2.  6.0以上记得动态权限

    if (Build.VERSION.SDK_INT >= 23) {
        int checkAccessFinePermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
        if (checkAccessFinePermission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    1);
            Log.e(getPackageName(), "没有权限,请求权限");
            return;
        }
        Log.e(getPackageName(), "已有定位权限");
    }

    3. 初始化蓝牙BLE

    BluetoothAdapter mBluetoothAdapter;
      BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
            mBluetoothAdapter = bluetoothManager.getAdapter();
    
            if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
                Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableBtIntent, 1);
            }

    4.开启搜索

    private void toSearch() {
     
        if (mBluetoothAdapter.isDiscovering()) {
            mBluetoothAdapter.stopLeScan(mLeScanCallback);
        }
        mBluetoothAdapter.startLeScan(mLeScanCallback);
    }

    5.监听回调

     private BluetoothAdapter.LeScanCallback mLeScanCallback =
                new BluetoothAdapter.LeScanCallback() {
                    @Override
                    public void onLeScan(final BluetoothDevice device, int rssi,
                                         byte[] scanRecord) {              
                        if (device.getAddress().equals("59:47:18:41:00:07")) {//比较MAC
                        Log.e("LeScanCallback","BluetoothAdapter.LeScanCallback    mac: "+device.getAddress());
                       
                        }
                    }
                };

     

    6. 操作上述步骤,你会发现搜索速度快的飞起,并且是一直在搜素,不像老的方法只能12秒(我记得是)后就不在搜索。

    展开全文
  • 蓝牙BLE室内定位

    万次阅读 2015-05-09 21:56:53
    最近在做一个基于蓝牙的室内定位的项目,学习了一些蓝牙BLE方面的知识,总结和分享蓝牙方面的学习。   1.蓝牙的现状及发展趋势。 目前蓝牙版本为4.0,支持低功耗蓝牙BLE,且android4.2之后都支持BLE,蓝牙的发展...

    最近在做一个基于蓝牙的室内定位的项目,学习了一些蓝牙BLE方面的知识,总结和分享蓝牙方面的学习。

     

    1.蓝牙的现状及发展趋势。

    目前蓝牙版本为4.0,支持低功耗蓝牙BLE,且android4.2之后都支持BLE,蓝牙的发展非常迅猛,在物联网与穿戴设备中有非常广阔的应用。功耗非常低,唯一感觉不足的是目前还不能像Zigbee一样支持组网。

     

    2.方案

    现在非常多的公司都推出了蓝牙芯片,比较主流的有TICC2540NordicNRF58812等,CC2540出现得比较早,为51内核的MCU,协议栈为Z-tack轻量化协议栈,NordicNRF58812comtex-M0内核,协议栈以固件BIN的形式给出,都不开源。

    从我的理解来,Nordic的方案会比较容易上手,功耗各方面也相对CC2540来说有优势。但TICC2540出来的比较早,各方面的教程及技术支持比Nordic的好。

     

    3.软件安装

    NRF58812开发需要keil MDK,最好是安装5版本以后的,新版本的器件支持都以pack方式安装,需要到Nordic官网下载pack及例程。还需要安装nrfgo studio用了下载协议栈及程序。手机端可以安装nRF Master control来监控调试。

     

    4.定位方案

    定位项目蓝牙模块作为已知节点发送广播,手机或者其他节点接收广播信息,可以从广播信息中提取已知节点的位置信息,通过信号强度来计算距离,通过三角定位算法来计算位置来实现定位。

     

    5.定位实现

    因为蓝牙只需要广播信息,不需要连接,所以程序只需实现蓝牙NFR58812的广播就可以,可以参考Nordic官方例程的beacon工程,实现现广播相对来说非常简单,只需要封装一下需要发送的内容,失能广播就可以实现广播。

     

    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. 

    0xfe

    // LOCATION_X,

    // LOCATION_Y

    };

    #define APP_BEACON_INFO_LENGTH          0x18                              /**< Total length of information advertised by the Beacon. */

    #define APP_ADV_DATA_LENGTH             0x16                              /**< 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. */

    这个为蓝牙的广播信息帧,蓝牙的广播帧最大只支持31字节的广播包,可以通过自己需要来更改,如果广播内容不想让别人获取,还可以加密广播内容。

    下载到模块上,就可以通过nRF Master control来观察到广播信息及信号强度。

    今天更新到这里,后续在更新android的蓝牙扫描广播帧方面知识及蓝牙连接方面的作为service的内容。

     

    展开全文
  • 摘要:由于卫星信号到达室内后衰减严重,使得全球卫星定位系统无法满足室内定位的需求.而如今随着社会的发展与城市化进程的推进,人们一天中80%的时间都是在室内消耗的,再加上基于位置服务(Location Based Service,LBS...

    摘要:

    由于卫星信号到达室内后衰减严重,使得全球卫星定位系统无法满足室内定位的需求.而如今随着社会的发展与城市化进程的推进,人们一天中80%的时间都是在室内消耗的,再加上基于位置服务(Location Based Service,LBS)的开展,室内定位技术的研究成为了焦点之一.至今,关于室内定位的研究有很多,也有不错的成果,但都是在局部改进,还没有一款普遍适用的室内定位系统或产品.本文针对基于RSSI(Received Signal Strength Indicator)的指纹法这一室内定位算法的稳定性差,指纹库建立成本高,且局限于静态的小范围的室内定位,不适合动态连续的室内定位;而行人航位推算(Pedestrian Dead Reckoning,PDR)算法适合动态连续的定位,所得结果为相对位置,需要提供初始的参考位置,在连续的定位过程中存在累积误差,提出了基于测距与指纹的室内定位算法(Indoor Position Method Based On Distance Measurement and Location Fingerprint,DMLF)和优化的PDR算法.其中DMLF算法是基于低功耗蓝牙(Bluetooth Low Energy,BLE)的改进算法,是将三边定位法与指纹法相结合的一种组合算法,该组合算法弥补了三边定位算法独立定位时存在奇异值且波动大的缺陷,同时提高了指纹法的匹配效率,算法的平均误差为1.73 m;优化的PDR算法是在智能手机上加以实现的,主要采用卡尔曼滤波对步长进行优化,粒子滤波对估算结果进行优化(在步长优化后的基础上进一步优化),两次优化后的算法的平均误差分别为1.67 m,1.08 m.为了进一步提高算法的定位效果,提出了将DMLF算法与优化的PDR算法融合,并提出了三种测试方案,分别在轨迹为直线和曲线这两种场景下完成测试.最后采用BLE节点,智能手机,笔记本电脑以及软件编程(指Java开发与Android开发)搭建室内定位系统,同时完成测试.

    展开

    展开全文
  • BLE室内定位 此仓库包含一个,该能够根据从蓝牙信标接收到的广告包来估计位置。 它还包含一个,该使用此库来可视化信标和位置数据。 用法 积分 Gradle 释放文物可通过。 dependencies { compile ' ...
  • ble-locator-android 用于定位附近 BLE 信标的 Android 应用程序。 这个项目是在 MIT 许可下提供的。
  • 智能手机定位是指通过在环境中部署蓝牙信标设备,智能手机主动扫描附近的蓝牙信号并通过手机上安装的APP进行定位解算或者传给后台服务器进行定位解算,通过与地图引擎的互动配合常用于商场的手机室内定位导航应用。...

    ①适用说明

    智能手机定位是指通过在环境中部署蓝牙信标设备,智能手机主动扫描附近的蓝牙信号并通过手机上安装的APP进行定位解算或者传给后台服务器进行定位解算,通过与地图引擎的互动配合常用于商场的手机室内定位导航应用。实际使用中定位引擎通常还会采用智能手机的指南针、加速计等传感器来进行定位辅助,以提高定位点的稳定性和定位精度。

    智能手机定位的蓝牙信标(iBeacon)的一般建议安装间距为4~7米左右,如果吸顶安装高度一般在3~5米上下(室外环境多采用道钉式蓝牙信标,采用贴地安装方式),可实现的定位精度大约为2米上下,理想情况可逼近1米精度。

    智能手机作为人类当下最常用的随身工具,利用智能手机进行定位系统的应用开发可在一些特定场景发挥较好的效果。在为公众开放的服务场所如商场、机场、火车站、医院、博物馆等可通过微信小程序定位导航提供室内导引服务。在一些特殊工作环境如城市综合管廊里的巡检,一般都配备了用于进行派单和作业记录的智能PDA设备,在此类场景中可以将定位系统作为智能PDA的系统级APP存在,实现不给巡检员额外增加设备的情况下后台即可实时定位人员在管廊内的位置和停留时间。

    ②体系结构图

    中科荣通智能手机定位

    APP模式下可采用离线加载方式实现无网络(Wi-Fi/4G/5G)下工作,如果APP的定位数据回传到后台可用于位置监管或人员追踪。

    微信公众号/微信小程序/支付宝小程序模式下一般需要搭配后台服务器进行位置解算,体验入口便捷但是对场所内的网络要求较高。

    ③设备造价

    以APP类型手机定位应用为例。一般采用的室内蓝牙信标单价在50元上下,蓝牙定位引擎单价在3~5万不等,地图引单价在3万左右,集成开发费用在10万元上下,如果有其他业务功能则定制开发另计。

    展开全文
  • 提出一种基于微机电系统(MEMS,micro electro mechanical system)传感器与低功耗蓝牙(BLE,bluetooth low energy)数据融合的室内 BLE/MEMS 跨楼层定位算法。首先利用仿射传播聚类、离群点检测和接收信号强度(RSSI,...
  • 现在,全球两大主流物联网网络NB-IoT与LoRa在我国迅猛开展,有关部分计算一千多款物联网运用产品已落地我国...曩昔仅运用BLE,WiFi,超宽带,RFID和超声波来开发室内定位和财物盯梢解决方案。因为用例涉及零售、医院...
  • 基于LoRa网络的蓝牙定位是依赖LoRa作为数据回传网络,通过在场所内部署安装蓝牙信标设备作为定位依据,移动定位终端设备如定位胸牌或定位手表主动扫描环境中的iBeacon信号并通过LoRa网络传到后台供定位服务器进行...
  • Quuppa作为全球第一家基于低功耗蓝牙BLE AoA的厘米级高精度定位厂商,是国内科技公司学习的榜样
  • BLE4.2智能家居室内定位蓝牙网关TD05/TD05A使用说明书
  • 蓝牙低功耗室内定位 在 Android 设备上使用 BLE 进行智能室内定位。 #祝你好运!
  • 一种亚米级北斗卫星定位BLE蓝牙考勤终端解决方案
  • 蓝牙网关又叫蓝牙探针,集成了 WiFi 和 BLE 蓝牙两种无线通信方式,WiFi 与 BLE 蓝牙之间通过串口通信,两种无线通信方式决定了蓝牙网关可以灵活地应用于各种场景。 比如抓取 BLE 蓝牙设备的数据,再通过 WiFi 的...
  • 基于BLE的多节点AoA室内定位

    千次阅读 2020-04-14 10:23:16
    AOA定位原理 AOA(Arrival of Angle)定位方法是通过计算目标发射的信号到达AP(Access Point)的角度,根据到达的角度可以推测出以基站为起点的射线的斜率,射线必定经过目标点,由两个或者两个以上的基站便可以得到...
  • 蓝牙Beacon是一种基于蓝牙BLE协议的广播协议,也指代拥有这种广播协议的BLE外围设备。VG02作为一个蓝牙Beacon设备,它通常被安装在一个合适的位置,同时它将连续周期性地向它的周围环境进行广播,并且它是不应该被BLE...
  • 定位结果呈现 指纹设计: 暂定为5个蓝牙Beacon 格式为:x, y,RSSI1, RSSI2,RSSI3,RSSI4,RSSI5 说明:该部分内容可以先模拟出数据(RSSIn对应MACn) 客户端采集数据:功能已实现,但需要弄清如何与...
  • 基于蜂窝网络的穿戴设备定位与传统的GPS定位手表类似,只是增加了在室内环境下主动扫描和采集蓝牙iBeacon信号的功能,以便利用室内定位引擎来得到穿戴设备在室内场景的实时位置信息。 从定位的精度上可以达到2米...
  • 该项目使用BLE iBeacons和智能手机的蓝牙进行室内定位和导航。 该项目部署在。 我们使用来获取的接收信号强度指示器(RSSI)。 使用项目 可以使用Cordova框架为iOS或Android构建该项目。 如果您需要快速指南来准备...
  • Beacon是建立在低功耗蓝牙协议基础上的一种广播协议,同时它也是拥有这个协议的一款低功耗蓝牙设备(从机)。作为一款Beacon设备,它通常是放在室内的某个固定位置,借此向周围进行连续性广播,但是它不能和任何低...
  • Corelink核芯互联CoreLocation蓝牙BLE AoA室内高精度定位不用等5.1了直接上4.2-无缝兼容移动设备
  • TD05是一款蓝牙网关,能被应用于各种场景,例如:远程控制BLE装置,接收BLE设备发送的数据,并将其发送给服务器……TD05 WiFi部分的数据传输速率能达到100Mbps,蓝牙部分的速率能达到1Mbs。TD05有两种供电方式,一种...
  • BLE室内定位 该项目允许用户获取有关特定事件的其他信息。 该应用程序曾用于会议,但可用于任何其他活动。 该应用程序提供了一个地图,允许用户使用Bluetooth Low Energy在地图上定位自己。 也可以与此地图进行交互...
  • 参考博客:... p private final int REQUEST_FINE_LOCATION = 1; private void mayRequestLocation() { //检查系统版本,6.0开始需要动态申请权限 if...
  • 略。。。 博主一人时间有限 思路有了 但是需要时间去更新
  • 实现了一个基于蓝牙4.0的beacon。为了方便调试, 调试接口引了出来。并且将RX TX引了出来,可实现串口转蓝牙透传的功能。提供了一个Windows UWP应用。 主要功能: iBeacon。 Windows APP。 附近设备扫描 ...
  • 蓝牙4.2信标是一种基于BLE协议的广播协议,也指具有该协议的BLE外围设备。VG05通常放在一个固定位置,作为蓝牙4.2信标设备,它可以使用BLE低功耗蓝牙广播的方法,利用其支持的通用属性配置文件在第37、38、39三个...
  • 文章目录 一、报错信息 二、解决方案 三、蓝牙串口工具推荐 一、报错信息 在手机上使用 BLE 蓝牙搜索功能 , 搜索不到蓝牙设备 ; 这种状态下可以根据蓝牙地址连接蓝牙设备 , 但是无法搜索到该设备 ; 二、解决方案 ...
  • 略。。。 博主一人时间有限 思路有了 但是需要时间去更新
  • BLE室内-源码

    2021-02-28 03:23:54
    蓝牙室内定位开发了一个Android应用,该应用将运动传感器数据实时传输到蓝牙中央设备。设计了一种数据包编码解码机制,该机制可在BLE广告长度限制为31字节的范围内工作。查找所有蓝牙设备,包括已连接,配对和未知的...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 320
精华内容 128
关键字:

ble定位