有没有想过用手机就可以控制家里的灯或者其它设备呢?那么,今天就来教一下大家如何使用蓝牙来控制一个LED灯,这篇教程里,大家主要需要学会如何使用蓝牙模块的使用。
在学习蓝牙模块通信之前,你需要学习一些预备知识:
1.软件模拟串口通信-SoftwareSerial库使用
在arduino主板上除了硬件串口外,还可以通过调用软件库,将普通数字引脚模拟为串口通信引脚。其功能主要如下:
1)在多硬件串口有限情况下使用更多的串口通信设备
2)当需要通过串口对蓝牙等进行调试时避免串口冲突,烧录程序时无需断开连接
SoftwareSerial类的构造函数,通过它可指定软串口RX、TX引脚。
语法:
SoftwareSerial mySerial= SoftwareSerial(rxPin, txPin)
SoftwareSerial mySerial(RxPin, TxPin)
参数:
mySerial:用户自定义软件串口对象
rxPin:软串口接收引脚
txPin:软串口发送引脚
目录
材料准备
- Arduino UNO× 1
- LED(通用)× 1
- 电阻221欧姆× 1
- android手机
- Android设备× 1
- HC 05蓝牙模块
原理介绍
蓝牙模块,是一种集成蓝牙功能的PCBA板,可用于数据传输。可以通过的手机蓝牙与蓝牙模块进行连接,并且进行数据的通信。
数据通信需要两个数据口,一个是发送的口TX ,一个是接收的口RX。在arduino硬件上对应1和0.
这个在最前面预备知识里讲到了这是硬串口,软串口就是预备知识里讲的需要使用一个库了,接下来的教程使用硬串口进行通信。
电路搭建
让我们开始搭建电路吧
电路简单小巧,只需很少的连接即可
- Arduino引脚蓝牙引脚
- RX(引脚0)—-> TX
- TX(引脚1)—-> RX
- 5V —-> VCC
- GND —-> GND
将LED负极连接到arduino的GND,将正极连接到引脚13,电阻值介于220Ω – 1KΩ之间。
开始编程
[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]
/*
作者:趣讨教(www.qutaojiao.com)
时间:2018 - 9 - 11
描述:通过蓝牙控制LED的亮灭
引脚连接:
Arduino引脚蓝牙引脚
RX(引脚0)----> TX
TX(引脚1)----> RX
5V ----> VCC
GND ----> GND
*/
char data = 0; //用于存储接收数据的变量
void setup()
{
Serial.begin(9600); //设置波特率
pinMode(13, OUTPUT); //设置13号脚为输出引脚
}
void loop()
{
if(Serial.available() > 0) // 仅在收到数据时发送数据
{
data = Serial.read(); //读取传入数据并存储到data中
Serial.print(data); //串行监视器中的查看打印的data存储的值
Serial.print("n");
if(data == '1') // 检查数据值是否等于1
digitalWrite(13, HIGH); //如果值为1,则LED亮起else if(data == '0') // 检查数据的值是否等于0
digitalWrite(13, LOW); //如果值为0,则LED熄灭
}
}
[/scu]
它是如何工作的?
HC 05/06适用于串行通信。当按下某个按钮时,Android应用程序被设计为将串行数据发送到蓝牙模块 。另一端的蓝牙模块接收数据并通过蓝牙模块的TX引脚(arduino的RX引脚)发送到ardunio。输入arduino的代码检查收到的数据并进行比较。如果接收数据为1,LED亮灯,则当接收数据为0时,LED灭
打开串行监视器并观察接收的数据:
Android应用程序安装
在本教程中,我将不介绍Android应用程序开发的教程。您可以从这里下载Android应用程序和整个项目的源代码
如何使用该应用程序?
首先需要下载安卓程序(需要解压):
效果演示
将您的设备与HC 05/06蓝牙模块配对
1)打开HC 05/06 蓝牙 模块
2)扫描可用设备
3)通过输入默认密码1234或0000配对HC 05/06
4)在Android设备上安装LED应用程序
5)打开应用程序
- 按配对设备
- 从列表中选择您的蓝牙模块 (HC 05)
连接成功后
按ON按钮打开LED,按OFF按钮关闭LED
断开连接按钮以断开与蓝牙模块的连接
思考与想法
这只是将蓝牙模块与arduino通信的基本教程 这个项目可以提升到更高的水平,如智能手机,智能手机控制的机器人等, 智能家居也不是不可以的 。