本发明涉及蓝牙通信息技术领域,具体为一种基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法。
背景技术:
蓝牙技术是一种无线技术标准,可实现固定设备、移动设备和个人域网之间的短距离数据交换,低功耗蓝牙(简称ble)属于蓝牙最新4.0标准,在智能硬件,尤其是可穿戴设备领域大量应用,ios7.0和android4.3版本之上的系统都已经全面支持,亦使其成为智能设备与手机连接的主要协议之一。
现有的基于蓝牙传输系统的技术中,手机与智能设备都需要通过ble协议连接,即有一个握手的过程,双方知道对方后,才可以传输数据,这样就存在以下缺点:
a),连接易丢失:蓝牙属于无线连接,受环境和距离影响,连接丢失概率较大;尤其是需要长连接监控的设备(例如智能体温计,需要长时间连接,间隔读取体温)、相对位置不固定的设备(例如实时计步器,设备随着运动位置一直改变),一旦连接丢失,会造成数据丢失,用户体验下降;如果没有自动重连机制,还需要人工交互重新连接。
b).功耗上升:连接状态下,相对于未连接状态,功耗是相对上升的;
.技术设计相对复杂,蓝牙广播、连接、profile、server等都按照ble协议设计实现。
有鉴于此,特提出本发明。
技术实现要素:
本发明的目的是针对上述技术问题,提供一种基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法,解决蓝牙连接易丢失造成的数据易丢失问题、功耗较低。
为了实现上述目的,本发明的技术构思如下:
第一方面,本发明提供了一种基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法,在智能硬件设备侧,包括
在ibeacon协议中添加私有协议,将智能硬件设备采集的数据嵌入到该设备的ibeacon帧的自定义字段,并广播数据包以被匹配有与该智能硬件设备相同uuid的数据接收端接收并解析所述采集的数据。
优选的,上述基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;且其ibeacon协议的uuid与数据接收端的uuid相同。
优选的,上述基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法中,所述私有协议的定义为:
major:key
minor:value
其中major字段中存放key值,key表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值。
上述基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法在数据接收端实施时,包括
将数据接收端ibeacon协议的uuid匹配为与智能硬件设备的uuid相同,以能够直接接收所述智能硬件设备广播的数据包;其数据包ibeacon帧的自定义字段按照添加的私有协议嵌入有智能硬件设备采集的数据以使主机端能够根据该私有协议解析出来。
优选的,上述基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段。
优选的,上述基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法中,所述私有协议的定义为:
major:key
minor:value
其中major字段中存放key值,key表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值。
第二方面,本发明提供了一种智能硬件设备,包括第一处理器以及电路连接第一处理器的采集模块和第一ibeacon模块,其中所述第一ibeacon模块中的ibeacon协议中添加私有协议,以能够将采集模块采集的数据嵌入到该设备的ibeacon帧的自定义字段,并广播数据包以被匹配有与该智能硬件设备相同uuid的数据接收端接收并解析所述采集的数据。
优选的,上述智能硬件设备中,所述采集模块采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;所述私有协议的定义为:
major:key
minor:value
其中major字段中存放key值,key表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值。
第三方面本发明提供了一种移动终端,包括第二处理器和存储器以及第二ibeacon模块,存储器中存储有程序,所述程序被第二处理器执行时,可以直接接收和解析所述第二ibeacon模块接收的蓝牙数据;其中第二ibeacon模块的ibeacon协议中uuid匹配为与智能硬件设备的uuid相同,以能够直接接收所述智能硬件设备广播的数据包;其数据包ibeacon帧的自定义字段按照添加的私有协议嵌入有智能硬件设备采集的数据以使第二ibeacon模块能够根据该私有协议解析出数据。
优选的,上述移动终端中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;所述私有协议定义为:
major:key
minor:value
其中major字段中存放key值,表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值。
本发明提供的,具有如下有益效果:
对于基于蓝牙通信、长时间监控数据的设备,通过本发明方法可以达到:
1、使得数据通讯简单,有效;负责采集数据的智能硬件设备不需要请求连接主机端,而是单向广播数据,在蓝牙广播的范围内,蓝牙数据就可以自动连接发送,上层(在主机端)将会对数据进行自动处理,使用户体验舒服、流畅,没有中断感,数据的接收和处理在主机端后台进行即可,尤其适用于长连接监控传输的系统;
2、通过广播方式,可以实现蓝牙数据模块和移动展示端实现一对多的展示,一个数据模块可以同时在多个移动展示端展示;而且移动展示端没有数量的限制;
3、大大减小设计难度;
4、设备功耗极低。
附图说明
图1为现有技术中蓝牙ibeacon协议格式示意图。
图2为本发明方法在智能硬件设备和接收数据的移动终端之间实施的示意图;
具体实施方式
下面结合具体实施例,对本发明作进一步说明,以助于理解本发明的内容。
需说明,本文中出现的“第一处理器”、“第二处理器”,以及“第一ibeacon模块”、“第二ibeacon模块”中的“第一”、“第二”是为了对文中不同终端或设备中的处理器和ibeacon模块进行区分,而不对处理器和ibeacon模块本身保护范围形成限定作用。
第一方面,本发明提供一种基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端(即主机端)的方法,基于现有的ibeacon蓝牙技术,对ibeacon协议中的数据部分,再次进行规定,添加私有协议,确保其更符合长时间稳定定时传输数据。
实施例1
具体的,如图2所示的,本发明上述方法在智能硬件设备侧,包括
在ibeacon协议中添加私有协议,将智能硬件设备采集的数据嵌入到该设备的ibeacon帧的自定义字段,并广播数据包以被匹配有与该智能硬件设备相同uuid的主机端(与下文中的移动终端相同)接收并解析所述采集的数据;
其中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;且其ibeacon协议的uuid与主机端的uuid相同。即
其中所述私有协议定义为:
major:key
minor:value
其中major字段中存放key值,表示采集数据的类型,如温度、湿度、气压、电量等等;minor字段中相应的存放其key对应的值;即当key为温度时,value为当前采集到的温度值;key为湿度时,value为当前采集到的湿度值等。
由于ble中有两种角色central和peripheral,也就是中心设备和外围设备;主机端(即移动终端,如手机、平板电脑等智能终端)可看作为中心设备,各类数据采集设备可作为外围设备,外围通过广播被中心设备发现,广播中带有外围设备自身的相关信息。同时ibeacon协议中的uuid让分布式系统中的所有元素都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定,故本发明方法中使主机端的ibeacon协议中的uuid匹配与智能硬件设备一致,即将装有同一应用的该两不同设备视为一个系统,主机端根据相同的uuid可不必连接而直接接收智能硬件设备广播的数据包,这样便可使得数据通讯简单,有效;负责采集数据的智能硬件设备不需要请求连接主机端,而是单向广播数据,在蓝牙广播的范围内,蓝牙数据就可以自动连接发送,上层(在主机端)将会对数据进行自动处理,使用户体验舒服、流畅,没有中断感,数据的接收和处理在主机端后台进行即可,尤其适用于长连接监控传输的系统。同时因为广告帧本身就有着定时广播的机制,所以非常适合定时采集上报数据的应用。
实施例2
本发明一种基于蓝牙ibeacon广播协议传输智能硬件采集数据到数据接收端的方法,在主机端侧实施时,包括
将主机端ibeacon协议的uuid匹配为与智能硬件设备的uuid相同,以能够直接接收所述智能硬件设备广播的数据包;其数据包ibeacon帧的自定义字段按照添加的私有协议嵌入有智能硬件设备采集的数据以使主机端能够根据该私有协议解析出来。
其中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;即
所述私有协议定义为:
major:key
minor:value
其中major字段中存放key值,表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值,具有实时性。例如,智能硬件设备为可穿戴设备,需要采集温度数据,则将该设备的ibeacon协议中的major字段定义为“温度”类型,minor字段写入智能硬件设备实时采集的温度参数,广播出去,每次广播的温度参数可随着采集数据的变化而改变。
本发明方法通过广播方式,可以实现蓝牙数据模块和移动展示端实现一对多的展示,即一个数据模块(智能硬件设备)可以同时在多个移动展示端(主机端)展示,智能硬件设备发出广播以后,由于不需要与主机端连接,故蓝牙广播范围内的任意匹配有与智能硬件设备相同uuid的主机端,均可接收广播数据包;与以往蓝牙能与多个设备配对、但同一时间只能与一个设备连接并传输数据的蓝牙连接模式相比,具有对多方快捷传输的优点,而且移动展示的主机端没有数量的限制。
通过本发明方法,既可不需要设备连接就可以传输数据,同时亦不需要进行复杂的控制交互设计,大大简化了设计难度,并且使蓝牙可以一直处于ibeacon低功耗的广播模式,功耗远远低于连接状态。
上述蓝牙ibeacon原有的工作方式是,在现有蓝牙ble广播协议按照苹果公司的ibeacon格式嵌入数据,向周围发送自己特有的id,接收到该id的应用软件会根据该id采取一些行动;即ibeacon基站可以自动创建一个信号区域,当用户设备进入该区域时,相应的应用程序便会提示用户是否需要接入这个信号网络。
如图1所示,其中ibeacon的数据主要由四种资讯构成,分别是uuid(通用唯一标识符)、major、minor和measuredpower。
uuid是规定为iso/iec11578:1996标准的128位标识符。主要区分设备类型,不同的设备拥有不同的uuid;
major和minor由ibeacon发布者自行设定,都是16位的标识符。常规的,店铺(如连锁店)可以在major中写入区域资讯,可在minor中写入个别店铺的id等;按照ibeacon的设计思路,其uuid,major,minor在部署后都不再改变,每次广播时都是同一个值,那么用户手机端在ibeacon基站范围内,可收到店铺的广播,手机端就可以得知是哪一个设备广播,并按照app对应设计定义,触发相应动作。例如,到了商店的某一角,收到某个ibeacon广播,用户手机端app就可以触发其对应的商品展示或广告。
measuredpower是ibeacon模块与接收器之间相距1m时的参考接收信号强度(rssi:receivedsignalstrengthindicator)。接收器根据该参考rssi与接收信号的强度来推算发送模块与接收器的距离。
按照上述以往的ibeacon应用的系统中,数据采集设备为了向主机端上报数据,需要两端通过蓝牙连接,即它们只有先连接后,设备才能向主机传输数据,并且如果需要定时上报,就需要两端保持长连接,而一旦连接丢失,就无法传输数据了;ibeacon仅仅提供位置服务,推送消息功能需要用户手机app软件在后台挂载相应服务程序。例如进入ibeacon广播范围的用户手机收到商场打折促销信息,信息是由手机上的应用去获取的,而不是保存在ibeacon里,ibeacon帧中的major和minor字段只能表示店铺的区域资讯和id以触发app展示动作,当手机端app软件接收到ibeacon广播的位置信息后,经过一定计算来获取自己的当前位置,当计算出来的位置符合店铺设定的特定条件时,app向广告数据服务器请求对应内容并呈现给用户,到此完成一条消息的推送。
本发明方法中,智能硬件设备在ibeacon协议中添加私有协议,能够将智能硬件设备采集的数据嵌入到该设备要广播的ibeacon帧中,被手机端直接获知,不需要复杂的控制交互设计,大大降低设计难度。
实施例3
第二方面,本发明还提供了实施上述实施例1中方法的智能硬件设备,包括第一处理器以及电路连接第一处理器的采集模块和第一ibeacon模块,其中所述第一ibeacon模块中的ibeacon协议中添加私有协议,以能将够采集模块采集的数据嵌入到该设备的ibeacon帧的自定义字段,并广播数据包以被匹配有与该智能硬件设备相同uuid的主机端接收并解析所述采集的数据。
本发明智能硬件设备可以是通过蓝牙向移动终端传输采集数据的智能硬件、可穿戴设备、智能家居设施或装置以及移动医疗健康设备等,该智能硬件设备具备数据采集功能,并通过蓝牙ibeacon方式将采集的数据传输至移动终端(即主机端),在移动终端上进行该数据的展示和处理;第一处理器控制数据的采集和传输,采集模块将采集的数据通过第一ibeacon模块传输出去,采集模块是具有某种数据采集功能的传感器、监测器等,如温湿度传感器、血压监测器、气体传感器等等,属于本领域成熟技术,此处不做赘述;其中第一ibeacon模块中的ibeacon协议中,本发明做了进一步规定,在原来的ibeacon协议中添加私有协议,所述采集模块采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;且其ibeacon协议的uuid与主机端的uuid相同。即
所述私有协议定义为:
major:key
minor:value
其中major字段中存放key值,表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示当前采集到的数值;如此,系统设计可以灵活定义,方便扩展。
相应的,移动终端的ibeacon协议的uuid匹配为与智能硬件设备相同,则在移动终端的广播范围内,移动终端即可收到该智能硬件设备的广播整包,然后根据上述智能硬件设备的私有协议规则解析出major和minor字段,获得底层实际采集的数值。
本发明提供的智能硬件设备的一个具体应用:一种尿贴,是一种粘附在宝宝纸尿裤外部来监控湿度温度的小设备,它通过蓝牙技术跟移动手机进行数据传输,长时间定时向手机发送温度和湿度数据,再由手机软件算法,根据温湿度变化,判断宝宝是否有尿湿纸尿裤,从而报警家长。
在传统的蓝牙建立连接再传输数据的方案中,通过实际使用反馈得出,因为蓝牙属于无线短距离传输技术,再加上无线环境复杂,所以连接很容易丢失,致使数据丢失,同时连接丢失后再次连接设计也比较复杂,甚至需要人为干预才可以再次恢复传输,这样极不利于长时间稳定传输数据的应用场景。故本发明智能硬件设备中,定义为ibeacon广播传输数据,尿贴和移动终端规定了同样的uuid,并规定了key和value(温度-0,湿度-1,电池电量-2)。这样在实现中,尿贴和手机通过ibeancon传输和接收数据,手机根据uuid判断是否为自己需要的数据,再从接收的数据包中根据key值,从而得到对应的value。尿贴可以配置为定时循环发送key,比如固定发送间隔为5秒,可以设计温度间隔为10秒,湿度间隔10秒,电量间隔为1分钟。那工作流程可以依次循环:
温度,湿度,温度,湿度,温度,湿度,温度,湿度,温度,湿度,温度,湿度,电量……依次循环发送。
本发明智能硬件设备,可以实现长时间稳定数据传输,且使传输效果大大提高,不会再有丢失连接问题,同时采用的ibeacon本身属于广播协议,即使接收端脱离了范围再次回来时也能自动恢复,无需任何其它介入。并且本发明设备功耗大幅度降低,同样电量可以使用时间长出很多。设计难度也大大降低。
实施例4
本发明还提供了一种移动终端,包括第二处理器和存储器以及第二ibeacon模块,存储器中存储有程序,所述程序被第二处理器执行时,可以直接接收和解析所述第二ibeacon模块接收的蓝牙数据;具体的第二ibeacon模块的ibeacon协议中uuid匹配为与智能硬件设备的uuid相同,以能够直接接收所述智能硬件设备广播的数据包;其数据包ibeacon帧的自定义字段按照添加的私有协议嵌入有智能硬件设备采集的数据以使第二ibeacon模块能够根据该私有协议解析出数据。
其中,所述智能硬件设备采集的数据的类型写入ibeacon协议的major字段,采集的数据的数值写入ibeacon协议的minor字段;即
所述私有协议定义为:
major:key
minor:value
其中major字段中存放key值,表示采集数据的类型;minor字段中相应的存放其key对应的值,value表示采集数据的数值,具有实时性。
移动终端上的相关程序软件在后台执行,移动终端在智能硬件设备的蓝牙广播范围内,第二ibeacon模块可根据相同的uuid直接接收智能硬件设备广播的数据包,并按照智能硬件设备添加的私有协议进行解析,并将解析的数据传输给程序软件,进行展示或做进一步处理。例如对应上述实施例3中列举的例子,移动终端中安装有监测纸尿裤上尿贴数据的app,尿贴与app的uuid相同。app在移动终端后台执行时,移动终端的第二ibeacon模块接收并解析尿贴广播的数据包并进行解析,将解析出来的温度、湿度以及电量值传输给该app进行展示或进一步处理。
本文中应用了具体个例对发明构思进行了详细阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离该发明构思的前提下,所做的任何显而易见的修改、等同替换或其他改进,均应包含在本发明的保护范围之内。