hc-05 模块教程2 (两个hc-05连接)

article/2025/7/7 0:48:16

  http://www.arduino.cn/thread-21735-1-1.html


最近在做项目需要建立两个hc-05通讯,但网上教程有限和有很多都不是很清楚所以整合了下资料重新做了一份个人认为比较详细的教程和大家一起分享学习。

这个教程说明怎么样用hc-05查找附近的hc-05模块并与它建立通讯。
原文:http://www.tmirun.com/arduino-hc-05-模块教程2连接

AT密令 参考: AT指令参考手册 和 http://ruten-proteus.blogspot.co ... al-02-hc-05-02.html
下面列出一些将在教程内用到的AT命令 (为了省时间 表格都是抄过来的 所以是繁体字)
AT+UART
指 令 回 應 參 數
AT+UART=[PARAM1], [PARAM2], [PARAM3] OK
PARAM1:鮑率(baud rate(bit/s)可設定之數值如下:4800,9600,19200,38400,57600,115200,23400,460800,921600,1382400
PARAM2:停止位元(stop-bit)0 – 1 bit1 – 2 bits
PARAM3:同位元檢查(parity bit)0 – None1 – Odd parity2 – Even parity預設值:9600,0,0

AT+IAC
指 令 回 應 參 數
AT+IAC=[PARAM] 成功 OK PARAM:查詢訪問碼預設值是 9E8B33
失敗 FAIL
AT+IAC? +IAC:[PARAM] OK

AT+CLASS
指 令 回 應 參 數
AT+CLASS=[PARAM] OK PARAM:藍牙裝置類別。預設值是 0
AT+CLASS? 成功 +CLASS:[PARAM] OK
失敗 FAIL

AT+INQM
指 令 回 應 參 數
AT+INQM=[PARAM1], [PARAM2], [PARAM3] 成功 OK
PARAM1:查詢存取碼0 – 標準查詢模式1 – RSSI 查詢模式
PARAM2:最大回應數目
PARAM3:逾時查詢時間逾時範圍:1-48(對應時間為:1.28s – 61.44s)預設值:1,1,48

AT+RNAME
指 令 回 應 參 數
AT+RNAME?_[PARAM1]: 底線是代表空格 +NAME:[PARAM2] OK PARAM1:遠端藍牙裝置的位址
PARAM2:遠端藍牙裝置的名稱

AT+LINK
指 令 回 應 參 數
AT+LINK=[PARAM] 成功 OK
PARAM:遠端藍牙裝置位址xxxx,xx,xxxxxx
PARAM2:藍牙裝置類型 ( CoD ) PARAM3:RSSI 訊號強

AT+CMODE
指 令 回 應 參 數
AT+CMODE=[PARAM] 成功 OK
PARAM:
0——指定蓝牙地址连接模式 (指定蓝牙地址由绑定指令设置)
1——任意蓝牙地址连接模式 (不受绑定指令设置地址的约束)
2——回环角色(Slave-Loop)
如果你想了解关于CLASS 和 IAC 可以参考 baseband 蓝牙基频


连接2个hc-05模块
基于上个教程 Arduino hc-05 模块教程1(进入AT模式),我们需要两组 hc-05模块

!hc-05 有 EN 脚模块的同学需要在这里焊接一条KEY脚(上个教程里面有说明怎么做), 因为后面我们需要
这里我们有2和hc-05模块分别是:

BMaster 主 BSlave 从
AT+NAME=BMaster AT+NAME=BMaster
AT+PSWD=1111 AT+PSWD=1111
AT+ROLE=1 AT+ROLE=0
地址: 98d3:31:405221 地址: 2016:3:222418

注意! 两个PSWD (密码) 要一致
第一步先设置我们的模块, 用上个教程的代码来进入AT模式设置, 还不会的同学请参考 Arduino hc-05 模块教程1(进入AT模式)
#include <SoftwareSerial.h>
 
//初始一个软件串口 serial2(Txd, Rxd)
SoftwareSerial serial2(6,7);
 
void setup() {
  //连接电脑串口
  Serial.begin(9600);
  //连接hc-05串口,AT模式默认串口速度是38400:
  serial2.begin(38400);
  Serial.println("init serial port AT");
}
 
void loop() {
  //把电脑输入串口的字符 写入到 hc-05 的串口中
  if(Serial.available())
    serial2.write(Serial.read());
  //把hc-05的串口输出的字符 输出到电脑串口中
  if(serial2.available())
    Serial.write(serial2.read());
}

设置hc-05从模块: BSlave:
  • AT+NAME=BSlave
  • AT+PSWD=1111
  • AT+ROLE =0
  • 用 AT+ADDR? 来查询模块地址: +ADDR:2016:3:222418

设置hc-05主模块: BMaster:
  • AT+NAME=BMaster
  • AT+PSWD=1111
  • AT+ROLE =1
  • 用 AT+ADDR? 来查询模块地址:  +ADDR:98d3:31:405221
开始初始连接
初始完基本设置之后下面我们开始设置BSlave和BMaster连接

BSlave
设置串口波特率9600: AT+UART:9600,0,0
绑定BMaster的地址: AT+BIND=98d3,31,405221
!注意当地址是参数是间隔用的是 “,” 而不是 “:”
重启模块,为了退出AT模式 (重新连接模块电源即可)

BMaster
设置串口波特率9600: AT+UART:9600,0,0
设置查询模式:AT+INQM=1,5,10
开始查询:AT+INQ
如果出现ERROR(16)或(17)用 AT+INIT, 来启动spp,再次输入 AT+INQ。 那些有EN脚的同学小心了,我在用这个命令的时候会重启模块,因为没有key脚所以重启后加入不了AT模式,正因为这样所以建议大家把 Master 模块焊接条key脚出来,前一个教程有说明。Arduino hc-05 模块教程1(进入AT模式)。

查询结果可以看见已经找到了我们的 从模块,如果没找到看看 ‘从’ 模块是否接好 和 是否退出AT模式

试探连接:AT+ PAIR=2016,3,222418,9如果9秒内返回ok那就说明可以连接.
介绍: AT+PAIR=<地址>, <连接超时>
下面我们就可以连接到BSlave:AT+LINK=2016,3,222418

最后我们需要这个BMaster模块下次开启时自动连接到BSlave模块: AT+CMODE=1
在这里我们要重启模块进入AT模式。因为用AT+LINK的时候会退出AT模式。
  • CMODE: 0——指定蓝牙地址连接模式 (指定蓝牙地址由绑定指令设置)
  • CMODE: 1——任意蓝牙地址连接模式 (不受绑定指令设置地址的约束)
  • CMODE: 2——回环角色(Slave-Loop)

这里我们得连接配置完成了!!!!
现在我们重启两个模块就可以看见他们会自动连接 (hc-05灯: 每两秒闪烁一下)

传输信息
刚刚我们已经连接成功了,为了信息传输成功需要把hc-05串口波特率换成9600,为了保持全部串口一致。


#include <SoftwareSerial.h>
SoftwareSerial serial2(6,7);
void setup() {
  Serial.begin(9600);
  //把hc05模块的串口波特率从38400改成9600
  serial2.begin(9600);
  Serial.println("init serial port AT");
}
 
void loop() {
  if(Serial.available())
    serial2.write(Serial.read());
  if(serial2.available())
    Serial.write(serial2.read());
}

加载把代码到两个arduino上面。
打开两边的串口窗口, 在上面输入文字就会自动通过Bluetooth传输到另个Arduino。


参考
HC-05连接: http://ruten-proteus.blogspot.co ... al-02-hc-05-02.html
AT指令参考手册:https://www.taiwaniot.com.tw/wp- ... 01/ADIO-HC-05-1.pdf
HC-05 和 HC-06连接:http://www.martyncurrey.com/conn ... pair-bind-and-link/


http://chatgpt.dhexx.cn/article/gL0rT2W4.shtml

相关文章

面向对象在python中的实践---如何定义类、对象?

一、如何定义一个类 1.1基本语法 class Money:pass 类可以分为经典类和新式类 注意点&#xff1a; 类名Money中的首字母必须要大写 二、怎样通过类&#xff0c;创建一个对象 2.1根据类创建一个对象 #定义一个类 class Money:pass #根据这个类来实例化出一个对象 oneMon…

python的安装教程

Python 是这两年来比较流行的一门编程语言&#xff0c;主要的特点是其相对简单的语法以及丰富的第三方库。下面是python的下载安装过程。 1.python的官方下载网站&#xff1a; Welcome to Python.orghttps://www.python.org/ 选择自己适合的版本进行下载 * 我们以最新的3X为例…

java和python应该学哪一个,纠结?

小孩子才做选择&#xff0c;必须两个都学&#xff01; 不用纠结&#xff0c;又不是说学校让你选一个学&#xff0c;你就真的只学一个了&#xff01;&#xff08;别被课本知识限制了&#xff09; 从一名开发工程师的角度&#xff0c;我的建议是&#xff0c;将 Java 作为主武器&…

Python循环语句

Python 循环语句 本章节将向大家介绍Python的循环语句&#xff0c;程序在一般情况下是按顺序执行的。 编程语言提供了各种控制结构&#xff0c;允许更复杂的执行路径。 循环语句允许我们执行一个语句或语句组多次&#xff0c;下面是在大多数编程语言中的循环语句的一般形式&…

python 安装教程(附安装包)

有没有小伙伴想安装python,可发现官网的英文看不懂&#xff0c;而且加载很慢,想找找现成的安装包却五花八门&#xff0c;不知道下什么好了。 现在我教你怎么安装python&#xff0c;下载点我下64位(密码:61rn),如果下载32位点我(密码:dguv) 下好后点击这个文件 这个是你刚刚下…

尝试用python解概率题,并祝大小朋友儿童节快乐

实题操作 1. 三个人独立地去破译一份密码&#xff0c;每人能独立译出这份密码的概率分别为1/5&#xff0c; 1/3&#xff0c; 1/4。则这份密码被译出的概率为&#xff08;3/5&#xff09;。 def success():p 1/5,1/3,1/4t 1for i in p:t * 1-ireturn 1-tprint(f成功概率&…

华为OD机试用Python实现 -【组合出合法最小数】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题解:…

华为OD机试用Python实现 -【字母组合】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 字母组合 | 华为…

提取文本关键词?很 easy 啊,用 Python 三行搞定

从大量文本中提取有用的关键信息是数据分析的一个重要环节。 Python 作为一门广泛应用于数据分析领域的编程语言,有着强大的文本处理库。 整理了几个用于文本关键词提取的优秀工具,一起学习下。 1、jieba库 jieba 是一个中文分词库,可以将一段文本分割为单独的单词。可以…

linux建立phyon文件,PyInstaller 来建立Linux下的Python独立执行文件

以下内容假定已安装好Python 2.4/2.5 一、下载并编译pyinstaller(只需做一次&#xff0c;以后可直接做第二步) 1.下载pyinstaller,现在的版本是1.3 (1)wget http://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz 2.解包进入源码目录 (1)tar zxv pyinstaller_1.3…

phyon数据结构

phyon常用的数据结构有&#xff1a;序列和元组 另外不常用的有 &#xff1a;字符串、Unicode字符串、buffer对象、xrange对象 1、索引&#xff1a;跟c中的下标是一个意思 2、分片&#xff1a;就是索引的范围&#xff1a; >> >num[5] [1, 2, 3, 4, 5] >>>…

phyon快速入门(hello phyon)

创建一个phyon项目 点击新建项目 新建phyon文件 新建hellophyon print(hello phyon)在文本中编辑print(hello phyon) 右键run 控制台打印出hello pyhon 第二次运行可直接点击右上角工具栏

学习java好还是phyon好_phyon学习第一天

一直想用phyon写个网络爬虫&#xff0c;太懒了&#xff0c;一直到现在才开始学习 phyon的强大就不用说了&#xff0c;第一天学习&#xff0c;好好加油 今天主要学下一下它的语法&#xff1a; 1、用过简单的计算器使用 程序的计算包括&#xff1a; - * / % **(幂运算符) >…

phyon快速入门(phyon基础知识)

1、创建变量 a10 b2 cab print(c)2、判断语句 # codingutf-8a 90if a > 80:print("nice") elif a > 60:print("normal") else:print("bad")***# codingutf-8***用于指定中文的编码格式 3、循环 # codingutf-8for i in range(1, 100):p…

【MQTT】使用MQTT上报温度阿里云

MQTT上报温度到阿里云 前言iniparser配置文件cJSONsqlite3数据库流程图配置信息发布端代码实现运行结果 前言 在上几篇文章中我们用MQTT.fx模拟客户端实现了与阿里云物联网平台的双向通信&#xff0c;接下来我们自己动手编程使用mosquitto库实现一个发布端。 iniparser配置文件…

实现跨越多个云的无缝云数据管理

By Jeffrey - 资深IT经理人&#xff0c;IT运营和安全顾问&#xff0c;历任多家知名跨国企业包括麦肯锡大中华区、通用电气公司、壳牌石油、英美烟草等公司IT总经理 云已经不是一个新鲜话题&#xff0c;越来越多企业甚至个人已经将数据搬到了云上&#xff0c;享受云带来的便捷&a…

腾讯云运维工程师认证TCA--真题(最新2022.11)

腾讯云运维工程师认证TCA题库&#xff0c;覆盖95%题目。 1、TSF控制台的配置中心&#xff0c;目前支持以下哪一种格式的配置文件? JSON格式XML格式YAML格式Properties配置格式 正确答案&#xff1a;C 解答&#xff1a;无 2、传统应用开发采用瀑布开发模型&#xff0c;瀑布开…

基于OpenPCDet框架的基线模型下载及性能评估

基于OpenPCDet框架的基线模型下载及性能评估 W.P. Xiao, Vision group&#xff0c;SHUSV 版本更新时间更新内容作者1V 1.02021.12更新基线模型W.P. Xiao, Y.Q. Wu2 目录 文章目录 基于OpenPCDet框架的基线模型下载及性能评估基线模型权重下载基线模型性能PointPillarSECONDSECO…

GPT2中文模型本地搭建(二)

GPT2中文模型本地搭建&#xff08;二&#xff09; 1、简单介绍1.1 bert4keras是什么&#xff0c;与Keras有什么关系&#xff1f;1.2 常用的预训练模型加载框架有几种&#xff1f;1.3 预训练模型常见版本 2、GPT2-ML 开源中文模型本地搭建2.1 开发环境准备2.2 下载代码2.3 下载模…

阿里云ECS服务器部署

阿里云ECS体验JavaWeb 基础步骤其他操作 第一章 基础步骤 第01节 登录阿里云服务器 在购买ECS服务器后&#xff0c;系统会创建一个ECS实例。每一个ECS实例对应一台已购买的云服务器。 您可以通过电脑上自带的终端工具访问云服务器&#xff0c;进行应用部署和环境搭建。 1. …