Arduino通过蓝牙模块HC-06连接Android手机并且串口输出显示

实验效果

使用HC06蓝牙模块和Android手机实现蓝牙连接,在APP上发送数据,通过PC上的Arduino IDE串口监视器查看接收到的数据

元件说明

HC-06是一款常用的低功耗蓝牙串行通信模块,广泛应用于短距离无线通信领域。它可以很容易地与Arduino或其他微控制器连接,实现蓝牙无线通信。

HC-06模块特点包括:

  • 串行通信接口,使用简单的串行指令就能进行配置。
  • 支持蓝牙2.0协议。
  • 工作频率为2.4GHz ISM频段。
  • 默认波特率为9600bps,但可以配置。
  • 工作电压通常在3.3V至6V之间。
  • 能够作为从设备与蓝牙主设备(如智能手机)进行配对。

使用HC-06模块时,通常需要先通过AT指令设置模块的名称、密码等参数,然后就可以进行数据的发送和接收了。在实际应用中,它可以用于远程控制项目,如无线遥控车、智能家居系统等。

通过手机进行通信是可以实现很多遥控功能,虽然距离是比较短,一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。

这次使用的是蓝牙HC-06从模块,就是从机模块,这都因为买之前没有问清楚什么叫从什么叫住。所以在这解释一下,如有错误请指正。谢谢

HC-05是主从模块,能做主机,从机。
HC-06是从模块,只能做从机。

主机可以与从机配对,
从机不能和从机配对。
如果要两个单片机通信,那就至少一个是有主机功能的,要是两个都是从机是通信不了的。

其他型号说明:

  • HC03工业级主从
  • HC04工业级从
  • HC05民用级主从
  • HC06民用级从

资料上写,HC06空旷的传输距离是10米。买的时候要搞清楚自己的需求了。

引脚说明

HC-06蓝牙模块通常有以下几个主要引脚,它们的功能如下:

  • VCC:电源正极接口,用于给模块供电。一般需要连接3.3V至6V的直流电源。

  • GND:电源负极接口,用于接地。

  • TXD(Transmit Data):发送数据引脚,用于将数据从HC-06发送到微控制器的RX(接收)引脚。

  • RXD(Receive Data):接收数据引脚,用于接收来自微控制器TX(发送)引脚的数据。

  • STATE:状态引脚,可用于指示蓝牙模块的连接状态。当有设备与HC-06成功配对并连接时,该引脚会输出高电平。

BOM

  1. 蓝牙模块 HC06 x1
  2. arduino uno x1
  3. 安卓手机 x1

接线图

Arduino 引脚 <-> HC06 引脚
5V <-> VCC
GND <-> GND
1 <-> TXD
0 <-> RXD

完整程序

这是一个非常简单测试程序,主要是当串口有数据,并且是'A'的情况下,则num加1,并在也在串口中显示出来。

int num = 0;

void setup()
{
 Serial.begin(9600);
}

void loop()
{
  while(Serial.available())
   {
     char c=Serial.read();
      if(c=='A')
        {
          num++;
          Serial.print("Hello:num=");
          Serial.println(num);
        }
   }
}

把程序上传到Arduino Uno

手机开始测试

1,安装测试用的蓝牙APP

安卓APP: Amarino_2_v0_55

下载地址:http://code.google.com/p/amarino/downloads/detail?name=Amarino_2_v0_55.apk&can=2&q=

amarino 主页:http://www.amarino-toolkit.net/

2,打开APP 可以搜索到蓝牙模块

3,进行蓝牙模块的配对

进行连接的时候会提示进行配对,输入1234就可以了,如果不行可以试试0000

配对成功后,蓝牙模块的LED灯也变成了常亮。

然后点击右下角的Monitoring按钮。

4,发送数据

在输入框中输入A,按Send,则可发送数据给Arduino Uno

5,在串口监视器中查看

程序实现就是,接受到数据并且为A,则num+1,在APP中多发送几次则显示不断累积的num数据。