首页 > 其他分享 >【转载】App Inventor 开发BLE应用

【转载】App Inventor 开发BLE应用

时间:2024-07-08 09:19:36浏览次数:9  
标签:章节 UUID Service GATT App 蓝牙 BLE Inventor

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

标签:章节,UUID,Service,GATT,App,蓝牙,BLE,Inventor
From: https://www.cnblogs.com/FBsharl/p/18289278

相关文章

  • 基于SpringBoot+Vue+uniapp的随心淘网管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的劳务外包管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • Matlab之App Designer 如何导入Excel参数教程
    一、背景介绍    采用Matlab中的AppDesigner进行GUI可视界面程序设计时,经常需要将数据导入到程序中进行运算和分析,以提升效率,本文将对导入Excel参数的方法及程序实现进行介,。二、采用MatlabAppDesigner导入Excel参数方法及代码1、首先打开一个新的AppDesigner页......
  • RedHat7.4—配置与管理iptables防火墙
    假如某公司需要Internet接入.采用iptables作为NAT服务器接入网络,为确保安全需要配置防火墙功能,要求内部仅能够访问Web、DNS及Mail三台服务器;1、内网通过防火墙访问外网1.1、配置主机网络内部Web服务器通过端口映象方式对外提供服务。内网服务器地址网卡1IP设为192.168.100.1......
  • 强化学习(Value Function Approximation)-Today9
    ValueFunctionApproximation主要是使用神经网络来求最优解问题,主要包括Algorithmforstatevaluefunction、Sarsa和valuefunctionapproximation的结合、Q-learning和valuefunctionapproximation的结合、DeepQ-learning。由于tables的数据不能处理很大的statespace或......
  • SpringBoot-校园疫情防控系统-93033(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP
    springboot校园疫情防控系统摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园疫情防控等问题,对校园疫情防控进行研究分析,然后开发设计出......
  • 基于Django+微信小程序的旅游资源信息管理系统(免费领源码+数据库)可做计算机毕业设计JA
    django广西-东盟旅游资源信息管理系统小程序摘 要在社会快速发展和人们生活水平提高的影响下,旅游产业蓬勃发展,旅游形式也变得多样化,使旅游资源信息的管理变得比过去更加困难。依照这一现实为基础,设计一个快捷而又方便的基于小程序的旅游资源信息管理系统是一项十分重要并且......
  • maven mvn install 报错: unable to find valid certification path to requested targ
    [INFO]---maven-surefire-plugin:2.22.2:test(default-test)@platform---[INFO]Downloadingfromalimaven:http://maven.aliyun.com/repository/public/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.pom[INFO]---------......
  • Spring之 IoC、BeanFactory、ApplicationContext
    IoC(InverseofControl)IoC,也就是控制反转。对于软件来说,即某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定,即由Spring容器借由Bean配置来进行控制。MartinFowler提出了DI(DependencyInjection,依赖注入)的概念用来代替IoC,即让调用类对某一接口实现类的......
  • 条件变量condition_variable用法学习
    转自:https://www.cnblogs.com/fenghualong/p/13855360.html1.介绍 condition_variable类似于信号量机制,实现了线程的等待和唤醒。wait() :阻塞等待的同时释放锁(原子操作),还可以添加阻塞判断函数,详见代码notify_all() :唤醒所有阻塞等待的线程notify_one():唤醒某一个等......