arduino蓝牙通讯代码_在两块Arduino开发板之间实现蓝牙通信
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开发板之间实现蓝牙通信相关推荐
- arduino蓝牙通讯代码_一种基于Arduino的蓝牙通信系统的制作方法
本实用新型涉及无线通信技术领域,具体来说,涉及一种基于Arduino的蓝牙通信系统. 背景技术: 随着通信技术的发展,无论是在物联网,还是互联网,传统的有线传输技术已经越来越不能满足企业和个人的需求. ...
- arduino蓝牙通讯代码_「Arduino」OLED屏使用教程,显示内容听谁的?我不管,听我的...
玩转Arduino小伙伴肯定都接触过OLED屏吧,不管是在Arduino还是树莓派中都起到浓墨重彩的一笔,会写编程的同学也可以变换更多的花样. 材料清单: Arduino驱动板 x 1 OLED模块 ...
- arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯
功能 通过手机APP向蓝牙模块发送指令,蓝牙模块通过串口将指令传递给Arduino开发板,并由Arduino做出反馈,传递给手机. 工具材料Arduino 开发板 ×1 蓝牙串口模块×1 Androi ...
- arduino使用oled代码_如何做一个Arduino无线气象站
今天我们来介绍如何利用DHT22传感器测量室外温度和湿度,并使用NRF24L01收发器模块将该数据无线发送到室内单元.在室内单元中,还有一个用于测量室内温度和湿度的DHT22传感器,以及一个DS323 ...
- arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino
产品介绍: 蓝牙4.0模块是专为智能无线数据传输而打造的.该模块遵循BT2.1+EDR/3.0/4.0(BLE)蓝牙规范,支持SPP 蓝牙串口协议等.本模块集成了MCU 和蓝牙芯片,支持UART.SP ...
- arduino使用oled代码_实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南...
概述 Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集.这使得Arduino示例程序可以很容易地在不同类型的显示屏之间进行调整,并且任何新特性.性 ...
- 传感器i2c与arduino连接_如何在两个Arduino开发板之间使用I2C总线进行通信
在之前的文章中,我们介绍了Arduino之间的SPI通信.今天我们将学习另一种串行通信协议:I2C(内部集成电路).比较I2C和SPI,I2C只有两条线,而SPI使用四条,I2C可以有多个主机和从机, ...
- 蓝牙模块 HC08_两个STM32开发板无线通信
一.HC08重要参数 蓝牙4.0,BLE,主从一体: 模块上电后,启动需要150ms: UART波特率:9600默认: 空中速率:1Mbps; (与HC05, HC06等不同, 不能直接与之通信): ...
- 手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信
目录 (一)前期软件准备和硬件准备 ( 二 ) 实现的思路和操作原理 ( 三) 具体的操作方法 MIT Appinventor 是编程领域较为受欢迎且适用的编程软件 ,因其操作流程和使用方法简单,一直 ...
最新文章
- SAP 作业类型主数据
- SAP FICO PA 模拟题
- Spark中组件Mllib的学习40之梯度提升树(GBT)用于回归
- windows如何调用Linux的API,Windows和Native API中的系统调用?
- idea2020.03 lombok异常
- Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度
- 手把手教你怎么给客群分级(上)
- win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!
- FortiGuard 被曝使用硬编码密钥和 XOR 加密通信
- 复现monodepth2之KITTI数据集准备
- 5个最佳网络安全监控工具、 你知道哪些
- VueRouter安装使用教程
- scrum敏捷开发与测试
- hdoj1897 SnowWolf's Wine Shop (multiset)
- Web安全—常见加密编码方式详解(持续更新)
- 给一整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3.“a的bit3”
- 京东面试详解(渣渣吐血整理版)
- 【TFT屏幕】1.44寸彩屏
- Cesium专栏-空间分析之坡向分析(附源码下载)
- 中基协:推荐使用电子合同