arduino蓝牙模块连接可以通过arduino使用at命令吗

通过本文,可以了解到以下内容:
进入 AT 模式进行蓝牙基本参数设置
Arduino 蓝牙控制 LED 电路设计以及代码编写
利用 Andorid 蓝牙串口调试软件测试功能
进入 At 模式进行蓝牙基本参数设置
想要使用 Arduino 的蓝牙模块,首先要对蓝牙模块进行基本参数设置。基本参数设置主要包含:蓝牙名称、模式以及匹配密码等。设置蓝牙模块可以使用 USB-TTL 连接电脑使用串口调试软件进入 AT 模式进行设置,也可以使用 Arduino 连接蓝牙模块进行设置,本文主要介绍后一种方法。
在连接蓝牙的时候,要注意线的连接是否正确,检查清楚再进行通电,除此之外,还要主要不要让针脚短路,我在首次使用蓝牙模块的时候,因为没注意接线,导致一个蓝牙模块损坏了,只能发信息不能收信息,所以为了避免不必要的损失,这里要注意。
Arduino HC05 AT模式接线
进入 AT 模式设置蓝牙的接线如下:
Arduino 5V - VCC
Arduino GND - GND
Arduino Pin10 - TXD
Arduino Pin11 - RXD
在通电前检查接线是否正确连接
Arduino 进入 AT 模式代码
接下来,我们需要为使用 Arduino 设置蓝牙模块 AT 模式编写程序,这个程序是让我们可以通过 Arduino IDE 提供的串口监视器来设置蓝牙模块。详细的 Arduino 代码如下:
#include &SoftwareSerial.h&
SoftwareSerial BT(10, 11);
void setup() {
Serial.begin(38400);
Serial.println("BT 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 IDE 串口监视器进行调试
首先,将 Arduino 断电,然后按着蓝牙模块上的黑色按钮,再让 Arduino 通电,如果蓝牙模块指示灯按2秒的频率闪烁,表明蓝牙模块已经正确进入 AT 模式。
打开 Arduino IDE 的串口监视器,选择正确的端口,将输出格式设置为 Both: NL & CR ,波特率设置为 38400 ,可以看到串口监视器中显示 BT is ready! 的信息。
然后,输入 AT ,如果一切正常,串口显示器会显示 OK。
接下来,我们即可对蓝牙模块进行设置,常用 AT 命令如下:
AT+NAME=&Name&
AT+CMODE=1
AT+PSWD=&Pwd&
正常情况下,命令发送后,会返回 OK ,如果没有返回任何信息,请检查接线是否正确,蓝牙模块是否已经进入 AT 模式,如果上述两点都没有问题,可能是蓝牙模块的问题,可以找蓝牙模块供应商咨询。
设置完毕后,断开电源,再次通电,这是,蓝牙模块指示灯会快速闪烁,这表明蓝牙已经进入正常工作模式。
利用 Andorid 手机连接 Arduino 并控制 LED灯开关
我们完成了对蓝牙模块的设置后,我们将做一个可以通过手机蓝牙连接,控制 Arduino 开关 LED 灯的小实验。
Arduino 电路设计
这里的电路设计比较简单,主要是两部分:
- Arduino 与 HC05 模块连接
- Arduino 与 LED 连接
这里有两点需要注意,Arduino 上的 TXD 应与 HC05 模块上的 RXD 端连接,Arduino 上的 RXD 应与 HC05 模块上的 TXD 连接。
在下面的图例中,我的 LED 是直接连接在 Arduino Pin13 上,而实际电路连接中,因根据连接的 Led 灯的设计考虑是否需要串联电阻。
Arduino 蓝牙控制 LED 灯 程序设计
Arduino 程序代码如下:
void setup()
Serial.begin(38400);
pinMode(13, OUTPUT);
void loop()
while(Serial.available())
char c=Serial.read();
if(c=='1')
Serial.println("BT is ready!");
Serial.write("Serial--13--high");
digitalWrite(13, HIGH);
if(c=='2')
Serial.write("Serial--13--low");
digitalWrite(13, LOW);
Android 手机端调试
在 Android 端上进行调试,需要下载蓝牙串口调试 APP,可以根据喜好在各大应用商场搜索下载。
下载安装完成 APP 后,我们先打开手机的蓝牙设置,搜索并匹配好我们的蓝牙模块。然后打开 蓝牙串口调试APP ,让 APP 连接上蓝牙模块,然后我们可以在 APP 中输入 1,接下来可以看到 LED 等亮了,并且能在 APP 中看到 Serial--13--high 的返回(有些 APP 返回值可能不是返回在同一行)。我们再在 APP 中输入 2,可以看到 LED 熄灭, APP 中返回 Serial--13--low。
在这篇文章中,我们了解了在 Arduino 中使用 HC05 蓝牙模块的两个主要步骤,首先是进入 AT模式 对蓝牙模块进行设置,这里要注意接线的正确性,设置完成后,就可以将蓝牙模块的 TX 与 Arduino RX 连接,RX 与 Arduino TX 连接,再通过 Arduino 程序中的 Serial 来实现数据的传输与读取。最后,在通过 Android 上的蓝牙串口调试APP,来测试我们的试验是否成功。
本文为原创内容,由同一作者于早前发表于简书,
本文已收录于以下专栏:
相关文章推荐
根据相关政策规定,国内比特币交易将于2017年9月底关闭,但这几年里,比特币交易的历史行情数据,可能对日后用于研究经济、金融以及量化交易策略等都有重大的价值,因此,这篇文章主要讲述如何通过 Pytho...
通过本文,可以了解到以下内容:
为什么要寻找替代 Arduino IDE 的软件
SublimeText3 Stino 插件安装
SublimeText3 Stino 配置
SublimeText3 ...
通过手机进行通信是可以实行很多遥控功能,虽然距离是比较短一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。
实验目的:用Android实现蓝牙连接通过Arduino串...
简介蓝牙,顾名思义,蓝色的牙齿,并不能用来咬人,而是一种无线数据传输标准。
HC-05和HC-06是现在使用较多的两种蓝牙模块。两者之间的区别是HC-05是主从一体机,既能向自己的’主子’打小报告,...
使用无底板的HC-05蓝牙模块,包括连线,通过SSCOM32进行配置,编写安卓端的程序实现和蓝牙模块的通信,数据传输...
蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。
1、可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。
2、宽波特率范围,并...
调模块总是让人很头疼,有时候遇到一些其实很简单的问题也找不到原因,着实难受。这里写一点我在配置HC05遇到的一些常见的问题和对一些问题的或对或错的理解...
前段时间买了个ATK的HC05蓝牙模块。HC05模块是一款高性能主从一体蓝牙串口模块,可以不用知道太多蓝牙相关知识就可以很好的上手。说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了...
每天学一点东西,发现学着学着竟然就忘了,虽然都是些简单的东西,但是很是苦恼,决心写写记下来。
今天在我用的编译器是iar,很老的编译器了。
进入主题,今天用ATmega328P的Ic,写HC-05的蓝...
第一:串口助手发送AT指令,无回应?
解决办法:如果买的蓝牙模块有一个小按键,则连接好蓝牙和USB转串口(rx-tx tx-rx),电源最好用5v给蓝牙供电,连接好后插上电脑,打开串口助手,...
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)查看: 33286|回复: 34
arduino间通过蓝牙模块建立通讯
本帖最后由 弘毅 于
22:35 编辑
& && &网上有很多单片机接蓝牙模块连接手机和电脑的教程。这里我做个非主流一点点的= =,就是两块arduino之间的蓝牙通信。因为发现网上貌似没有太具体的教程(反正我做的时候没找到)。我就来发一贴交流下自己的经验。
& & arduino用的是2块mango板子。蓝牙模块用到是open jumper的。。= =我知道很贵,是白富美学姐给我的{:soso_e144:} 。。
未命名.jpg (16.56 KB, 下载次数: 55)
OJ的蓝牙模块
21:11 上传
PS:这里提醒下新手= =虽然这个模块的插针插在arduino上的TX RD上刚刚好合适,不过千万不能用IO口一个一个给高一个给低模拟VCC和GND哦!!不然模块工作会很不正常。。。好吧只是提醒,我知道只有我这个傻 X&&会烦这样的错误。
首先,我们先把一个蓝牙模块设置成主机,一个设置成从机。
首先是主机的设置。
/*用于蓝牙模块的主机的设置,配置方法很多,这里只使用从arduino对模块设置AT指令的方法(= =嗯我知道我非主流)。
即把程序导入arduino后将USB和电脑!断开!。
连接模块,再连接USB(确保电脑中未开启arduino IDE或相关串口软件!!),就可以完成AT设置。之后断开模块的电源(不断会导致程序写入arduino发生错误。),连接USB导入相关程序(测试程序在2楼)即可。
Ps:一定要断开保证有关串口的软件保持关闭才能完成设置,否则系统会把写入信息写到电脑上而不是蓝牙模块里。*/
#define AT 2
#define LED 13
void setup()
{
&&pinMode(LED,OUTPUT);&&
&&pinMode(AT,OUTPUT);&&
&&digitalWrite(AT,HIGH); //AT的电平给高,用于输入AT指令
&&Serial.begin(9600);//这里应该和你的模块通信波特率一致
&&delay(100);
&&Serial.println(&AT&);
&&delay(100);
&&Serial.println(&AT+NAME=ICAT-BT01&);//命名模块名
&&delay(100);
&&Serial.println(&AT+ROLE=1&);//设置主从模式:0从机,1主机
&&delay(100);
&&Serial.println(&AT+PSWD=0000&);//设置配对密码,如1234
&&delay(100);
&&Serial.println(&AT+UART=&);//设置波特率9600,停止位1,校验位无
&&delay(100);
&&Serial.println(&AT+RMAAD&);//清空配对列表
&&delay(100);
&&Serial.println(&AT+BIND=146&);//设定从机的地址,保持格式一致。
&&delay(100);
&&Serial.println(&AT+CMODE=0&);//开启自动连接
&&delay(100);
}
void loop()
{
&&digitalWrite(LED, HIGH);& & /*只用于证明程序导入arduino成功,和设置蓝牙模块无关*/
&&delay(500);
&&digitalWrite(LED, LOW);
&&delay(500);
}复制代码
从机的设置代码:
/*和主机设置差不多,不过不用给定从机的地址和开启自动连接。设置方法同主机,要保持电脑的串口软件关闭*/
#define AT 2
#define LED 13
void setup()
{
&&pinMode(LED,OUTPUT);&&
&&pinMode(AT,OUTPUT);&&
&&digitalWrite(AT,HIGH); //AT的电平给高,用于输入AT指令
&&Serial.begin(9600);//这里应该和你的模块通信波特率一致
&&delay(100);
&&Serial.println(&AT&);
&&delay(100);
&&Serial.println(&AT+NAME=ICAT-BT02&);//命名模块名
&&delay(100);
&&Serial.println(&AT+ROLE=0&);//设置主从模式:0从机,1主机
&&delay(100);
&&Serial.println(&AT+PSWD=0000&);//设置配对密码,如1234
&&delay(100);
&&Serial.println(&AT+UART=&);//设置波特率9600,停止位1,校验位无
&&delay(100);
&&Serial.println(&AT+RMAAD&);//清空配对列表
}
void loop()
{
&&digitalWrite(LED, HIGH);
&&delay(500);
&&digitalWrite(LED, LOW);
&&delay(500);
}复制代码
再次声明,对蓝牙模块的AT设置可以有很多种方法,这里只说明了用arduino设置的方法。注意USB和IDE的关闭。
再次PS:不关闭IDE和串口软件会导致设置无法输入模块里哦!(好吧= =其实我也不确定,只不过关掉了安心)
二楼上测试连接模块的程序= =求不插!
本帖最后由 弘毅 于
22:44 编辑
实验过程:让主机每300ms通过通过串口向从机发送一个信号。从机接到信号后用13 口的led做出反应。程序导入同正常导入一样(导入前请断开模块的电源!!)。不过通信过程最好关闭串口软件,包括arduino IDE。
主机程序:
setup()
{
&&Serial.begin(9600);//设定波特率为9600
}
void loop()
{
&&delay(300);& &&&
&&Serial.print('0');//通过串口发送一个’0’字符
&&delay(300);
&&Serial.print('1');
}
从机程序:
void setup()
{
&&pinMode(13,OUTPUT);
&&Serial.begin(9600);
}
void loop()
{
&&char cd=Serial.read(); //从串口读取一个字符
&&if(cd=='1')
& & digitalWrite(13,HIGH);
&&if(cd=='0')
& & digitalWrite(13,LOW);
& & delay(100);
}复制代码
上效果图,不过看不出效果= =
未命x名.jpg (115.86 KB, 下载次数: 105)
21:33 上传
{:soso_e104:}不错。赞一个。沙发是我的。
好教程,地板是我的。楼主的研究精神非常值得赞赏,我也想过给蓝牙用arduino pin脚直插供电的可能,不过没有实践。请问楼主,有没有用蓝牙下载过arduino程序,除了设置波特率为115200,还有什么讲究吗,我一次都没有成功过。(不管怎么按Reset键
seuabb 发表于
好教程,地板是我的。楼主的研究精神非常值得赞赏,我也想过给蓝牙用arduino pin脚直插供电的可能,不过没有 ...
没试过,因为的我电脑蓝牙有问题,也没安装网上那些教程里的配对软件。我记得论坛里不是有个教程贴吗?你去哪里问问那个楼主??
·················
怎么得到从机arduino 从机的地址呢? 求指教~
nierixin 发表于
怎么得到从机arduino 从机的地址呢? 求指教~
好久没上这个论坛了。我当时的方法是用AT指令设置他为从机后用我的手机连接他。手机可以看到设备的mac地址
教程很详细,学习啦
下载了代码到ARDUINO里还不知道什么方法设置蓝牙,有谁知道,能详细的说下,谢谢!!
Powered by[转载]Arduino提高级教程第一节-Bluetooh蓝牙模块的使用
该图为BlueTooth
Bee蓝牙模块为主从一体
Bluetooth Bee
蓝牙无线数传模块采用XBEE造型设计,体积尺寸紧凑,兼容XBEE的扩展底座。
把BlueTooth
Bee蓝牙模块直接插到XBEE的扩展底座后,叠加到UNO主板上即可,容易操作。
该图为BlueTooth蓝牙模块主从一体
上述两种蓝牙模块都适用于各种3.3V的单片机系统,模块可以使用AT指令设置波特率配对、密码用户信息等,默认波特率:38400,从机模式,配对密码1234。
需要购买进入:
&如果想修改蓝牙参数,比如蓝牙名称等信息,按照上面的引脚标识,连接到单机片上,切记VDD,不要使用3.3V以上的电源供电,否则很容易烧毁蓝牙模块。其中蓝牙的TX、RX分别连接到单片机的RX、TX,AT_KEY接高电平。
这里以UNO为例说明,准备UNO主板,杜邦线或者蓝牙扩展板。下载资料请通过如下连接获得:
(A)BlueTooth
Bee蓝牙模块:如果是Manduino UNO拨到5V供电,扩展板拨动开光调到右边(PROG)BT_TX、BT_RX跳帽分别BT_TX--&D2、BT_RX--&D3&&&&&
(B)BlueTooth蓝牙模块:5V、3.3V任意接一个到相应的电压就可以了,这样设计为考虑各种单片机的供电可选性、KEY接高电平、TX--&D2、RX--&D3&
上电后,模块上的POWER二极管会一直亮,LED1会半秒闪一次,如果不是这样,重新上电或复位。
通过如下程序可以修改相关参数:
&NewSoftSerial.h&&&
//Software Serial Port
#define RxD 2
#define TxD 3
#define LED 13
NewSoftSerial blueToothSerial(RxD,TxD);
void setup()
Serial.begin(9600);&&&&&&&&&&
&&& pinMode(RxD,
&&& pinMode(TxD,
setupBlueToothConnection();
void loop()
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);&&&&&&&&
void setupBlueToothConnection()
Serial.println("Setting Bluetooth
parameters");&&&&&&&
blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to
default baud rate 38400
delay(100);
sendBlueToothCommand("ATrn");
sendBlueToothCommand("AT+NAME=Manolinsrn");//命名模块名
sendBlueToothCommand("AT+ROLE=0rn");//设置主从模式:0从机,1主机
sendBlueToothCommand("AT+PSWD=1234rn");//设置配对密码,如0123
sendBlueToothCommand("AT+UART=rn");//设置波特率9600,停止位1,校验位无
sendBlueToothCommand("AT+RMAADrn");//清空配对列表
delay(100);
Serial.println("Setup complete");
void sendBlueToothCommand(char command[])
blueToothSerial.print(command);
Serial.print(command);&&&&&&&&&&&&&&&&&&&&&&&&
delay(100);
while(blueToothSerial.available())&&&&&&&&&&&&
{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Serial.print(char(blueToothSerial.read()));&
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
烧录完成后,不要改变连接电路,打开串口,如果出现
则表示修改参数正确。
&(A)首先从“下载资料”中找到“ANDROI系统P串口助手”目录下的APK文件,关于如何安装APK文件到自己的android手机,进入链接了解
(B)电路连接
&如果是BlueTooth
Bee蓝牙模块:扩展板拨动开光调左边(RUN);
&如果是BlueTooth蓝牙模块:KEY接地或悬空
其他电路和“蓝牙参数的修改”一样,再重新上电。烧录如下测试代码:
&NewSoftSerial.h&&&
//Software Serial Port
#define RxD 2
#define TxD 3
String BT_DATA = "";
NewSoftSerial
blueToothSerial(RxD,TxD);
void setup()
Serial.begin(38400);&&&&&&&&&&
pinMode(RxD, INPUT);
&&& pinMode(TxD,
blueToothSerial.begin(38400);
void loop()
&&&while(blueToothSerial.available())&//Receivedata&&&&&&&&&&&&&
{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Serial.print(char(blueToothSerial.read()));&
if(Serial.available()){& //Tx data
BT_DATA += char(Serial.read());
}while (Serial.available() & 0);
(BT_DATA.length() & 0){
blueToothSerial.println(BT_DATA);
Serial.println(BT_DATA);
BT_DATA = "";
烧录完成后,POWER二极管亮,LED1灯每半秒闪烁一次,蓝牙模块和手机之间可以相互通信。
(1)安装APK文件后,打开手机,会发现BTClient应用程序,双击
(2)连接,查找可选取的蓝牙设备
(3)连接,输入蓝牙设备密码
配对成功后,POWER二极管亮,LED1灯每秒闪烁一次,LED2常亮。
(4)打开串口,手机与蓝牙模块通讯
&整个手机与蓝牙之间的通讯完成。
如需购买Arduino相关产品,请进入购买。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 arduino蓝牙模块连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信