HC-05蓝牙模块是任何Arduino项目必不可少的蓝牙模块!很容易进行连接以及在Arduino IDE中编写代码。在大多数项目中,我们通常将HC05连接至Arduino,并使用它与其他智能设备(如手机)进行无线通信。这非常简单,我们已经用它建立了许多有趣的项目,例如蓝牙控制机器人、蓝牙语音控制、蓝牙家庭自动化等。但是,您是否需要将两个HC-05连接在一起?将HC05相互连接并非易事,其中涉及一些其他步骤。本文将指导您完成此过程。

Arduino-to-Arduino-Communication.jpg (75.18 KB, 下载次数: 1)

2020-5-23 07:19 上传

所需的组件

●    2个Arduino开发板

●    2个HC05蓝牙模块

●    面包板

●    跳线

●    2个1kΩ电阻

●    2个2.2kΩ电阻

电路原理图

以下是基本电路图。将其中的两个电路连接起来,一个用于主机电路,一个用于从机电路。对于连接,我们在这里所做的就是将HC05连接到Arduino。 HC05的接收器(Rx)引脚在0V至3.3V范围内运行,而Arduino在0V至5V范围内运行。因此,我们将使用电阻器(R1和R2)创建一个分压器,以将Arduino的5V输出降低至3.3V,以免损坏HC05模块。

Arduino-HC05-Circuit-Diagram.png (41.45 KB, 下载次数: 3)

2020-5-23 07:21 上传

我为R1使用1kΩ,为R2使用2.2KΩ,但您可以使用任何电阻值,只要R2大约是R1的两倍(R2≈2R1)即可。如下所示为Arduino主机蓝牙电路和Arduino从机蓝牙电路。

Arduino-Master-and-Slave-Bluetooth-Circuit-Diagram.png (47.58 KB, 下载次数: 2)

2020-5-23 07:21 上传

Arduino-to-Arduino-Bluetooth-Communication.jpg (81.57 KB, 下载次数: 1)

2020-5-23 07:21 上传

HC05模块的初始配置

这是将两个HC05模块连接在一起所需的额外步骤。我们需要更改HC05蓝牙模块内部的某些设置,为此,我们必须进入HC05模块的AT命令模式,并通过Arduino IDE的串口监视器向其发送命令。为此,我们需要编写一个Arduino代码,以通过串口监视器将命令发送到HC05。

首先将SoftwareSerial库添加到此代码。

#include 复制代码

定义发送(Tx)和接收(Rx)引脚号。我将引脚2用于Tx,将引脚3用于Rx。

#define tx 2

#define rx 3复制代码

给蓝牙连接起个名字(这里我使用configBt),然后告诉SoftwareSerial库哪个引脚是Tx,哪个引脚是Rx。语法为bluetoothName(Rx,Tx);

SoftwareSerial configBt(rx, tx); // RX, TX复制代码

为了配置蓝牙模块,Arduino需要以波特率38400向其发送命令。同样,我们将蓝牙连接的波特率也设置为38400。将发送(Tx)设置为输出引脚,将接收(Rx)设置为输入引脚

void setup()

{

Serial.begin(38400);

configBt.begin(38400);

pinMode(tx, OUTPUT);

pinMode(rx, INPUT);

}复制代码

在loop函数中,我们实现代码的主要部分。这里的想法是通过Arduino的Tx引脚将串口监视器中文本框中键入的内容发送到HC05。然后在串口监视器中显示HC05的输出。

void loop()

{

if(configBt.available()) // if the HC05 is sending something…

{

Serial.print(configBt.readString()); // print in serial monitor

}

if(Serial.available()) // if serial monitor is outputting something…

{

configBt.write(Serial.read()); // write to Arduino’s Tx pin

}

}复制代码

首先将此代码上传到连接到主机HC05模块的Arduino。上传代码后,拔出Arduino电源线。按住HC05上的按钮。现在,在仍按住HC05上的按钮的同时插入Arduino电源线。好了,现在您可以释放HC05上的按钮了。这就是您进入HC05的AT模式的方式。要检查您是否已正确完成此操作,请确保HC05上的红灯大约每秒闪烁一次(缓慢闪烁!)。通常,在将HC05连接到任何蓝牙设备之前,它的红灯会以非常高的频率闪烁(快速闪烁!)。

接下来,打开串口监视器。在串行监视器窗口的右下角,如果尚未设置,请确保将行结束符设置设置为“Both NL and CL”,并将波特率设置为38400。现在,在串口监视器输入中键入AT命令,如果一切顺利,您将从串行监视器窗口中显示的HC05中获得“OK”。恭喜你!您已成功登录HC05模块的AT命令模式。

现在,在下表中输入以下命令以配置主HC05模块:COMMANDRESPONSE功能

ATOK测试

AT + CMODE?OK确定检查CMODE或连接模式-CMODE:0为从机,1为主机

AT + CMODE = 1OK在配置主机HC05时将CMODE设置为1

AT + ADDR?+ ADDR:FCA8:9A:58D5 OK返回HC05的地址

Arduino之间蓝牙通信测试

首先,为主机HCHC模块和从机HC05模块供电。接通电源并经过几秒钟后,查看HC05模块上的红灯。

红灯闪烁速度表示什么

闪烁频率很高(快速闪烁!)这意味着您的HC05模块未相互连接!

低频闪烁(缓慢闪烁!)不错!但是我们仍然需要再做一次检查,以确保此设置有效!

一旦您的红灯以低频闪烁(缓慢闪烁!),就可以确定两个HC05都已相互连接,但是我们尚未测试是否可以在主从之间来回发送数据。

将以下代码上传到Arduino,这是测试发射器(Tx)的代码,关于发射器和接收器的完整代码也可以在此页面的底部找到。

按照前面的代码,我们将SoftwareSerial库添加到此代码中,并定义发送(Tx)和接收(Rx)引脚号。然后,我们命名蓝牙连接并将Tx和Rx引脚号传递到库。

#include

#define tx 2

#define rx 3

SoftwareSerial bt(rx,tx); //RX, TX复制代码

在setup函数中,我们将再次设置Arduino串口监视器和蓝牙的波特率。与以前的代码相比,您在这里看到区别吗?我们使用的波特率为9600波特。与其他蓝牙设备通信时,这是HC05蓝牙模块的默认预设通信波特率。因此,请注意,38400用于通过AT命令配置HC05,而9600是HC05模块的默认波特率。最后,就像之前我们将Tx引脚配置为输出并将Rx引脚配置为输入一样。

void setup()

{

Serial.begin(9600);

bt.begin(9600);

pinMode(tx, OUTPUT);

pinMode(rx, INPUT);

}复制代码

在loop函数中,我们要做的就是通过HC05传输一个随机值“ 123”。

void loop()

{

bt.write(123);

}复制代码

将以下代码上传到另一个Arduino,这是测试接收(Rx)的代码:

与前面的代码完全相同,我们配置了SoftwareSerial库。

#include

#define tx 2

#define rx 3

SoftwareSerial bt(rx, tx); //RX, TX复制代码

setup函数功能中的代码与测试发射(Tx)的代码完全相同。

void setup()

{

Serial.begin(9600);

bt.begin(9600);

pinMode(tx, OUTPUT);

pinMode(rx, INPUT);

}复制代码

在loop函数中,我们只需要接收发送中的Arduino发送的内容即可。如果接收缓冲区已从HC05接收到某些数据,则显示串口监视器中接收到的内容。

void loop()

{

if(bt.available()>0)

{

Serial.println(bt.read());

}

}复制代码

将相应的代码上传到每个Arduino之后,将串口监视器打开到接收的Arduino。 确保在串口监视器中将波特率选择为9600,将行结尾符选择为Newline。 如果一切正常,您应该会看到123。

Arduino-Serial-Monitor.png (35.65 KB, 下载次数: 1)

2020-5-23 07:34 上传

注意:如果已将发送和接收Arduinos都连接到同一台笔记本电脑,请确保在“工具”>“端口”下选择正确的COM端口。 您应该连接到接收到的Arduino的COM端口。

如果一切顺利,请交换HC05模块,以确保双向通信可以完成!

代码

以下是本文使用的完整代码:

main.rar

(502 Bytes, 下载次数: 23)

2020-5-23 07:34 上传

点击文件名下载附件

arduino蓝牙通讯代码_在两块Arduino开发板之间实现蓝牙通信相关推荐

  1. arduino蓝牙通讯代码_一种基于Arduino的蓝牙通信系统的制作方法

    本实用新型涉及无线通信技术领域,具体来说,涉及一种基于Arduino的蓝牙通信系统. 背景技术: 随着通信技术的发展,无论是在物联网,还是互联网,传统的有线传输技术已经越来越不能满足企业和个人的需求. ...

  2. arduino蓝牙通讯代码_「Arduino」OLED屏使用教程,显示内容听谁的?我不管,听我的...

    玩转Arduino小伙伴肯定都接触过OLED屏吧,不管是在Arduino还是树莓派中都起到浓墨重彩的一笔,会写编程的同学也可以变换更多的花样. 材料清单: Arduino驱动板 x 1 OLED模块 ...

  3. arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯

    功能 通过手机APP向蓝牙模块发送指令,蓝牙模块通过串口将指令传递给Arduino开发板,并由Arduino做出反馈,传递给手机. 工具材料Arduino 开发板 ×1 蓝牙串口模块×1 Androi ...

  4. arduino使用oled代码_如何做一个Arduino无线气象站

    今天我们来介绍如何利用DHT22传感器测量室外温度和湿度,并使用NRF24L01收发器模块将该数据无线发送到室内单元.在室内单元中,还有一个用于测量室内温度和湿度的DHT22传感器,以及一个DS323 ...

  5. arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino

    产品介绍: 蓝牙4.0模块是专为智能无线数据传输而打造的.该模块遵循BT2.1+EDR/3.0/4.0(BLE)蓝牙规范,支持SPP 蓝牙串口协议等.本模块集成了MCU 和蓝牙芯片,支持UART.SP ...

  6. arduino使用oled代码_实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南...

    概述 Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集.这使得Arduino示例程序可以很容易地在不同类型的显示屏之间进行调整,并且任何新特性.性 ...

  7. 传感器i2c与arduino连接_如何在两个Arduino开发板之间使用I2C总线进行通信

    在之前的文章中,我们介绍了Arduino之间的SPI通信.今天我们将学习另一种串行通信协议:I2C(内部集成电路).比较I2C和SPI,I2C只有两条线,而SPI使用四条,I2C可以有多个主机和从机, ...

  8. 蓝牙模块 HC08_两个STM32开发板无线通信

    一.HC08重要参数 蓝牙4.0,BLE,主从一体: 模块上电后,启动需要150ms: UART波特率:9600默认: 空中速率:1Mbps;  (与HC05, HC06等不同, 不能直接与之通信): ...

  9. 手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信

    目录 (一)前期软件准备和硬件准备 ( 二 ) 实现的思路和操作原理 ( 三) 具体的操作方法 MIT Appinventor 是编程领域较为受欢迎且适用的编程软件 ,因其操作流程和使用方法简单,一直 ...

最新文章

  1. SAP 作业类型主数据
  2. SAP FICO PA 模拟题
  3. Spark中组件Mllib的学习40之梯度提升树(GBT)用于回归
  4. windows如何调用Linux的API,Windows和Native API中的系统调用?
  5. idea2020.03 lombok异常
  6. Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度
  7. 手把手教你怎么给客群分级(上)
  8. win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!
  9. FortiGuard 被曝使用硬编码密钥和 XOR 加密通信
  10. 复现monodepth2之KITTI数据集准备
  11. 5个最佳网络安全监控工具、 你知道哪些
  12. VueRouter安装使用教程
  13. scrum敏捷开发与测试
  14. hdoj1897 SnowWolf's Wine Shop (multiset)
  15. Web安全—常见加密编码方式详解(持续更新)
  16. 给一整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3.“a的bit3”
  17. 京东面试详解(渣渣吐血整理版)
  18. 【TFT屏幕】1.44寸彩屏
  19. Cesium专栏-空间分析之坡向分析(附源码下载)
  20. 中基协:推荐使用电子合同

热门文章

  1. APQP-先期产品质量策划
  2. 网页动画师与技术开发,如何精准高效的协作完成动效。
  3. 微信小程序开发——JS中字符和数组的操作
  4. 使用MATLAB遍历文件
  5. 【zxing生成二维码及解析二维码】
  6. 数字电子技术实验作业(7)
  7. fm算法详解_fm算法(基于fm推荐算法)
  8. unity之VR模拟消防安全隐患排查综合方案(家庭/校园/商场/地铁/工厂/办公室)
  9. 2019年GitHub最流行50大Python开源项目!你知道几个?
  10. MySql使用MyCat分库分表(一)