HC05 蓝牙模块 连接 ESP32 经典蓝牙

概述

HC05是一款常用的经典蓝牙模块,某宝有大量销售,主从机一体,而ESP32的蓝牙兼容经典蓝牙和低功耗蓝牙,本文介绍如何使用HC05作为主机连接ESP32的经典蓝牙

ESP32从机配置

使用ESP32作为蓝牙串口功能,与HC05建立连接,进行数据交互,代码使用稍加修改的蓝牙串口例程

#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;
char *pin = "1234"; //建立连接时的密码,不设置与hc05连接不上

void setup() {
  Serial.begin(115200);     
  SerialBT.setPin(pin);    
  SerialBT.begin("ESP32test"); //Bluetooth device name
  Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
  if (Serial.available()) {
    SerialBT.write(Serial.read());
  }
  if (SerialBT.available()) {
    Serial.write(SerialBT.read());
  }
  delay(20);
}

HC05蓝牙主机配置

本文使用arduino方式进行hc05蓝牙模块AT模式的配置,代码来源

#include <SoftwareSerial.h> 

// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11); 
char val;

void setup() {
  Serial.begin(38400); 
  Serial.println("BT is ready!");
  // HC-05默认,38400
  BT.begin(38400);
}

void loop() {
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

烧录完成,接线后,断电,在上电之前将HC05 key引脚置高,有的模块具有key的按键,长按上电即可进入AT模式,笔者建议使用杜邦线将其置高,配置完成后再取下。上电后,如果蓝牙模块指示灯按2秒的频率闪烁,表明蓝牙模块已经正确进入 AT 模式。
打开 Arduino IDE 的串口监视器,选择正确的端口,将输出格式设置为 Both: NL & CR ,波特率设置为 38400 ,可以看到串口监视器中显示 BT is ready! 的信息。如下:
在这里插入图片描述
然后,输入 AT ,如果一切正常,串口显示器会显示 OK。
按以下方式进行AT指令设定

1 AT+ORGL # 恢复出厂模式
2 AT+NAME = hc05 # 设置蓝牙名称
3 AT+ROLE=1 # 设置蓝牙为主模式
4 AT+PSWD=1234 # 与ESP32密码一致
5 AT+INIT #初始化SPP规范库便于查询周边信号
4 AT + BIND = <ESP32地址> #绑定ESP32蓝牙地址
5 AT + PAIR = <ESP32地址> #与ESP32配对
6 AT + LINK = <ESP32地址> #与ESP32连接
7 AT+CMODE=0 # 设置蓝牙只与绑定地址连接

下电,移除key的杜邦线,即可完成HC05与ESP32的连接。

原创文章 5 获赞 2 访问量 261

猜你喜欢

转载自blog.csdn.net/qq_43064082/article/details/106041797