12、智石使用记录

用了两天的时间,把这个称为智石的蓝牙模块熟悉了一下,现在整理一下。

智石,英文名为brightBeacon,看字面意思,和apple的13年推出的iBeacon协议有点关系,事实确实如此。

一、智石的特点如下:

1、遵循iBeacon协议。

遵循iBeacon协议的设备工作方式是:配备有 低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。比如,在店铺里设置iBeacon通信模块的话,便可让iPhone和iPad(现在android4.3以上且支持BLE的终端设备也支持Beacon协议)上运行一资讯告知服务器,或者由服务器向顾客发送折扣券及进店积分。此外,还可以在家电发生故障或停止工作时使用iBeacon向应用软件发送资讯。(摘自百度百科)

大白话就是遵循iBeacon协议的蓝牙模块,会一直向外广播,智能设备靠近蓝牙模块的时候,通过商户支持的app来判断靠近的具体是哪个蓝牙模块(通过id来区分),然后app读取服务器中该id对应的相关数据,显示在app中。

2、1颗纽扣电池,官方宣传可续航1-2年,实际使用估计在6个月左右

3、智石官方的资料:

①sdk地址:https://github.com/BrightBeacon/BrightBeacon_Android_SDK(api文档、sdk)

②demo代码讲解:http://www.brtbeacon.com/home/docuemt_andriod.shtml(sdk中得demo的关键代码讲解)

③demo地址:http://www.brtbeacon.com/home/sdkdownload.shtml(官方做的一些体验demo,很烂)

二、智石开发中大致流程

1、扫描附近的支持IBeacon设备

//设置扫描的回调函数

beaconManager.setRangingListener(new RangingListener() {
@Override
public void onBeaconsDiscovered(RangingResult rangingResult) {
//rangingResult.beacons为扫描到的Beacon集合;
//rangingResult.sortBeacons为根据感应距离排序后的Beacon集合

}

});

//开始扫描

beaconManager.startRanging(ALL_BRIGHT_BEACONS);

2、选择一个并连接IBeacon

//连接的回调函数

connection = new BRTBeaconConnection(splash.this,beacon, createConnectionCallback());

//开始连接

connection.connect();

3、连接后可以进行设备信息(名称、发射功率等)的读写

在上一步中的回调函数中:

private com.brtbeacon.sdk.connection.ConnectionCallback createConnectionCallback() {

CommonUtils.LogWuwei(tag, "开始连接。。。");

return new ConnectionCallback() {

@Override
public void onAuthenticated(final BeaconCharacteristics beaconChars)
{
CommonUtils.LogWuwei(tag, "连接成功");
StringBuilder sb = new StringBuilder()

.append("1、电量: ").append(beaconChars.getBattery()).append("%\n").

append("2、名称").append(beaconChars.getName()).append("%\n")

.append("3、温度:".append(beaconChars.getTemperature()).append("℃").append("%\n")

.append("4、固件版本: ").append(beaconChars.getVersion()).append("\n");
}

@Override
public void onAuthenticationError() 
{
CommonUtils.LogWuwei(tag, "连接失败");
}

@Override
public void onDisconnected() 
{
CommonUtils.LogWuwei(tag, "连接断开");
CommonUtils.showToast(getApplicationContext(), "状态: 连接断开");
}

};
}

4、发现进入或者离开区域的回调

//设置扫描回调

beaconManager.setMonitoringListener(new MonitoringListener() {

@Override
public void onEnteredRegion(BRTRegion arg0, List<BRTBeacon> arg1) {

//进入感应区域

}

@Override
public void onExitedRegion(BRTRegion arg0, List<BRTBeacon> arg1) {
//离开感应区域
}
});

//开始监控感应情况

region = new BRTRegion("rid", beacon.getProximityUUID(),  beacon.getMacAddress(), beacon.getMajor(), beacon.getMinor());

beaconManager.startMonitoring(region);

三、问题

1、感应的时候不太灵敏。官方说是空旷地区50米,稳定工作20米,但是如果两个蓝牙模块隔5米,这样去做判断的时候,没有去验证

2、连接后更改设备名称,保存后,再次连接名称没有更改回来,官方demo也是如此,具体没有验证

自己写的测试工程详见附件

beaconTest.zip

测试工程功能:1、可以搜索到附近支持IBeacon的蓝牙模块 2、可以连接  3、读取设备信息   4、感应进入和离开区域

That‘s all。

时间: 2024-10-01 06:57:54

12、智石使用记录的相关文章

PSP(4.6——4.12)以及周记录

1.PSP 4.6 8:30 10:30 20 100 博客 B Y min 12:00 13:00 5 55 Account A Y min 13:05 13:15 0 10 站立会议 A Y min 4.7 13:50 15:00 10 60 讨论班 A Y min 18:35 18:50 0 15 站立会议 A Y min 4.8 13:30 15:00 15 75 软件项目管理课 A Y min 15:10 15:25 0 15 站立会议 A Y min 15:45 17:10 10 7

mysql5.6.12 源码安装记录

安装的是mysql5.6.12 资源是从csdn上下载的,官网没找到这个版本 编译: cmake -DCMAKE_ISTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DMYSQL_USER=mysql -DDEFAULT_COLLATION=utf8_general_ci 若编译使用utf8字符集 一定要修改默认的collation 否则默认是latin 会有问题然后make &&make install 然后切换到软件路径下 执行

2017.12.01 C#学习记录

1.占位符学习及练习及控制台用户输入练习 1 Console.WriteLine("请输入用户名:"); 2 string str1 =Console .ReadLine (); 3 Console.WriteLine("请输入密码:"); 4 string str2 = Console .ReadLine (); 5 Console.WriteLine("请确认您的密码."); 6 string str3 = Console .ReadLine

javav语言启动Appium v1.12.0启动错误记录

启动类 public static AndroidDriver<AndroidElement> driver; /** * >aapt d badging GJDMALL-V2.2.0.3349-436-debug-99a5c6a.apk|findstr "package launchable-activity" * package: name='com.jingdong.th.app' versionCode='3346' versionName='2.2.0' p

12.2周一学习记录

1.决定再重新读一遍sv论文. 2.MMD:https://blog.csdn.net/a1154761720/article/details/51516273 3.pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法 https://blog.csdn.net/xiexu911/article/details/80820028 4.中位数 https://blog.csdn.net/zhang20072844/article/details/133

2019/12/14~archlinux安装记录

前言 这两年一直在折腾Linux,退出Windows后就没再回去,网络中提到的各种版本几乎都用过了,但是安装Linux后折腾电脑的毛病就没停止过.前一个使用的是deepin,虽然好看但是小毛病不断啊!!!用过那么多版本后还是回到arch,为了追求完全的自我定制,还有敲代码的爽感,看着安装软件时一行行的读写条迅速达到100%的满足. archlinux的基础安装 BIOS设置为uefi,archlinux的uefi与legend的安装界面是不同的,uefi为目前最新的. u盘烧录镜像,千万不要搞错

12.2RAC搭建记录

12.2RAC环境搭建记录 安装前资源检查 资源限制要求/etc/security/limits.conf Table 6-1 Installation Owner Resource Limit Recommended Ranges Resource Shell Limit Resource Soft Limit Hard Limit Open file descriptors nofile at least 1024 at least 65536 Number of processes ava

简单记录一次ORA-00600: internal error code, arguments: [2662]

接上一个,REDO报错搞定后OPEN数据库时又报错ORA-00600: internal error code, arguments: [2662]. 原因是_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库,我们可能会由于SCN不一致而遭遇到ORA-00600 2662号错误,这里给出一个完整的例子及解决过程. 现象及解决--这个没拍照参考EYGLE的吧 Sun Dec 11 18:02:25 2005 Errors in file /opt/oracle/a

Python 示例 饮水记录

因为每天都需要喝水  这是非常重要的 目录结构: ├─bin│ │ start.py│ ││ └─__pycache__│ start.cpython-36.pyc│├─core│ │ src.py│ ││ └─__pycache__│ src.cpython-36.pyc│└─log access.log 代码内容: start.py 1 """ 2 Description: 3 Author:Nod 4 Date: 5 Record: 6 #---------------