1. 文章1:搭建环境的介绍:
【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(1)
链接:https://blog.csdn.net/D13162580021/article/details/139026624?spm=1001.2014.3001.5502
2. 文章2:BLE基本知识的介绍:
【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(3)
链接:https://blog.csdn.net/D13162580021/article/details/139046680?spm=1001.2014.3001.5502
摘抄:
BLE低功耗蓝牙的通讯流程:
大都督温馨提示:以下知识较为深入,仅供有兴趣的的同学参考学习,时间比较赶的同学可以只看BLE蓝牙通讯流程图和下面的解释。
低功耗蓝牙的特性,让它非常适合那些长时间靠电池供电,只偶尔发送少量数据的小设备。比如健康手环、追踪标签、物联网传感器等等。在BLE通信模式中,存在两类设备:BLE服务端(BLE Server)和BLE客户端(BLE Client)。通信时,BLE服务端向外发送信号,可以被附近的BLE客户端发现,一个BLE客户端可以连接特定的服务端,然后读取服务端发送的信号数据。
理解BLE通信还需要几个概念,最重要的就是GATT,GATT全称为Generic Attributes。可以简单地为BLE蓝牙通信的基础数据结构。
BLE Service:GATT结构里最上层的是Profile,一个Profile包含至少一个BLE Service,通常一个BLE设备是包含多个Service的。
这些BLE Service并不可自行设定,而是由蓝牙技术联盟(Bluetooth Special Interest Group)为了规范而事先统一制定的。比如有显示电量的Service,还有心跳、血压、计重等等各种Service。
BLE Characteristic:每个Service下面包含一个或者多个特征(Characteristic),这些Characteristic包含特征的声明(Declaration)、数据值(Value)和描述符(Descriptor)。这些特征组成可以完整地描述一个Characteristic如何被使用,常见的操作如:Broadcast、Read、Write without response、Write、Notify、Indicate、Authenticated Signed Writes、Extended Properties等。
UUID:在BLE GATT中,每个Service、每个Characteristic和每个Descriptor都有一个特定的128比特的UUID表示,就是类似下面的一串数字: 0x0000xxxx-0000-1000-8000-00805F9B34FB 为了简化,蓝牙技术联盟定义了16位UUID代替上面的基本UUID的‘x’部分。例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为: 0x00002A37-0000-1000-8000-00805F9B34FB
值得注意的是蓝牙技术联盟所用的基本UUID不能用于任何自定义的属性、服务和特性。另外对于自定义UUID,必须使用另外完整的128位UUID。
如果你看不懂上面的知识点也没关系,你只需要把这张通信流程图看懂,并且明白两个最重要的概念服务UUID:serviceUuid和特征UUID:characteristicUuid就够了啦。
简单来说BLE(低功耗蓝牙)通讯中,有个东西叫做GATT,我们可以把它想象成一本大书,这本书记录了BLE蓝牙所有的通讯规则和数据格式而服务UUID:serviceUuid就像是书中的一个章节。一本关于蓝牙设备的书,可能有不同的章节,比如“显示电量”章节、“心跳监测”章节等等。每个章节(或者说serviceUuid)就是为了处理一类特定的信息或功能。
而在每个章节(service)下面,会有不同的小节,这在BLE通讯中就是特征UUID:characteristicUuid。如果serviceUuid是“心跳监测”这个章节,那么它下面的characteristicUuid可能包括“实时心跳速率”、“心跳速率记录”等小节。小节里则详细指明了如何读取心跳速率,或者如何记录下来。
所以,serviceUuid就是指示一大块功能区域的唯一标识符,而characteristicUuid则是具体到这个功能区域下的一项具体功能或信息的唯一标识符。每一个都由一个特定的UUID(一串数字标识)来标识,就像每个章节和小节在目录里有唯一的编号一样。
你看,是不是会啦,哈哈,其实很多东西没有你想象的那么难,加油!
BLE 与传统蓝牙的区别
3、文章3
参考文章:
1.App Inventor 2 低功耗蓝牙(BLE) 硬件接入、数据通信及IO控制:https://blog.csdn.net/zqp2013/article/details/135957853