找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 lxf 于 2020-8-15 10:27 编辑

48 HC-06蓝牙模块的使用

目标

1、HC-06蓝牙模块的连接使用
2、制作手机APP,通过HC-06蓝牙模块控制点亮和新LED灯

实验材料

Arduino UNO开发板
HC-06蓝牙模块
LED发光模块
配套USB数据线
配套杜邦线若干
Arduino IDE软件
APP Inventor软件
手机/平板

微信图片_20200720144033.png

内容

手机App蓝牙连接控制点亮LED灯:手机App点击open按钮时,绿色 LED 灯亮起,点击close按钮时,绿色 LED 灯熄灭。

过程一、App 制作手机连接HC-06 蓝牙模块,按钮控制点亮和熄灭LED灯

1、App 组件设计:

登录App inventor界面之后,新建一个项目,在组件布局中使用三个水平布局、一个列表选择框、一个标签、两个按钮和一个蓝牙客户端模块,将列表选择框和标签的属性文本分别设置为连接蓝牙设备和尚未连接,将两个按钮的属性文本分别设置为open和close,将标签重命名为状态显示,将两个按钮重命名为open和close。

图片12.png
App组件设计)

2、App 逻辑设计:

微信图片_20200720144152.png
App逻辑设计)

3、App中打包APK并显示二维码下载,下载成功后打开App:

微信图片_20200720144316.png
(打开手机App界面)

4、点击连接蓝牙设备,选择相对应的蓝牙进行连接

微信图片_20200720144422.png
(手机App蓝牙连接选择界面)

5、蓝牙连接成功后显示连接成功:

微信图片_20200720144923.png
(手机App蓝牙连接成功界面)

备注:APP制作完成后下载,进入APP连接蓝牙设备前,手机和HC-06蓝牙模块需先进行连接

过程二:硬件连接及Arduino IDE程序编写

当Arduino uno接收到数据“open”时,LED 灯亮起,当接收到数据close时,LED 灯熄灭。

接线图

图片17.png

接线方式

Arduino UNO     <------>   HC-06蓝牙模块
            5V            <------>           VCC
          GND          <------>           GND
          RX←0        <------>           TXD
          TX→1        <------>           RXD
Arduino UNO      <------>   LED发光模块
           5V             <------>           VCC
        GND            <------>           GND
          6               <------>              IN

程序实现代码

  1. String item;   //声明一个字符串变量item
  2. void setup(){
  3.   item = "";  //变量item赋值为空
  4.   Serial.begin(9600);  //设置串口波特率为9600
  5.   pinMode(6, OUTPUT);  //定义6号引脚为输出
  6. }
  7. void loop(){
  8.   if (Serial.available() > 0) {     //如果串口收到字符数大于零,即串口接收到数据
  9.     item = Serial.readString();   //那么将获取串口接收到的数据赋值给变量item
  10.     if (item == "open") {       //判断如果串口接收到的数据为“open”
  11.       digitalWrite(6,HIGH);     //那么将6号引脚设置为高电平,即LED被点亮
  12.     } else if (item == "close") {  //如果串口接收到的数据为“close”
  13.       digitalWrite(6,LOW);   //那么将6号引脚设置为低电平,即LED熄灭
  14.     }
  15.   }
  16. }
复制代码

备注:程序上传时把 HC-06蓝牙模块的TXD和RXD连接杜邦线先从Arduino UNO 的RX←0 和TX→1处拔掉

Serial.available()

描述:判断串口缓冲区的状态,返回从串口缓冲区读取的字节数。
原型:Serial.available()
参数:无
返回值:可读取的字节数

Serial.read()

描述:读取串口数据,一次读一个字符,读完后删除已读数据。
原型:Serial.read()
参数:无
返回值:返回串口缓存中第一个可读字节,当没有可读数据时返回-1,整数类型。
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册