项目主题:Arduino R3 控制系统:通过蓝牙模块实现手机远程监控超声波传感器数据并控制LED灯"
- 使用Arduino R3作为主控制器。
- 集成了蓝牙模块,允许手机设备远程连接。
- 超声波模块用于收集距离数据。
- LED灯的开关状态可以通过手机发送的指令控制。
- 手机可以接收并显示超声波模块的数据。
以下是项目的详细所需准备的材料与软件
第一步先准备好Arduino IDE软件并将Arduino主板通过数据线接上电脑通过Arduino IDE软件进行设置
第二步材料清单(材料链接在材料清单下面)
- ArduinoR3主板+数据线 A链接
- LED灯 B链接
- 杜邦线 C 链接
- HC-05蓝牙模块(带主板HC-05主从一体蓝牙模块) D链接
- 超声波测距模块HC-SR04(新版支持电压3.3V-5V)E链接
A:https://m.tb.cn/h.gSGEdLcVqYoUY70?tk=NmwX3bWsz0PZH4920 B:https://m.tb.cn/h.gS0gTO1apevojma?tk=AhFG3bWHQHy CZ0002
C:https://m.tb.cn/h.gSGvAKn4mpGuAlA?tk=JgBM3bWIHZn
D: https://m.tb.cn/h.gS7HomiruiUiIVX?tk=44Xw3bWGB0R
E: https://m.tb.cn/h.gSGxMKDEdyXfKU7?tk=6hpy3bWGrca ZH4920
第三部:将蓝牙模块接上Arduino R3通过数据线接上电脑通过Arduino IDE软件将代码上传到Arduino R3板上(下方的红色字体为详细步骤)
通过Arduino R3与蓝牙模块的AT模式配置:实现串口监视器数据传输及状态验证"
这个标题涵盖了以下要点:
- 使用Arduino R3作为主控制器。
- 连接并配置蓝牙模块进入AT模式。
- 通过串口监视器验证蓝牙模块的状态。
- 设置串口参数(如波特率和输出格式)以确保正确的数据传输。
- 显示蓝牙模块已准备好的状态信息。
第一步蓝牙模块的RXD(接收数据)引脚 应该连接到Arduino R3的数字引脚11。这意味着蓝牙模块将通过此引脚接收来自Arduino的数据。
蓝牙模块的TXD(发送数据)引脚 应该连接到Arduino R3的数字引脚10。这样,Arduino R3将通过此引脚向蓝牙模块发送数据。
蓝牙模块的VCC(电源正极)引脚 应该连接到Arduino R3的5V引脚。这为蓝牙模块提供必要的5伏特电源。
蓝牙模块的GND(接地)引脚 应该连接到Arduino R3的GND引脚。这是为了保证整个电路的电位参考一致,避免出现电位差导致的信号干扰或损坏。
第二部将以下的代码通过数据线连接ArduinoR3的主板连接电脑使用Arduino IDE软件上传到ArduinoR3主板上后出现bluetooth is ready!进入蓝牙的AT模式详细步骤一下(蓝色字体)(代码是绿色字体以下)
(蓝牙模块代码):#include <SoftwareSerial.h>
// Pin10接HC05的TXD
// Pin1接HC05的RXD
SoftwareSerial BT(10, 11);
char val;
void setup() {
Serial.begin(38400);
Serial.println("bluetooth is ready!");
BT.begin(38400);
}
void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}
if (BT.available()) {
val = BT.read();
Serial.print(val);
}
}
将Arduino断电:首先,确保Arduino R3没有连接电源,这样可以避免在配置过程中出现意外的电流冲击。
按住蓝牙模块上的黑色按钮:找到蓝牙模块上的一个小的黑色按钮(通常标记为“AT”或“MODE”),并持续按住它。
重新给Arduino通电:在按住按钮的同时,将Arduino R3连接到电源或USB。蓝牙模块应该会在几秒钟内启动,并在启动过程中检测到你按下的按钮。
观察蓝牙模块的指示灯:如果一切正常,蓝牙模块的指示灯应该开始以慢速闪烁(大约每2秒闪烁一次)。这表明蓝牙模块已成功进入AT模式,准备接收AT命令。
打开Arduino IDE的串口监视器:在Arduino IDE中,选择正确的串行端口,这通常是与你的Arduino连接的COM端口(如COM3、COM4等)。确保将输出格式设置为“Both NL & CR”,这表示新行和回车,以确保命令的正确格式。
设置波特率为38400:这是蓝牙模块的默认波特率,用于串口通信。确保在串口监视器中设置相同的波特率,以确保数据的正确传输。
验证AT模式:一旦配置完成,你可以在串口监视器中看到“bluetooth is ready!”的消息,这表明蓝牙模块已经准备好接收AT命令。 此时,你可以开始发送AT命令来配置蓝牙模块。
进入AT的指令是AT+ORGL:此命令用于恢复蓝牙模块的出厂设置。当你不确定模块的当前设置或设置混乱时,使用此命令可以将所有参数重置为初始状态,便于重新开始配置。
AT+NAME:查询当前蓝牙模块的名称。发送此命令后,模块会返回当前设置的蓝牙名称。
AT+NAME=HC-05:设置蓝牙模块的名称为“HC-05”。这有助于在多个蓝牙设备中区分此模块,特别是在配对和连接的过程中。
AT+ROLE=0:设置蓝牙模块的角色为从模式(Slave Mode)。这意味着模块将等待其他主设备(Master)的连接请求,而不是主动发起连接。对于大多数Arduino项目,从模式是最常见的设置。
AT+CMODE=1:设置蓝牙模块的工作模式为任意设备连接模式(Any Device Connectable Mode)。这意味着任何设备都可以尝试连接到此模块,而无需事先配对。这增加了模块的可用性和灵活性。
AT+PSWD=1234:设置蓝牙模块的配对密码为“1234”。在尝试与模块建立连接时,任何设备都必须输入正确的密码才能成功配对。这为蓝牙连接提供了一定程度的安全保障。
进入发送AT指令后Arduino IDE的串口监视器会显示OK 会接受的啊OK一般就是成功进入AT模式
一下是具体的截图
第三部下载蓝牙调试器进行配对连接 手机是否配对成功蓝牙HC-05
- HC-SR04超声波模块连接ArduinoR3板上讲解超声波模块的Trig接2引脚,超声波模块的Echo接3引脚,超声波模块的GND接GND引脚,超声波模块的VCC接3.3V引脚。以下是详细讲解
- 超声波模块的Trig(触发)引脚 应该连接到Arduino R3的数字引脚2。这个引脚将用于发送触发脉冲给超声波模块,启动距离测量过程。
- 超声波模块的Echo(回声)引脚 应该连接到Arduino R3的数字引脚3。这个引脚将用于接收从目标反射回来的超声波信号,从而计算出距离。
- 超声波模块的GND(接地)引脚 应该连接到Arduino R3的GND引脚。这是为了确保模块和Arduino有共同的参考地电平,防止信号干扰和确保电路的稳定工作。
- 超声波模块的VCC(电源正极)引脚 最好连接到Arduino R3的3.3V引脚,而不是5V引脚。这是因为虽然HC-SR04模块可以接受3.3V到5V的电源电压,但使用3.3V可以减少功耗并降低发热,同时确保与3.3V逻辑电平兼容的微控制器(如一些Arduino板上的芯片)的兼容性。然而,对于标准的Arduino Uno R3,由于其I/O引脚为5V逻辑电平,实际上连接到5V引脚也是可行的,但需注意可能的功耗和发热问题。
第四步LED灯的正极接到Arduino R3的5引脚,LED灯的负极接到Arduino R3的GND引脚。
第五步上传Arduino R3 控制系统:通过蓝牙模块实现手机远程监控超声波传感器数据并控制LED灯"的代码在下方(棕色字体)
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);
const int Trigpin = 2;
const int Echopin = 3;
const int Ledpin = 5;
char bluetoothData = '0';
void setup() {
BT.begin(9600);
BT.println("Bluetooth is ready!");
pinMode(Ledpin, OUTPUT);
pinMode(Trigpin, OUTPUT);
pinMode(Echopin, INPUT);
}
void loop() {
if (BT.available() > 0) {
bluetoothData = BT.read();
BT.println(bluetoothData);
}
float distance = Get_Distance();
if ((distance >= 8 && distance <= 30) || bluetoothData == '1') { // 当距离在8cm到10cm之间或蓝牙接收'1'时,点亮LED
digitalWrite(Ledpin, HIGH);
}else{ // 否则,关闭LED
digitalWrite(Ledpin, LOW);
}
BT.print("Distance: ");
BT.print(distance);
BT.print(" cm\n"); delay(1000);
}
float Get_Distance() {
digitalWrite(Trigpin, LOW);
delayMicroseconds(2);
digitalWrite(Trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(Trigpin, LOW);
unsigned long duration = pulseIn(Echopin, HIGH);
float dist = duration / 58.0;
return dist;
}
第五步将HC-05蓝牙模块成功配对手机后下载蓝牙调试器后使用蓝牙调试器连接HC-05蓝牙模块可以发现蓝牙调试器APP在手机显示器上显示数据当通过蓝牙调试器APP发送数字1是接受到数字1蓝牙模块发送信号到主板会亮。通过超声波模块检测到距离8~10区间或大于30这个区间时候LED灯会亮,发送数字一被接受到后LED灯会亮,否则不亮。
以下是蓝牙调试器连接成功示例: