【Arduino】蓝牙模块HC-05

news/2024/11/17 2:47:02/

文章目录

  • 1 蓝牙模块HC-05
    • 1.1 简介
    • 1.2 管脚
  • 2 Arduino与HC-05连接
  • 3 蓝牙功能测试
    • 3.1 代码
    • 3.2 蓝牙配置
    • 3.3 蓝牙与手机连接
  • 4 两个蓝牙模块相互连接

1 蓝牙模块HC-05

1.1 简介

HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。
蓝牙模块实物图

1.2 管脚

HC-05蓝牙模块有六个管脚,分别为:STATE、RXD、TXD、GND、VCC、EN。

  • STATE:状态指示。未连接时输出低电平,连接时输出高电平。
  • RXD:UART接收引脚(和MCU的TXD相连)。电平是3.3V,接5V的TXD需电压转换
  • TXD:UART发射引脚(和MCU的RXD相连)。
  • GND:接地。
  • VCC:接电源,可以用+5V。
  • EN:使能。接地禁用模块,悬空或接3.3V使能。

2 Arduino与HC-05连接

LED非必要。
RXD——D11,图中有电压转换。
TXD——D10。
Arduino与HC-05连接

3 蓝牙功能测试

3.1 代码

蓝牙接收和发送功能测试。

#include <SoftwareSerial.h>
// 设置Arduino软件串口,10-RX,11-TX
const int BT_RX = 10;
const int BT_TX = 11;
// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(BT_RX, BT_TX );
char val;
void setup() {Serial.begin(38400); //初始化Arduino串口,波特率自定,这里选38400Serial.println("BT is ready!"); //测试与PC之间串口是否正常,正常则显示上述文字,异常则显示乱码BT.begin(38400); // HC-05的AT模式默认通信波特率为38400
}
void loop() {if (Serial.available()) {val = Serial.read();BT.print(val); //将PC发来的数据存在val内,并发送给HC-05模块}if (BT.available()) {val = BT.read();Serial.print(val); //将HC-05模块发来的数据存在val内,并发送给PC}
}

3.2 蓝牙配置

  1. 上传代码。
  2. Arduino断电,按住HC-05模块上的按钮,将Arduino与PC连接,发现HC-05模块指示灯2秒周期慢闪,即进入AT模式。
  3. 打开PC串口调试助手,显示“BT is ready!”。
  4. 发送AT指令配置蓝牙模块。修改蓝牙名称、配对密码,从模式,任意地址连接。

常用AT指令有:

  • AT+NAME:查询修改蓝牙名称。
    • AT+NAME或AT+NAME?,返回蓝牙名称。
    • AT+NAME=XXX,修改蓝牙名称为XXX。
  • AT+ROLE:查询修改主从模式。
    • AT+ROLE或AT+ROLE?,返回当前主从模式,1表示主机,0表示从机。
    • AT+ROLE=X,修改主从模式,X为1或0,对应主机和从机。
  • AT+CMODE:查询修改连接模式。
    • AT+CMODE或AT+CMODE?,返回连接模式,1表示任意蓝牙地址连接模式,0表示指定蓝牙地址连接模式,需要地址绑定
    • AT+COMDE=X。
  • AT+PSWD:查询修改配对密码。
    • AT+PSWD或AT+PSWD?,返回密码,默认是1234。
    • AT+PSWD=XXXX,XXXX为新密码。
  • AT+ADDR:查询蓝牙模块地址。
    • 返回蓝牙模块地址,如98d3:91:fd3d35。
  • AT+BIND:查询修改绑定连接地址。
    • AT+BIND或AT+BIND?,返回绑定连接地址。
    • AT+BIND=XX,XX,XX,修改绑定地址,在CMODE=0时可用,注意冒号改为逗号。
  • AT+UART:查询修改串口波特率。
  • AT+ORGL:复位蓝牙模块。
  • AT+RMAAD:清空配对列表。

3.3 蓝牙与手机连接

  1. 手机打开蓝牙调试助手。
  2. 设置好蓝牙模块后,断电重新上电,HC-05进入正常模式(指示灯快速连闪),打开PC上的串口助手。
  3. 手机找到蓝牙后进行连接,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。
  4. 此时手机发送数据可在PC串口助手显示,PC串口发送数据可在手机显示。

4 两个蓝牙模块相互连接

配置蓝牙A为主机,指定地址连接;蓝牙B为从机。

  1. 蓝牙A、B进入AT模式。
  2. 设置B配对码,AT+PSWD=“0000”。
  3. 设置B从模式,AT+ROLE=0。
  4. 查询B地址,AT+ADDR,得到B地址XX:XX:XX。
  5. 设置A配对码,AT+PSWD=“0000”。(一定要一样)
  6. 设置A主模式,AT+ROLE=1。
  7. 设置A指定地址连接,AT+CMODE=0。
  8. A绑定B,AT+BIND=XX,XX,XX。
  9. 重新上电,连接成功后HC-05上的指示灯将进入2s周期的快速双闪。

http://www.ppmy.cn/news/807220.html

相关文章

linux中安装Nginx的具体步骤

1.首先介绍一下Ngnix nginx是一款使用c语言编写的高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上Nginx的并发能力确实在同类型的网页服务器中表现得最好&#xff0c;中国大陆使用Nginx网站用户有&#xff1a;百度、京东、…

嵌入式开发之bootloader

bootloader开发在嵌入式开发中是一个不可或缺的存在&#xff0c;就像bios /pc &#xff0c;uboot/linux ,虽然现在的软件组件都是很成熟发达了。但是要深入嵌入式的本质还是需要从裸机开始&#xff0c;知道cpu是怎么启动&#xff0c;怎么中断跳转&#xff0c;怎么实现内核加载的…

香港第一金:美债上升美元走强 黄金暴跌下破199

做投资最怕的莫过于心急&#xff0c;最坏的莫过于冲动。当把分析变成一种任务、把投资变成一种负担&#xff0c;就已经偏离了路线。做投资一定要首先树立正确的投资理念&#xff0c;这是一切的根源&#xff0c;其次做好仓位资金管理&#xff0c;重要的保持良好的心态&#xff0…

179. 最大数

给定一组非负整数&#xff0c;重新排列它们的顺序使之组成一个最大的整数。 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大&#xff0c;所以你需要返回一个字符串而不是整数。

美元和人民币

题目描述 随着国际形势的变化&#xff0c;美元与人民币的兑换率也经常在变化。假设美元与人民币的汇率是1美元兑换6.5573元人民币&#xff0c;编写程序输入美元金额&#xff0c;输出能兑换的人民币金额。 输入要求 输入美元金额&#xff08;浮点类型&#xff09;。输出要求 …

Leetcode179

Leetcode179 题目思路新知识循环方式快排函数字符串操作 不足之处自己的代码官方代码 题目 链接: 179. 题目描述&#xff1a;给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组成一个最大的整数。 注意&#xff1a;输出结…

这29家谷歌SEO公司超赚钱,涉及800亿美元

随着搜索引擎优化的实践早于谷歌&#xff0c;在线最大的市场之一还有机会吗&#xff1f; 这是我在业内一些最成功的公司的细分中要回答的问题。您可能会认识到以下列表中有一些名称。还有一些值得注意的例外&#xff0c;这不是一个错误。 你可以很好地了解DeepCrawl&#xff…

【LeetCode】179. 最大数

文章目录 题目[179. 最大数](https://leetcode-cn.com/problems/largest-number/)解题思路注意&#xff1a;步骤&#xff1a; 代码 题目179. 最大数 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组成一个最大的整数。 …