ESP32 和 Arduino 之间建立蓝牙连接

ESP32 和 Arduino Uno 可以通过蓝牙进行通信。为此,您必须使用与 Arduino 兼容的蓝牙模块。我们将使用 HC-05(06) 蓝牙模块。

连接Arduino Uno和HC-05蓝牙模块

将 HC-05 蓝牙模块连接到 Arduino 板。将模块的VCC、GND、RX、TX引脚连接到Arduino的相应引脚,如下所示:

使用 Arduino IDE 进行蓝牙通信的 ESP32 代码

#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
uint8_t address_hc06[6] = {0x98, 0xDA, 0x60, 0x01, 0xF0, 0x57}; // HC-06的地址
String name_hc06 = "HC-06";  // HC-06的名字

bool connected;
void setup() {
  Serial.begin(115200);  // 用物理串行接口来输出字符串看是否连接成功
  SerialBT.begin("ESP32_bluetooth", true);   // 蓝牙名字任意
  Serial.println("ESP32 started in master mode!");//ESP32开始进入主模式
  connected = SerialBT.connect(address_hc06); // 通过地址匹配HC-06
  //connected = SerialBT.connect(name_hc06);  // 也可以通过名称匹配HC-06

  if(connected) {
    Serial.println("Connected!");
  } else {
    while(!SerialBT.connected(10000)) {         // 10秒的timeout时间
      Serial.println("Failed to connect.");
    }
  }
}
void loop() {
  if (Serial.available()) {
    SerialBT.write(Serial.read());//可以替换成自己的代码。
  }
  if (SerialBT.available()) {
    Serial.write(SerialBT.read());//可以替换成自己的代码。
  }
  delay(20);
}

用于蓝牙通信的 Arduino Uno 代码

#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(2,3); // RX、TX 使用软串口与以上的图片连接方式不同。
void setup() { 
  Serial.begin(9600); 
  BTSerial.begin(38400); 

void Loop() { 
  if (BTSerial.available()) { 
    Serial.write(BTSerial.read()); } 
  } 
  if (Serial.available()) { 
    BTSerial.write(Serial.read()); 
  } 
}

注意:使用以前检查hc-06是否与别的模块配对,模块上的指示灯常亮表示已经配对,如果是这样必须首先取消与其他设备的配对,否则也无法成功。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值