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

进入 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

在通电前检查接线是否正确连接

hc05_at_mode.jpg

Arduino 进入 AT 模式代码

接下来,我们需要为使用 Arduino 设置蓝牙模块 AT 模式编写程序,这个程序是让我们可以通过 Arduino IDE 提供的串口监视器来设置蓝牙模块。详细的 Arduino 代码如下:

#include

// 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默认,38400

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+ORGL # 恢复出厂模式

AT+NAME= # 设置蓝牙名称

AT+ROLE=0 # 设置蓝牙为从模式

AT+CMODE=1 # 设置蓝牙为任意设备连接模式

AT+PSWD= # 设置蓝牙匹配密码

正常情况下,命令发送后,会返回 OK ,如果没有返回任何信息,请检查接线是否正确,蓝牙模块是否已经进入 AT 模式,如果上述两点都没有问题,可能是蓝牙模块的问题,可以找蓝牙模块供应商咨询。

设置完毕后,断开电源,再次通电,这是,蓝牙模块指示灯会快速闪烁,这表明蓝牙已经进入正常工作模式。

利用 Andorid 手机连接 Arduino 并控制 LED灯开关

我们完成了对蓝牙模块的设置后,我们将做一个可以通过手机蓝牙连接,控制 Arduino 开关 LED 灯的小实验。

Arduino 电路设计

这里的电路设计比较简单,主要是两部分:

Arduino 与 HC05 模块连接

Arduino 与 LED 连接

这里有两点需要注意,Arduino 上的 TXD 应与 HC05 模块上的 RXD 端连接,Arduino 上的 RXD 应与 HC05 模块上的 TXD 连接。

在下面的图例中,我的 LED 是直接连接在 Arduino Pin13 上,而实际电路连接中,因根据连接的 Led 灯的设计考虑是否需要串联电阻。

Hc05_Led.jpg

Arduino 蓝牙控制 LED 灯 程序设计

Arduino 程序代码如下:

void setup()

{

// 设置波特率为 38400

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,来测试我们的试验是否成功。

参考资料

hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接相关推荐

  1. 如何使用Arduino和HM-10蓝牙模块实现Android App控制LED

    蓝牙是最受欢迎且易于使用的无线技术之一.几年来,蓝牙标准进行了许多升级,以跟上当前正在发生的技术改变与未来技术的步伐,并满足用户的需求.从蓝牙1.0版本到蓝牙5.0版本,有很多变化,包括更高的数据速率 ...

  2. 蓝牙模块HC-05 AT指令使用以及两个蓝牙模块的配对

    蓝牙模块用的就是某宝常见的蓝牙模块,首先要将蓝牙模块进入AT模式,按住蓝牙按键后再通电就会进入蓝牙的AT模式,进入AT模式后蓝牙led慢闪,然后就可以利用TTL或者J-Link与串口助手给模块发送AT ...

  3. Android端 同 单片机 利用蓝牙模块的通信实现

    这次期末的课程设计做了一个智能灯光控制系统,系统整体的功能不在此赘述,系统主要是要实现下位机同上位机的通信,上位机选用的是Android手机端,下位机是52单片机,通过蓝牙模块实现通信.虽然系统很简单 ...

  4. Arduino使用HM-10蓝牙模块向uniapp小程序推送数据采坑总结

    序言 序言不会写,怎么简单怎么来,主要讲蓝牙向手机app传递数据怎么爬坑 概括 Ble蓝牙和uniapp数据互传的玩法,一般都是以下几步 1.初始化蓝牙 uni.openBluetoothAdapte ...

  5. 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...

    蓝牙模块作为一种能提供蓝牙通信,进行蓝牙互联的通信模块,之所以能够不用考虑使用位置或使用方向就可以顺利完成短距离的数据传输,就是因为有一个很重要的天线零部件承担着发射和接收指令的使命,由于目前的技术尚 ...

  6. 蓝牙模块通信c语言,求一个蓝牙模块发送数据的例子

    #include #include #define uchar unsigned char #define uint unsigned int /******led定义*******/ sbit le ...

  7. 【蓝牙模块】多主多从蓝牙模块介绍

    蓝牙模块测试:多主多从模块测试步骤 FR8016HA_Module 透传模块介绍 蓝牙模块测试:多主多从测试 *有需要的可以联系:13631472459* 模块图片 FR8016HA_Module 透 ...

  8. 蓝牙模块怎么指定查询另一个蓝牙模块_拆解报告:亚马逊10.or Buds真无线蓝牙耳机...

    10.or(十或)是亚马逊旗下的一个注册品牌,近期该品牌推出了一款TWS真无线耳机10.or Buds,耳机和充电盒体积小巧,表面采用亲肤橡胶材质提升触感. 10.or Buds内置蓝牙5.0芯片,单 ...

  9. idea编译android模块,Android IntelliJ IDEA 14.1:模块没有主类

    当我使用IntelliJ IDEA 14时,我以前有一个工作正常的android项目.我可以通过按播放按钮运行该项目,然后它将在我的设备上安装并启动该应用程序. 我最近更新为14.1.该代码似乎仍然可 ...

  10. android获取已配对的蓝牙列表和已连接蓝牙设备

    private void getPairBLEAndConnectBLE() {BluetoothAdapter defaultAdapter = BluetoothAdapter.getDefaul ...

最新文章

  1. java 二分查找
  2. 全球首个自适应机械臂:精准抗干扰,斯坦福华人团队打造
  3. Java static、 final修饰符
  4. java gui变量_关于java:静态/类变量和GUI
  5. Sonic-UI自动化用例编写教程与建议
  6. 编程到底难在哪里?—— 《人月神话》阅读分享
  7. catia如何测量毛料尺寸_CATIA建模规定
  8. 时间序列分析实验报告总结_时间序列分析实验报告
  9. 七上八下猜数字_《脑筋急转弯》
  10. double d C语言,1,若有以下定义,char a;int b;float c;double d;... 若有以下语句,则正确的描述是,C语言...
  11. 键盘忍者:无需鼠标即可启动任何应用程序
  12. 【翻译】Ionic的刷新器-Refresher官方文档翻译
  13. 收藏夹吃灰了:GitHub 上值得收藏的100个精选前端项目!
  14. python教程贪吃蛇_python实现贪吃蛇小游戏
  15. 【前端】javascript实现导航栏筋斗云效果特效
  16. 正则表达式输入框验证正整数、负整数、小数点
  17. 支付宝数字化经营能加盟吗?真实情况原来是这样!(深度好文)
  18. Business Transaction Events BTE 增强
  19. condition_variable的使用以及与锁的关系
  20. [转]量化必读:Tick 数据到底是什么?为什么很难找到可靠的交易数据?

热门文章

  1. C盘根目录出现msdia80.dll解决办法
  2. win10电脑打开计算机快捷键,win10如何打开计算器工具 快速打开Win10计算器的四种方法...
  3. QCOM和其他常见芯片平台术语缩写
  4. 如何将本地项目上传到码云
  5. 盘点python socket 中recv函数的坑
  6. 警察招计算机科学与技术专业,山西警官高等专科学校计算机科学与技术系
  7. .reg注册表文件的编写
  8. 通过.reg文件修改注册表
  9. CentOS下安裝iRedMail
  10. VS 格式化代码快捷键