【转载】App Inventor 开发BLE应用

news/2024/11/20 20:32:11/文章来源:https://www.cnblogs.com/FBsharl/p/18289278

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/740392.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从 Helm 到 Operator:Kubernetes应用管理的进化

🧰Helm 的作用 在开始前需要先对 kubernetes Operator 有个简单的认识。 以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubectl apply 即可。apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat name: k8s-…

RAG工程实践拦路虎之一:PDF格式解析杂谈

背景 PDF(Portable Document Format)是一种广泛用于文档交换的文件格式,由Adobe Systems开发。它具有跨平台性、固定布局和易于打印等特点,因此在商业、学术和个人领域广泛应用。然而,PDF文件的解析一直是一个具有挑战性的问题,因为其内部结构的复杂性和多样性,使得提取…

PHP转Go系列 | ThinkPHP与Gin框架之API接口签名设计实践

数据安全一直是个热门的话题,API 接口在数据的传输上扮演着至关重要的角色。大家好,我是码农先森。 回想起以前用模版渲染数据的岁月,那时都没有 API 接口开发的概念。PHP 服务端和前端 HTML、CSS、JS 代码混合式开发,也不分前端、后端程序员,大家都是全干工程师。随着前后…

【一位资深用户的可视化工具推荐】智慧社区平台里的停车位如何协调?快来看看这款免费可视化工具

在智慧社区的管理中,停车位的协调是一个重要的难题,而山海鲸可视化这款免费可视化工具为解决这一问题提供了完美的解决方案。山海鲸可视化通过其强大的二三维融合功能,能够将二维面板与三维场景无缝结合,使停车位的管理变得更加直观和高效。无论是实时查看停车位的使用情况…

**CodeForces CF1928B Equalize题解**

ok兄弟们,今天本蒟蒻来做一篇小小的题解 Equalize 题面翻译 有一个给定的长度为 $n$ 的数列 $a$,现在加上一个排列 $b$,即 $c_i=a_i+b_i$。 现在求对于所有可能的 $b$,$c$ 中出现最多的数的出现次数的最大值。 translate by @UniGravity. 题目描述 Vasya has two hobbies —…

QT学习遇到的问题 乱码

孔夫子上买了一本二手的《QT 5.9 C++开发指南》, 从网站上下载了书中的代码, 在运行样例6.1过程中, 发现弹出的对话框中字符为乱码, 经过搜索, 找到了如下解决方法: 在头文件中添加了一行代码: #pragmaexecution_character_set("UTF-8")

微信小程序自动识别收货地址

为提升用户体验,在用户新增收货地址时,加入自动识别收货地址功能。.wxml <view class="top"><input type="text" placeholder="复制收货信息(格式:姓名→电话→地址)" value="{{distinguish}}"bindinput="distinguis…

性价比很高的多域名SSL证书:Buypass

在当今数字化快速发展的时代,网络安全已成为公众和企业关注的焦点。为了保障网站数据的安全传输,许多网站都采用了SSL证书来加密用户与服务器之间的通信。申请Buypass六个月免费SSL证书步骤 1、输入域名,注意由于Buypass不支持泛域名,请不要勾选泛域名。 2、选择加密方式,…

01、基础介绍

Kubernetes介绍和各组件盘点 01、K8S总览 Kubernetes(K8s),用于自动部署、扩容、缩容和管理容器化应用程序的开源系统。 它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。 Kubernetes源自Google 15年生产环境的运维经验,同时凝聚了社区最佳创意和实践。 简单…

RAG知识库之多表示索引

在朴素RAG中通常会对文档、文本进行分块后进行文档嵌入,对所有文件、文本都没有经过采用Chunk方法可能有时候效果不是和好,尽管有着各种分块策略有针对大文件的、针对小文件的策略,但都难免可能会造成上下文语义丢失。分块通常有两个非常重要的参数chunk_size、chunk_overla…

Halcon学习笔记(3):WPF 框架搭建,MaterialDesign+Prism

目录前言环境Nuget安装新建WPF 类库项目初始化PrismApp启动页初始化重写MainView 前言 其实我更喜欢CommunityToolkit.mvvm+HandyControl。但是因为找工作,你不能去抗拒新事物。这里就当体验一下完整的流程好了。 环境windows 11 .net core 8.0Nuget安装新建WPF 类库项目新建项…

Halcon 学习笔记(2):Halcon+WPF导入

目录前言.net core 8.0.net core 8.0新功能,打开文件夹和打开文件HSmartWindowControlWPFSystem.Drawing.Common重置拉伸关闭拖拽和缩放文件导出 前言 这里补充一下Halcon导入到WPF的要求 .net core 8.0 Halcon是支持.net core 8.0导入的 .net core 8.0新功能,打开文件夹和打…