gatt

灵动微MM32W系列低功耗MCU智能锁解决方案

纵饮孤独 提交于 2020-07-28 12:27:16
智能锁方案中使用到 灵动微 MM32W系列低功耗MCU,配合手机通过APP读取智能锁蓝牙信息,尝试配对,配对成功即可正常通讯,手机APP通过蓝牙把指令发送给智能锁进行解锁,整个流程简单可靠,该方案将彻底告别传统钥匙开锁。蓝牙智能锁安全便捷,符合用户的需求,可应用的日常场景广泛,例如:门锁(家门、仓库门、货车门等);车锁(电动车锁、自行车锁、摩托车锁等);私人箱柜锁(抽屉锁、更衣柜、旅行箱、工具箱等)。接下来灵动微总代理英尚微给大家介绍一个使用场景非常丰富的蓝牙应用方案——基于MM32W系列开发的蓝牙智能锁方案。 图1方案场景 硬件资源如下: 本方案基于MM32BLE_TestBoard进行测试验证,搭配上一颗微型的双向直流马达作为开锁方式的载体,这里只用马达驱动开锁,关锁默认为手动操作,用户可以通过手机APP来操作开锁。在硬件原理上,本方案使用到的DC马达是通过一颗专用的IC芯片来驱动,其控制引脚连接到MCU的PD2和PD3,通过控制两个IO的电平可以对马达进行不同运动状态的操作;使用PB1连接到绿色LED指示灯,可作为蓝牙连接状态的指示;模拟锁体状态功能引脚PA1配置为上拉输入,低功耗唤醒引脚选择PA0配置为上拉输入;蓝牙相关的功能引脚与前面介绍的方案一致,此处不做过多展开。以下为DC马达驱动原理图: 图2 方案应用图 软件资源如下: 结合上述使用到的硬件资源

Android BLE peripheral disconnects with status code BLE_HCI_INSTANT_PASSED(0x28)

纵饮孤独 提交于 2020-07-09 17:02:11
问题 My application is able to connect to the BLE peripheral(which is an OBDII/J1939 device) device successfully. 2018-01-24 14:58:38,413 INFO LogUtil - GATT Server Status = (0) : BLE_HCI_STATUS_CODE_SUCCESS(0x00) 2018-01-24 14:58:38,414 INFO LogUtil - GATT Server New State = (2) : STATE_CONNECTED 2018-01-24 14:58:38,414 INFO LogUtil - Connected to GATT server. Application started communication with the device but after some time it received GATT server disconnection message in

Is Bonding required for BLE <-> Android, iOS device communication?

邮差的信 提交于 2020-07-09 06:56:26
问题 We have a BLE device and android/ios app for communication with the device. The requirement is to have an android/ios app connect to the device without any pairing request. No security is required on the device. Hereafter a few questions around this: Q1. Is it possible at all to have an android/ios app connect to a BLE device without a pairing request? Q2. Does the bonding required for the BLE communication? Q3. What is the downside of having the device with no bonding? Is it going to drop

Gatttool Pairing Failed (0x05)

人走茶凉 提交于 2020-06-27 16:56:29
问题 When I try to read a BLE characteristic which require encryption via GattTool on a RPI 3B gatttool -b 04:EE:03:B1:47:DF --char-read --handle=0x000e --sec-level=low It end up with an error Characteristic value/descriptor read failed: Request attribute has encountered an unlikely error I tried with/without --sec-level=low|medium|high hcidump 2020-06-05 10:35:50.696249 < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7 type 0x00 (passive) interval 60.000ms window 30.000ms own address:

Android 低功耗蓝牙BLE 开发注意事项

大憨熊 提交于 2020-05-04 06:01:10
基本概念和问题 1、蓝牙设计范式? 当手机通过扫描低功耗蓝牙设备并连接上后,手机与蓝牙设备构成了客户端-服务端架构。手机通过连接蓝牙设备,可以读取蓝牙设备上的信息。手机就是客户端,蓝牙设备是服务端。 手机做为客户端可以连接多个蓝牙设备,所以手机又可以叫中心设备(Central),蓝牙设备叫外围设备(Peripheral)。 还有另外一个称谓:手机叫主设备(Master),蓝牙设备叫从设备(Slave)。 Android4.3 开始支持低功耗蓝牙,此版本只支持单模式:同时只能工作在中心设备模式或者外围设备模式 Android5.0 开始支持主从一体。换句话说,手机可以扫描并进行连接,连接着蓝牙设备的同时,又可以作为广播者,发送蓝牙广播,等待别的支持蓝牙扫描的设备连接自己。 2、从设备连接数量的问题? 理论层面 从经典蓝牙时代开始,蓝牙有个星型拓扑的概念,一个主设备(Central)外围有七个从设备(Peripheral),蓝牙核心文档规定了:同一时间只允许七个从设备进行连接。 系统层面 Android系统蓝牙协议栈源码中也使用了这个数值,Android手机的蓝牙芯片都是双模蓝牙芯片,即同时支持经典蓝牙和低功耗蓝牙,分析过协议栈源码,建立连接的过程经典蓝牙和低功耗蓝牙是公用的代码,所以手机作为主设备(Central)时,从设备(Peripheral)同时连接的最大值就是7台设备。

树莓派

让人想犯罪 __ 提交于 2020-05-04 05:59:58
首先先了解一下bluez, 以及常用的tools. - hcitool、bluetoothctl等工具,可以进行BLE设备的扫描、连接、配对、广播等操作; - hcitool可以发送HCI command,设置BLE的广播数据; - gatttool可以在GATT层面,完成GATT profile的连接、service attribute的读写等操作; bluez 安装 sudo apt-get install bluez hciconfig 查看蓝牙设备 pi @raspberrypi :~ $ hciconfig hci0: Type : Primary Bus : UART BD Address : B8 : 27 :EB : 26 : 23 :F1 ACL MTU : 1021 : 8 SCO MTU : 64 : 1 UP RUNNING RX bytes: 822 acl: 0 sco: 0 events: 57 errors: 0 TX bytes: 4231 acl: 0 sco: 0 commands: 57 errors: 0 所有命令如下 pi@raspberrypi:~ $ hciconfig --help hciconfig - HCI device configuration utility Usage: hciconfig hciconfig [-a]

Android-低功耗蓝牙(BLE)-客户端(主机/中心设备)和服务端(从机/外围设备)

大憨熊 提交于 2020-05-04 04:47:15
一.Android 低功耗蓝牙(BLE)的API简介 从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能, BLE蓝牙协议是GATT协议, BLE相关类不多, 全都位于android.bluetooth包和android.bluetooth.le包的几个类: android.bluetooth. .BluetoothGattService 包含多个Characteristic(属性特征值), 含有唯一的UUID作为标识 .BluetoothGattCharacteristic 包含单个值和多个Descriptor, 含有唯一的UUID作为标识 .BluetoothGattDescriptor 对Characteristic进行描述, 含有唯一的UUID作为标识 .BluetoothGatt 客户端相关 .BluetoothGattCallback 客户端连接回调 .BluetoothGattServer 服务端相关 .BluetoothGattServerCallback 服务端连接回调 android.bluetooth.le. .AdvertiseCallback 服务端的广播回调 .AdvertiseData 服务端的广播数据 .AdvertiseSettings 服务端的广播设置

深入浅出低功耗蓝牙(BLE)协议栈

让人想犯罪 __ 提交于 2020-05-04 00:25:35
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。 如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈主要用来对你的应用数据进行 层层封包 ,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中。具体来说,BLE协议栈主要由如下几部分组成: PHY 层 (Physical layer物理层)。PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。PHY层做得好不好,直接决定整个BLE芯片的功耗,灵敏度以及selectivity等射频指标。 LL 层 (Link Layer链路层)。LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点。像Nordic的BLE协议栈能同时支持20个link(连接)

蓝牙BLE: 蓝牙(BLE)协议栈

断了今生、忘了曾经 提交于 2020-05-04 00:19:15
蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack), BLE协议栈就是实现低功耗蓝牙协议的代码 ,理解和掌握BLE协议是实现BLE协议栈的前提。当前的蓝牙协议分为基础率/增强数据率(BR/EDR)和低耗能(LE)两种技术类型,本文将重点介绍BLE(Bluetooth Low Energy)。 1、BLE低功耗蓝牙协议栈框架 要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈 主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中 。 蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,百花齐放,定义出各种各样的策略,如FTP、文件传输、局域网等等。 而蓝牙核心协议(Bluetooth Core

深入浅出讲解低功耗蓝牙(BLE)协议栈

落爺英雄遲暮 提交于 2020-05-03 23:45:55
详解BLE连接建立过程 https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式—兼BLE Link layer协议解析 https://www.cnblogs.com/iini/p/8977806.html 开发你的第一个BLE应用程序—Blinky https://www.cnblogs.com/iini/p/8996025.html 手把手教你开发BLE数据透传应用程序、 https://www.cnblogs.com/iini/p/9095622.html 如何实现蓝牙空中升级BLE OTA https://www.cnblogs.com/iini/p/9314246.html 手把手教你开发BLE数据透传应用程序 https://www.cnblogs.com/iini/p/9095622.html 三种蓝牙架构实现方案(蓝牙协议栈方案) https://www.cnblogs.com/iini/p/8834970.html 深入浅出低功耗蓝牙(BLE)协议栈 https://www.cnblogs.com/iini/p/8969828.html 蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码