通过本文,可以了解到以下内容:

  • 进入 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> // Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11);
char val;void setup() {Serial.begin(38400); Serial.println("BT is ready!");// HC-05默认,38400BT.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+ORGL    # 恢复出厂模式
AT+NAME=<Name>    # 设置蓝牙名称
AT+ROLE=0    # 设置蓝牙为从模式
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()
{// 设置波特率为 38400Serial.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模式 对蓝牙模块进行设置,这里要注意接线的正确性,设置完成后,就可以将蓝牙模块的 TXArduino RX 连接,RXArduino TX 连接,再通过 Arduino 程序中的 Serial 来实现数据的传输与读取。最后,在通过 Android 上的蓝牙串口调试APP,来测试我们的试验是否成功。

参考资料

蓝牙模块HC05 Arduino Bluetooth Basic Tutorial

Arduino使用HC05蓝牙模块与手机连接

利尔达e95蓝牙模块程序_Arduino使用HC05蓝牙模块与手机连接相关推荐

  1. arduino nano 蓝牙_Arduino使用HC05蓝牙模块与手机连接

    通过本文,可以了解到以下内容: 进入 AT 模式进行蓝牙基本参数设置 Arduino 蓝牙控制 LED 电路设计以及代码编写 利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基 ...

  2. 蓝牙进阶之路 (001) - HC-05蓝牙无线模块设置

    USB转串口的有线转接方式,实在太难看了,尤其是寻接头,那是相当的不方便.其它电器厂商都想把是接头做小,做精致,唯独串口接头还是那么庞大,感觉应该换一换了,都已经完全不符合这个时代的审美观了. 于是, ...

  3. 蓝牙调试器 接收处理 hc-05蓝牙上传数据

    文章目录 前言 一,设置数据包格式 二,编辑控件 三,stm32 串口发送 四,stm32 串口接收 前言 测试项目地址:https://gitee.com/killerp/stm32_ble_deb ...

  4. Arduino使用HC05蓝牙模块与手机连接(转载)

    通过本文,可以了解到以下内容: 进入 AT 模式进行蓝牙基本参数设置 Arduino 蓝牙控制 LED 电路设计以及代码编写 利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基 ...

  5. Arduino使用HC05蓝牙模块与手机连接

    通过本文,可以了解到以下内容: 进入 AT 模式进行蓝牙基本参数设置 Arduino 蓝牙控制 LED 电路设计以及代码编写 利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基 ...

  6. 如何使用阿杜(Arduino)测试板编程HC-05蓝牙模块?

    随着日常生活中使用蓝牙产品越来越广泛,一些产品开发人员将经常使用Arduino开发板与HC-05蓝牙模块一起开发.那么如何使用Arduino编程HC-05模块呢? 现在以HC-05蓝牙(FSC-BT8 ...

  7. 【汇编语言】多模块程序结构

    多模块程序结构 文章目录 多模块程序结构 一.多模块方法 (1)源文件包含 (2)模块连接 (3)子程序库和库文件包含 1.子程序库 2.库文件包含 二.宏汇编 (1)宏汇编的定义 (2)宏定义.宏调 ...

  8. HC-05蓝牙模块配对方法及AT指令配置

    目录 蓝牙功能介绍 HC-05/06/08异同 HC-05蓝牙模块示意图 连接方式 默认配置 如何配置AT指令? 配置小技巧 配置步骤 验证过程 蓝牙功能介绍 取代传统的数据线,实现无线数据传输,解决 ...

  9. STM32+HC-05蓝牙模块学习与使用

    HC-05蓝牙串口通信 HC05模块是一款高性能主从一体蓝牙串口模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通信,十分方便. 从某宝商家那里可以看到,蓝牙可以使用多种方法使用,这里我使用的是蓝 ...

最新文章

  1. 转帖:iOS UIWindow UIWindowLevel
  2. 如何使用 FFmpeg 减小视频大小
  3. MFC通过ODBC连接mysql(使用VS2012编写MFC)
  4. 视频光端机常见问题解决方法
  5. .NET简谈事务、分布式事务处理
  6. 年薪十万的王者荣耀,LOL游戏模型师的工作是这样的|附50G资料
  7. 水题 Codeforces Round #304 (Div. 2) A. Soldier and Bananas
  8. python内存分配失败_关于python:如何避免[Errno 12]无法分配使用子进程模块导致的内存错误...
  9. visio安装后导致excel滑动滚动条闪退的问题
  10. 【Mybatis源码解析】Mybatis源码体系结构
  11. 180729 5行命令win10企业版永久激活方法
  12. 知乎 高级操作系统_知乎问题:高级运营和普通运营有哪些区别?(更新版,赞赞赞!)...
  13. gwas snp 和_2型糖尿病GWAS关联SNP对miRNA-mRNA互作的影响分析
  14. 刘帅嵌入式系统-ORR逻辑或操作指令
  15. 玩转oled屏(基于SPI协议)
  16. Gearman中文手册技术文档分享chm
  17. 【项目】#防翟天临老师翻车神器# ——实现文本查重
  18. Java-File文件操作
  19. jmeter性能测试1-录制脚本
  20. 计算机课的教学点评,计算机基础学科的教学评价有效方法

热门文章

  1. php临时文件删除,php删除临时文件的代码示例
  2. matlab gui 制动程序设计,Matlab的GUI程序设计程序.doc
  3. c语言的链表怎么写,写一个C语言的链表记录一下
  4. java innerexception_java – 为什么使用反射访问外部类的私有成员抛出IllegalAccessException?...
  5. android刷机方法,介绍一种android的裸刷机方法(fastboot刷机实质)
  6. c# 从一组数中随机抽取一定个数_C#产生指定范围随机数的几种方法-亮术网
  7. ios kvo 要引入_iOS中KVO的使用
  8. qthread run结束了算销毁吗_对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考...
  9. 玩转springboot2.x之自定义项目内自动配置
  10. form表单reset报 reset is not a function