HC-05蓝牙模块使用记录

2023-11-05

前言

后面可能需要用到蓝牙远程控制,所以提前了解了一下。主要是用买来的蓝牙模块HC-05,主要包括一个蓝牙芯片CSR BC417(该公司是剑桥的一个公司,现已被高通收购)和一个FLASH芯片,调试一下两个HC-05之间基本的通讯以及与手机蓝牙的通讯。

一、蓝牙技术介绍

蓝牙(Bluetooth)是一种短距离的无线通讯技术,最初是研究在移动电话和其它配件间进行低功耗、低成本无线通信连接的方法。发明者希望为设备间的通讯创造一组统一的标准化协议,以解决用户间互不兼容的移动电子设备的互连互通,这些设备之间省去了传统的电线。透过芯片上的无线接收器,配有蓝牙技术的电子设备能够在短距离内彼此相通,传输速度可以达到每秒钟1Mbps。和当时流行的红外线技术相比,蓝牙有着更高的传输速度,而且不需要像红外线那样进行接口对接口的连接,所有蓝牙设备基本上只要在有效通讯范围内使用,就可以进行随时连接。

蓝牙的创始人是瑞典爱立信公司,爱立信早在1994年就已进行研发,1997年,与其他设备生产商联系,并激发了他们对该项技术的浓厚兴趣,1998年2月,5个跨国大公司,包括爱立信、诺基亚、IBM、东芝及Intel组成了一个特殊兴趣小组SIG(Special Interest Group),他们共同的目标是建立一个全球性的小范围无线通信技术,即现在的蓝牙技术,目前SIG已经发展成为一个会员达4000多家,由电信、计算机、汽车制造、工业自动化和网络等行业的领先厂商组成。

当蓝牙1.0版本推出以后,并未立即受到广泛的应用,除了当时对应蓝牙功能的电子设备种类少,蓝牙装置也十分昂贵。2001年的1.1版正式列入IEEE标准,蓝牙1.1即为IEEE 802.15.1。几年之后,采用蓝牙技术的电子装置如雨后春笋般增加,售价也大幅回落。为了扩宽蓝牙的应用层面和传输速度,SIG先后推出了1.2版、2.0版,以及其它附加新功能,例如增强型速率EDR(Enhanced Data Rate),配合2.0的技术标准,将最大传输速度提高到3Mbps;音频传输模型协定A2DP(Advanced Audio Distribution Profile)是一个控音轨分配技术,提高声音的清晰度,主要应用于立体声耳机;还有音频/视频远程控制配置文件AVRCP(A/V Remote Control Profile)等等。蓝牙3.0在适配层协议应用了Wi-Fi技术,即可在需要的时候调用802.11 Wi-Fi用于实现高速数据传输,数据传输率提高到了大约24Mbps。而最新推出的蓝牙4.0技术在电池时间、节能和设备种类上,以及有效传输距离上均有所提升。

二、模块介绍

2.1 概述

  • HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。
    模块采用邮票孔封装方式,模块大小 27mm×13mm×2mm,方便客户嵌入应用系统之内,自带 LED 灯,可直观判断蓝牙的连接状态。
    模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式)以及串口波特率、设备名称等参数,使用灵活。(在www.hc01.com下载到手册)

2.2 工作模式

具有两种工作模式:命令响应工作模式(AT模式)和自动连接工作模式
  • 命令工作模式:能执行下述所有 AT 命令,用户可向模块发送各种 AT 指令,为模块设定控制
    参数或发布控制命令。也就是在该模式下可以设置波特率、密码、查询蓝牙地址等等。需要在断电时按住按钮,上电之后松开。模块上的绿灯会每隔2s闪一次,并且在串口助手中输入AT,回复OK,表示进入AT模式;
  • 自动连接工作模式:当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色;
    • 主模式:该模块可以主动搜索并连接其它蓝牙模块并接收发送数据;
    • 从模式:只能被搜索被其它蓝牙模块连接进行接收发送数据;
    • 回环:蓝牙模块就是将接收的数据原样返回给远程的主设备;

2.3 常用指令说明

指令 响应 参数
AT OK
AT+ROLE=< param > OK 0-从机;1-主机
AT+ROLE? +ROLE:< param> OK 查询模式
AT+CMODE=< param > OK 0-指定蓝牙地址连接模式;1-任意蓝牙地址连接模式;2-回环角色
AT+BIND=< param > OK param:绑定蓝牙地址,查询的地址中间是:,在绑定时修改为,
AT+ADDR? +ADDR:< Param > OK param:模块蓝牙地址
AT+PSWD=< param > OK param:配对码
AT+PSWD=< param1 >,< param2 >,< param3 > OK param1:波特率;param2:停止位;param3:校验位;

三、功能实现

使用三种方式测试功能:HC-05+USB——HC-05+USB;手机——HC-05+单片机;HC-05+USB——手机

3.1 HC-05+USB——HC-05+USB

	该方式是通过USB-TTL模块,将两个蓝牙分别接入电脑的USB接口,在串口助手上进行测试

3.1.1 硬件连接

如下图所示,通过一个USB-TTL的模块,与蓝牙模块连接之后插入PC的USB接口,注意RX——TX;
在这里插入图片描述

3.1.2 参数配置

  1. 进入命令响应模式(AT模式)

    • 首先按住蓝牙模块上的复位键然后再上电,看见蓝牙模块上的LED灯以2s间隔闪烁,就表示进入了AT模式;需要注意的是,两个模块都需要进入AT模式,当时用的两个电脑,所以另一个就不截屏了;
      在这里插入图片描述
  2. 设置主从模式(发送:AT+ROLE=1/0)

    • 一个模块设置为主模式(发送1),一个设置为从模式(发送0)
      在这里插入图片描述
  3. 查找从机物理地址并连接

    • 首先在从机模块中确定自己的地址,发送AT+ADDR?,会返回地址数据,格式如NAP:UAP:LAP(十六进
      举例说明(不是真正的地址):
      模块蓝牙设备地址为:20:16:03:03:37:65
      发送:AT+ADDR?\r\n
      返回:+ADDR: 2016:3:33765 OK
    • 然后在主机中发送从机地址进行连接(AT+BIND=,),出现第三个OK了
      在这里插入图片描述
  4. 设置匹配码

    • 因为两个蓝牙模块需要匹配,所以需要设置匹配码(AT+PSWD=7777),需要注意的是,主机和从机都要设置
      在这里插入图片描述
  5. 发送数据

    • 此时断开两个模块重新上电,两者会自动建立连接;当开始发送数据的时候,发现接收的是乱码,想起来是波特率设置的不同,主机是38400,从机是9600,于是让从机重新进入AT模式,设置波特率(AT+UART=38400,0,0),然后再发送,就可以正确接收到数据了。而且主机和从机之间是可以相互发送的。图片是两个电脑串口助手的显示界面,通讯成功。
      在这里插入图片描述

3.2 手机——HC-05+单片机

通过手机的蓝牙发送指令给连接到单片机的蓝牙模块,单片机做处理器,根据接收到的数据做不同的命令。
  1. 安卓手机需下载蓝牙助手,开始使用的是3.3这种的官方APP,但是不能发送16进制的数据,只能发送图形变量,例如当我发送1的时候,在串口助手16进制中显示为31。

在这里插入图片描述
因此在应用市场搜索了“蓝牙串口”这个APP,支持16进制发送,并经过测试可以work。
手机蓝牙连接参考3.3,当可以正常连接后,只需要识别串口接收到的数据,然后单片机对数据做出命令就可以了,接收数据的函数为:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

需要注意的地方就是波特率需要匹配。

3.3 HC-05+USB——手机

3.3.1 环境

  1. 蓝牙模块还是不变,手机因为智能用安卓手机,所以找了公司的一个小米4c手机,还需要下载官方的一个APP,安装包在官网可以下载。
    在这里插入图片描述
    直接通过QQ发送到手机上,然后点开就自动安装了。
  2. 在软件界面搜索蓝牙模块,默认名字是HC-05,可以在命令模式下更改名字。需要注意的是,CMODE需要是1,第一次连接的实话同样需要匹配码。搜索到之后连接就可以了,连接上之后可以观察到模块上的灯变成每隔2s快速闪两次。因为我之前连接过了,所以没有输入匹配码的步骤。
    在这里插入图片描述
  3. 大功告成,接下来就可以正常发送数据了。
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HC-05蓝牙模块使用记录 的相关文章

  • Cadence新建仿真文件出现Cannot Initialize Profile错误的解决方法和步骤

    元器件和器件PSpice模型都准备好了 仿真原理图也画好了 但是在新建仿真配置文件的时候 提示Cannot Initialize Profile的错误 当时忘了截图了 问题解决了也没有出现这个错误 重启软件 重启电脑都没有再出现 因为之前都
  • BUCK电源芯片中自举电容的说明

    自举电容的说明 在BUCK电路中 经常会看到一个电容连接在芯片的SW和BOOST管脚之间 这个电容称之为自举电容 关于这个电容 在下面对该电容进行说明 图1 LT3840应用电路图 1 MOS工作原理 首先认识MOS的符号 确定是N型还是P
  • 调试L289N的小问题

    关于电机驱动芯片L289N的小问题 hai shi you yi dian cao dan de ne 导入 L298N输出的玄学问题 L298N接OR不接下拉电阻 送一片STM32F103ZET6 又是收获满满 cao dan 的一天 真
  • STM32芯片3.3V IO口驱动MOS管电路

    Nmos管做低端驱动 电路工作原理说明 对于Nmos管 G极电位比S极电位高于导通域值电压便会导通 对于Pmos管则相反 G极电位比S极电位低于导通域值电压才会导通 所以Nmos管适合做低端驱动 S极接地 以使S极的电压固定 Pmos管适合
  • 硬件设计检查事项

    1 原理图逻辑框图 2 原理图电气连接 3 原理图检查 4 PCB外框 5 PCB元件布局 6 PCB布线 7 PCB覆铜 8 DRC校验 9 BGA盘中孔同心 10 元件位号 标注 11 有源期间极性 标注 12 名称 版本 日期 人员
  • 全面认识二极管,一篇文章就够了

    电子设计基础元器件 二极管 小小二极管 大大用途 矜辰所致 目录 前言 一 二极管基础知识 1 1 什么是二极管 1 2 二极管的组成 1 3 二极管的原理 二 二极管特性 2 1 伏安特性曲线图 2 2 温度的影响 2 3 关于击穿 三
  • PCB布线线宽和过孔孔径设置为多少合适?

    作者 李大闯 2017 08 19 22 16 对于很多新入行的人来说 不清楚PCB的线宽应该设置为多少 这里作一下解释 对于PCB布线线宽的设置 主要要考虑两个问题 一是流过的电流大小 比如对于电源线来说 需要考虑电路工作时流过的电流 如
  • ADC外部RC电路电阻和电容选取计算方法

    ADC采样过程中遇到的问题 ADC是从模拟到数字世界的桥梁 当前ADC模块基本是MCU的标配 而且在转换速度和精度都有很好的表现 如NXP Kinetis KE15内部有2个16bit SAR型ADC模块 以精度制胜 可以配合EDMA完美实
  • BUCK/BOOST电路原理分析

    Buck变换器 也称降压式变换器 是一种输出电压小于输入电压的单管不隔离直流变换器 图中 Q为开关管 其驱动电压一般为PWM Pulse width modulaTIon脉宽调制 信号 信号周期为Ts 则信号频率为f 1 Ts 导通时间为T
  • 电子电路技术基础之频率响应

    电子电路技术基础之放大电路的频率响应 文章目录 电子电路技术基础之放大电路的频率响应 前言 一 频率响应概述 基本概念 二 波特图 总结 前言 郑老师模电课听课笔记 23 一 频率响应概述 基本概念 高通电路 传输特性 下限截止频率 最大值
  • 锁相环工作原理

    锁相环 Phase Locked Loop 相位 锁 环路 简称 PLL 基本构成 f1 是输入频率 f2是输出频率 并且反馈给鉴相器 压控振荡器 压控振荡器的全称是 Voltage Controlled Oscillator 电压 控制
  • 升压电路(BOOST)与降压电路(BUCK)

    一 电路中产生电流的条件是 1 电路里必须有电源供电 2 电路必须形成闭合回路 降压元器件 升降压电路构成的核心元器件 1 电感 储存能量 电感是无法突变的 工作状态是线性的 2 二极管 3 mos管 首先先分清楚mos是N mos还是P
  • 【转载】高速电路之信号完整性设计check list

    高速PCB设计有很多比较考究的点 包括常规的设计要求 信号完整性的要求 电源完整性的要求 EMC的要求 特殊设计要求等等 本文主要是针对高速电路信号总线做了一些比较常规的要求列举了一些检查要点 其实还可以进一步的细化 比如针对1 6mm板厚
  • UC3843驱动BOOST升压电路

    充能模块通过一个UC3843芯片控制BOOST升压电路实现 由于电磁炮的发射能量与电容上储存的能量存在正相关 电容上储存的能量由于电容的容值正相关 因此本系统需要选择较大的电解电容 在实际的过程中选择了2个470uF 450V的电容进行并联
  • MAX232无RS232电平信号输出、MAX232/3232硬件设计电路、电荷泵电容、max3221电路

    调试MAX3221芯片过程中 经测试 电路的单片机的uart可以正常收发数据 可无论单片机怎么发送数据 max3221都没有输出RS232电平的信号 看了论坛上的留言 正常的RS232电路中 芯片 V V 引脚电压应该为一倍多将近两倍的Vc
  • AD每次更新PCB元器件位置会变动

    用AD画板 在重新更新元器件标识注视后 更新PCB后会出现某些器件移到了外面 把它摆放好以后 如果又对原理图中进行了改动 在更新PCB之后 刚才摆放好的元器件就又移到外面 另外 其它一些情况也会出现更新PCB位置变动的情况 下面是解决办法
  • 右腿驱动电路

    转自 http www 360doc com content 18 0312 15 1751130 736374982 shtml 1 使用目的 人和外界环境 尤其是电力线会形成容性耦合 这个耦合到的能量通过人体流入大地 而人体是带电阻的
  • 电感选型计算

    转载 https www richtek com Design 20Support Technical 20Document AN053 电感之种类与其特性分析 摘要 电感器是开关转换器中非常重要的元器件 如用于储能及功率滤波器 电感器的种
  • 霍尔传感器测电机的转速

    霍尔传感器可以用于测量电机的转速 测量原理是通过检测电机旋转时产生的磁场变化来计算转速 具体的测量方法如下 1 在电机旋转的轴上安装一个磁铁 磁铁的北极和南极在轴上相隔一定距离 2 在电机旋转轴的一侧安装一个霍尔传感器 传感器的感应面与磁铁
  • SATA M.2 NGFF PCIE AHCI NVME SSD固态硬盘的接口、总线和协议区分

    总线 协议 说接口之前先说总线 民用产品的硬盘总线多为 SATA 和 PCIe SATA 总线只能使用 AHCI 协议 NVME 对比 AHCI 的优势在于 低延时 低功耗 更适合固态硬盘 PCIe总线 可以使用 AHCI 也可以使用更高效

随机推荐

  • 配置nginx服务器需要修改的配置文件为,01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置...

    1 下载Nginx 进入Nginx下载地址 http nginx org 2 下载pcre 这个是一个正则表达式的库 Nginx做rewriter的时候回用到这个库 进入pcre的官网 rewrite模式需要pcre http www pc
  • C语言的算法渐进分析

    C语言的基本结构 C语言由头文件组成 在C语言的源代码中有多个源文件 每一个源文件中包含了主函数 库函数以及自动以函数 源程序中可以有多个源文件 但是在运行的过程中只能有一个主函数 并且只能从主函数开始执行 C语言的格式为一行一句 在源程序
  • Android冷启动优化解析,flutter瀑布流列表

    TotalTime 242 WaitTime 288 Complete ThisTime 是指调用过程中最后一个Activity启动时间到这个Activity的 startActivityAndWait调用结束 TotalTime 是指调用
  • 云计算背后的秘密:NoSQL诞生的原因和优缺点

    聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起 诞生的原因 随着互联网的不断发展 各种类型的应用层出不穷 所以导致在这个云计算的时代 对技术提出了更多的需求 主要体现在下面这四个方面 1 低延迟的读写速度 应用快速地反应能
  • TiDB介绍

    目录 TiDB 简介 一 四大核心应用场景 二 TiDB 整体架构 三 TiDB 数据库的存储 Key Value Pairs 键值对 本地存储 RocksDB Raft 协议 Region MVCC 分布式 ACID 事务 参考 TiDB
  • 002-数据结构之算法的时间复杂度和空间复杂度

    一 概述 对于同一个问题来说 可以有多种解决问题的算法 尽管算法不是唯一的 但是对于问题本身来说相对好的算法还是存在的 这里可能有人会问区分好坏的标准是什么 这个要从 时效 和 存储 两方面来看 好的算法应该具备时效高和存储低的特点 这里的
  • 美团二面:如果每天有百亿流量,你如何保证数据一致性?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 前情提示 什么是数据一致性 一个数据计算链路的梳理 数据计算链路的bug 电商库存数据的不一致问题 大型系统的数据不一致排查有多困难 一 前情提示 这篇文章 咱
  • 顺序查找算法C语言实现

    顺序查找算法 实现思想 静态查找表用顺序存储结构表示时 顺序查找的查找过程为 从表中的最后一个数据元素开始 逐个同记录的关键字做比较 如果匹配成功 则查找成功 反之 如果直到表中第一个关键字查找完也没有成功匹配 则查找失败 应用场景 顺序查
  • SpringBoot-基础-10-自动配置类常用注解

    SpringBoot 基础 10 自动配置类常用注解 一 自动配置类 XXXAutoConfiguration XxxxAutoConfiguration类的含义是 自动配置类 目的是给容器中添加组件 从上示例中 我们可以了解到自动配置类常
  • HTML标题

    目录 HTML 标题 实例 标题很重要 HTML 水平线 实例 HTML 注释以及在PyCharm中快速添加注释 实例 HTML 提示 如何查看源代码 来自本页的实例 HTML 标签参考手册 一个完整的实例 在 HTML 文档中 标题很重要
  • 筛选法与试除法 判断素数

    素数的求解方法 第一种 试除法 第二种 筛选法 试除法 顾名思义 求一个数X是不是素数 就试用小于x大于1区间的自然数 只要有一个能整除 那么x就不是素数 否则就是 以输出100 200之间的素数为例 include
  • 深入理解SD卡基础原理以及内部结构的总结 (转)

    1 简介 SD卡 Secure Digital Memory Card 是一种为满足安全性 容量 性能和使用环境等各方面的需求而设计的一种新型存储器件 SD卡允许在两种模式下工作 即SD模式和SPI模式 本 系统采用SPI模式 本小节仅简要
  • buuctf - web - [极客大挑战 2019]Havefun

    入眼一看 是一只小猫 二话不说 直接F12 根据提示 修改 当前页面 URL 尝试传入参数 直接得flag
  • LWIP-TCP心跳机制

    LWIP TCP心跳机制 简介 在长连接下 可能很长一段时间都没有数据往来 理论上说 这个连接是一直保持连接的 但是实际情况中 如果中间节点出现什么故障是难以知道的 更致命的是 有的节点 防火墙 会自动把一定时间之内没有数据交互的连接给断掉
  • 什么是对网站的base64攻击?

    根据网络安全公司Imperva的一份报告 可以通过Base64编码进行的SQL注入攻击 是最常见的网络应用程序攻击类型之一 占所有攻击的20 这表明 Base64攻击是对网站和网络应用程序的一个重大威胁 Base64是一种常见的编码技术 用
  • 磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted

    1 下面使用parted工具进行分区的创建 parted dev sdb print 查看分区的使用情况 mklabel gpt 将MBR分区形式转换为GPT分区形式 mkpart promary ext4 划分一个采用ext4文件系统的主
  • SQL SUM() 函数

    SUM 函数返回数值列的总数 SQL SUM 语法 SELECT SUM column name FROM table name WHERE condition column name 是要计算总和的列名 table name 是包含要计算
  • 【学习笔记】感知机模型

    感知机 Perceptron 概述 1957年被提出 是一种有单层计算单元的神经网络模型 在结构上与M P模型相似 提出初衷是解决数据的分类问题 感知机是神经网络和支持向量机的基础 感知机原理 感知机本身是一种能进行二分类的线性模型 只要被
  • mysql为什么使用b+树

    MySQL 使用 B 树有以下几个原因 查询效率高 B 树的查询时间复杂度是 log n 级别的 相比链表和二叉树的 O n 性能要高得多 支持范围查询 B 树能够支持范围查询 这在 MySQL 中经常用于 WHERE 子句中的 BETWE
  • HC-05蓝牙模块使用记录

    前言 后面可能需要用到蓝牙远程控制 所以提前了解了一下 主要是用买来的蓝牙模块HC 05 主要包括一个蓝牙芯片CSR BC417 该公司是剑桥的一个公司 现已被高通收购 和一个FLASH芯片 调试一下两个HC 05之间基本的通讯以及与手机蓝