App Inventor 2 低功耗蓝牙(BLE) 硬件接入、数据通信及IO控制

简介: 低功耗蓝牙(BLE)以低功耗、低成本、开发简便逐渐被广泛应用,本文主要介绍一款较为通用、价格低廉的BLE设备从零开始如何利用App Inventor 2开发一款自己专属的手机蓝牙App应用。本文主要通过一款常见的BLE硬件接入控制,介绍硬件接入App Inventor 2 的通用方法,类似的硬件接入都是大同小异的。

低功耗蓝牙(BLE)以低功耗、低成本、开发简便逐渐被广泛应用,本文主要介绍一款较为通用、价格低廉的BLE设备从零开始如何利用App Inventor 2开发一款自己专属的手机蓝牙App应用。

BLE与经典蓝牙的区别可参考:《低功耗蓝牙(BLE) 和 经典蓝牙(SPP) 的区别》。

本文主要通过一款常见的BLE硬件接入控制,介绍硬件接入App Inventor 2 的通用方法,类似的硬件接入都是大同小异的。

1、硬件接线(特别注意:VCC 3.3v 或 5v 请参阅说明书,不要弄错以免烧坏硬件)

一般来说,需要接线的端口有以下4个,无论哪款蓝牙硬件,也无论哪种其他硬件,这4个端口都是基本的存在:VCC(正极)、GND(接地负极)、TX、RX 交叉接线,接线图请点底部原文链接查看。


2、串口工具测试

接线完成后,我们必须先来测试一下蓝牙硬件的连通性,但是由于蓝牙硬件是孤立存在的,我们无法查看手机App向它发送的什么数据,也无法让它往手机App发送数据,这时我们就需要用到串口工具。

什么是串口工具?

串口工具一般是一款电脑上的软件,配合UART线,可以与硬件进行双向数据传输的工具,UART线如下:

电脑端的串口工具软件非常之多,这里提供一款仅供参考:

XCOM V2.7.zip

请注意:使用串口工具软件之前,一般需要安装硬件厂商提供的驱动程序。

电脑端打开串口:

UART上指示灯会开启,说明串口已打开:


测试与BLE硬件通信(数据透传)

手机App端发送数据,BLE硬件(电脑串口)读取并打印数据;BLE硬件(电脑串口)发送数据,App手机端接收并打印数据。

使用厂商自带的测试App进行通信测试:

电脑端串口工具查看通信数据:


AT控制指令

除了上面的数据透传之外,一般硬件还支持内部的控制指令(如设置连接密码、查询硬件地址、主模式连接其他蓝牙等)。

注意:BRTS接GND才能执行控制指令,如图:

AT开头是控制指令;非AT开头是透传数据:

这里仅演示了需求硬件状态、MAC地址的指令,当然不同厂商会提供不同的AT指令,具体可查看厂商提供的硬件说明书。

BLE设备角色主要分为两种角色,主机(Master或Central)和从机(Peripheral),当主机和从机建立连接之后才能相互收发数据

  • 主机,主机可以发起对从机的扫描连接。例如手机,通常作为BLE的主机设备
  • 从机,从机只能广播并等待主机的连接。例如智能手环,是作为BLE的从机设备(以上的数据透传演示BLE硬件就是作为从机的)


IO口控制

可以使用厂商提供的App进行IO口控制,也可以使用App Inventor 2 编程实现控制IO口电平的高/低,对应LED的开/关。

3、App Inventor 2 开发自己的蓝牙App

主要用到 BlueToothLE 拓展,点此查看中文文档。BLE蓝牙的特点是无需配对,设备被扫描后直接连接即可通信。

蓝牙App开发示例

demo参考界面如下:

扫描蓝牙设备,代码如下:

扫描完成后,设备列表展示到“列表显示框”组件中:

点击列表中的目标设备(一般硬件文档会有说明,名称会有特别的标识),连接蓝牙设备的代码如下:

蓝牙App控制硬件

开始控制硬件相关IO端口,发送高/低电平,控制LED的开和关,代码如下:

其中:

  • values - 表示待发送的数据(这里是单字节0x01,表示高电平)
  • signed - 表示values数据是否是有符号的数值(表示无符号)
  • serviceUuid - 服务UUID,通俗来讲它就是硬件的唯一身份ID
  • characteristicUuid - 特性UUID,通俗来讲它是硬件中某一功能的唯一身份ID

UUID的获取途径:

上面代码中的两个UUID仅仅是我们测试对象的硬件的IO控制口的UUID,不同的硬件UUID是不同的,具体可以查看硬件提供的文档或厂商提供的java源码,一般会有提供。

一个硬件UUID示例如下:

UUID分为标准UUID和厂商自定义UUID

  • 标准UUID:由SIG发布,采用UUID基数 + 16位UUID的形式,如心率服务的UUID是0x180D,使用的UUID基数是:00000000-0000-1000-8000-00805F9B34FB
  • 厂商自定义UUID:同样采用UUID基数 + 16位UUID的形式,由厂商定义,如BLE串口服务的UUID是0x001,使用的UUID基数是:6E400001-B5A3-F393-E0A9-E50E24DCCA9E



原文链接:https://www.fun123.cn/reference/iot/ble.html

相关文章
|
3月前
|
网络协议 物联网 测试技术
App Inventor 2 MQTT拓展入门(保姆级教程)
本文演示的是App和一个测试客户端进行消息交互的案例,实际应用中,我们的测试客户端可以看着是任意的、支持MQTT协议的硬件,通过订阅及发布消息,联网硬件与我们的App进行双向数据通信,以实现万物互联的智能控制效果。
198 2
|
4月前
|
JSON API 数据格式
App Inventor 2 天气预报App开发 - 第三方API接入的通用方法
通过调用第三方天气api,填入必要的参数,通过Web客户端请求url。返回json格式的数据结果,使用AppInventor2解析json结果,显示到App上即可。
142 5
|
4月前
|
存储 物联网 数据库
App Inventor 2 低功耗蓝牙 BlueToothLE 拓展中文文档(完整翻译加强版)
低功耗蓝牙,也称为蓝牙LE 或简称 BLE,是一种类似于经典蓝牙的新通信协议,不同之处在于它旨在消耗更少的功耗和成本,同时保持同等的功能。 因此,低功耗蓝牙是与耗电资源有限的物联网设备进行通信的首选。
158 0
|
5月前
|
搜索推荐
App Inventor 2 列表排序,函数式编程轻松实现高级排序算法
本文探讨了列表的函数式编程高级用法,允许根据自定义逻辑进行排序。不仅支持基本数据类型(文本和数字)的升序和降序排序,还能处理复杂结构类型中特定元素的排序。通过示例展示了如何定义比较函数来实现升序和降序,简化了排序操作。
63 0
|
4月前
|
JSON 人工智能 API
App Inventor 2 人脸识别App开发 - 第三方API接入的通用方法
**App 效果图**:展示人脸识别功能,可识别性别和年龄。 **工作原理**:调用第三方人脸识别API,上传图片并接收返回的JSON数据,AppInventor2解析结果显示。
97 0
|
5月前
|
网络协议 Unix Shell
第三方App与Termux命令建立IO通道
、第三方 App 与 Termux 建立 TCP/Socket 通信 通过 RunCommandService 调用 Termux 执行 nc 命令反弹某个程序,然后通过 java.net.Socket 建立 Socket 连接,取得 Socket 的 IO 流,即可实现进程间通信。 调用 Termux。注意,Termux 可使用两个版本的 Netcat:安卓自带的 /system/bin/nc 和 Termux 仓库的 netcat-openbsd。前者随 ToyBox 在 Android Marshmallow 被引入,支持反弹 shell,而后者不支持;后者支持抽象命名空间 UDS。所以
|
6月前
|
移动开发 数据安全/隐私保护
HC05蓝牙模块与手机APP连接
HC05蓝牙模块与手机APP连接
216 1
|
6月前
|
人工智能 算法 数据处理
App Inventor 2 Personal Image Classifier (PIC) 拓展:自行训练AI图像识别模型,开发图像识别分类App
这里仅仅介绍一下AI图像识别App的实现原理,AI的基础技术细节不在本文讨论范围。通过拓展即可开发出一款完全自行训练AI模型,用于特定识别场景的App了。
160 1
|
6月前
|
Android开发
App Inventor 2 Activity启动器技巧:如何查看并启动其他App
Activity启动器(ActivityStarter)如何查看并启动其他App,可以通过解压源码查看,或使用“包名查看器”App查看,不同品牌手机可能略有不同。
198 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
485 7

热门文章

最新文章