00:11
哈喽,大家好,今天我们来玩一款手表,就是我手上拿的这一个,我们先来正常体验一下它的功能,那现在这款手表呢,已经被我恢复出厂设置了,大家可以看到它的这个默认的语言是英文的,那我查了一下它的官网,它的官网也是英文的,但是呢,它其实是深圳这边啊,国内的厂商做的可能是主要是要往海外去销售的,所以默认的语言也是英文,那接下来我们连接一下这个手表。他需要开启这个通知使用的这个权限,然后后面会在手表上去显示一些手机收到的信息。
01:02
那给大家确认。然后呢,点击添加设备啊,再给他添加一些的权限。那就可以扫描到的手表啊,就这一个。那这时候呢,你会看到哎哟。他其实会在手表上显示一个请求配对,我们点击确认啊。然后就配对成功了。那这时候呢,又会请求一堆权限啊,给大家允许。那可以看到它的一个正常的健康监测的功能是都有的,像一些心率啊,睡眠啊等等,血氧饱和等等,那这些健康信息我是不关心的啊,它有两个功能比较有意思,我们来看一下。
02:03
首先呢是查找手表功能。这个查找设备啊,当它点击以后呢,它会震动,然后加这个。报警啊。而且呢,这个是需要你点击这个确认给它取消掉的。那这里就体现出来它与手环的一个不同了,手环一般它也就只能震动,它没有办法发出声音,对吧,但我们这个手表它可以发出声音。啊,那确实是一个手表,那如果说我们能够去控制它一直震动一直响的话,这个效果还是不错的,那另外呢,它还有一个消息通知的一个功能。啊,当你打开这个功能以后呢,它其实当你手机收到了微信啊短信之类的消息,它会显示在手表上啊,大部分的这个智能手环手表都会有这个功能。那如果说我能够控制它随意显示一些消息的话,也挺好玩的,那目前呢,这两个效果我都已经实现了,接下来的视频呢,我会一步一步讲一下如何控制这个手表,做我们一些想做的事情,但是呢,在此之前还是需要先介绍一下低功耗蓝牙,也就是b Le的一些相关的概念,那当然我们也不会长篇大论啊,我们只是简单的结合这个手表和我们的手机,它的一个通讯的场景啊,做一个简单的科普。
03:30
啊,就是手表这手机,那在个人用户的那个短距离通信领域的,像WiFi蓝牙这两个应该是使用的频率非常高的了,但是呢,蓝牙它的传输速度是远远赶不上WiFi的,那后来呢,蓝牙技术联盟就开始这个另辟蹊径,对吧,开始在蓝牙中引入激光号的特性。那正好呢,这些物联网的嵌入式的各种小设备对吧,他们就比如说我们手上的这个手表对吧,他们是需要低功耗来延长这个待机时间的,所以呢,低功耗蓝牙就很快的在这个物联网领域去应用了起来。
04:09
那我们的手表和我们的手机,他们两个到底是怎么通信的呢?首先呢,在B1里面有一个角色的划分,叫做主机和从机,主机它可以对从机进行扫描和连接,比如说我们的手机,它就是作为主机去扫描并且连接我们的手表,那从机呢,它可以发送广播,然后等待主机的连接啊,就比如说我们的这个手表。它就是一个从级。那当重机进行广播的时候呢,会在b Le的这个广播信道,就是3738393广播信道去进行一个广播,那主要的是为了避免WiFi,比较常用的2.4g的信道,我们可以来看一张图啊。哈。用吐搜一下。
05:04
哎,这张好,可以看一下这张图,这张。我们be的373839这三个心的,你可以看到它并不是说从零开始一次往后排的,它是这样分散开分布的,那这样呢,是为了避免这个红色的就是WiFi的信道的一些干扰。啊。那重击它在广播的时候,就会在这三个373839这三个信道里面去发送一些数据啊,这些数据里面往往包含了一些设备的名称啊,一些厂商的信息啊,用来区分这些设备的,但是呢,他为了低功耗对吧,它。广播数据的信息其实没有很多。当我们的主机啊,我们的手机去发起连接的时候呢,可以去获取到一些扫描响应啊,那里面会有一些补充的信息。
06:06
然后呢,主机就是我们的手机,就可以去发起链接进行通信了。那这时候呢,我们可以选一个手机上的一个APP啊,这个软件呢,叫做nf connect, 就这还连着呢。叫做nf connect for mobile啊,这是not这家公司推出的一款ree的调试工具啊,我把这个后台给他退掉。二呢,它可以去对周围的比较一设备进行一些扫描。然后呢,大家如果不太好访问,不have的话,也可以在应用商店里面去搜一些比较的调试工具。啊,比如B调试助手对吧,这些很多的,那我主要是觉得note它的这个界面比较好看一点。然后呢,当我们下拉去扫描设备的时候,可以看到这边已经扫描到这个手表了,然后呢,可以点击这这个条目啊,就可以看到一些扫描到的信息。
07:08
那点击这个connect就可以连上我们的这个手表了。在通信的时候啊,B有一个协议叫做GTP协议,这里面呢,将通信的双方划分为了server和clint,那这时候的这个角色其实就跟我们前面提到的主从没有什么关系了,但是呢,往往来说,从机啊,它作为被连接的,它往往是作为sir扰端去响应主机请求的,而主机呢,它作为连接的发起者,往往是作为clean啊去请求或者说设置一些手表的数据的。啊,比如说我们的手表啊,它会采集我们的心率啊,血氧这些信息,而我们手机APP呢,希望获取这些信息来在手机上显示,那这时候手表它就是作为一个server端,而手机上充当clientt的角色,来去从server请求数据使用。
08:00
那在JT的定义里面呢,会有不同的服务啊,所以大家可以看到这边有很多个服务,然后呢,每一个服务下面又会分成不同的特性,比如说这一个你看它。这是一个服务,然后下面会有很多个特性。这些特性就是我们实际要操作的一些单位,比如说啊,这里有一个服务啊,叫做better电池嘛,它是电池相关的服务,它下面呢,只有一个特性叫做level啊,它表示这个电量,那右边呢,你可以看到一个看着像下载的一个按钮啊,这个就表示说我要从server端去读取一些数据下来,那当你点击的时候呢,你会发现这个值它是90%,就代表我现在这个手表的电量是90%。啊,那另外呢,这这里就相当于是read了,另外呢,还有一个notify的一个一个属性。Notify其实就是通知的意思啊,比如说我手机可以监听这一个来的通知啊,当手机的电池当当手表的这个电池电量低于某一个值的时候,比如说它低于3%了,那这时候呢,手表就会给手机发通知,说你这个要充电了是吧,你这么这么下去我快要记了啊,就大概是这么一个应用的场景。
09:19
那在这上面呢,大家还可以看到有不同的服务下面的特性呢,有一些是有right的啊,它就是一个向上上传的一个类似的按钮,就表示说我的要我要网去这个server去写入一些数据啊right。那我们后面想要实现的,去控制手表,去显示一些消息,控制手表不断的震动,其实就是利用这个right来实现的啊,但是呢,这看起来这里有这么多的service,而每个service下面又有这么多没有名字的一些特性,对吧,No啊。那我们怎么知道哪个是哪个呀,对吧,就除了很明显的这个电池的电量我确实知道啊,90%,那也没什么用,对吧。
10:06
那这怎么办呢?下个视频我们会通过蓝牙空口抓包来观察一下手机,它是具体如何跟手表进行通信的,并且呢,我们会找到哪一个服务啊,它下面的哪一个特性对应了哪一个具体的功能,比如说我们这边查找。跟他连接一下。比如说我们这边查找设备的这个功能啊,它对应的是哪一个特性。同时呢,我们也会抓到手机给蓝牙写的数据到底是什么,那么下一个视频见。
我来说两句