首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Arduino 入门项目系列 (4) - Android 手机通过蓝牙远程控制 LED

Arduino 入门项目系列 (4) - Android 手机通过蓝牙远程控制 LED

作者头像
caoqi95
发布2019-03-28 11:24:56
发布2019-03-28 11:24:56
4K0
举报

上周鼓捣 Deepin 系统去了,就没认真学习,发文章。这周学习的是蓝牙模块的使用。实现蓝牙模块控制 LED 的开关。蓝牙模块的用处很多,主要用于数据的传输,可以通过其和传感器的联合使用,收集一些需要的数据并传到电脑上进行处理。

设置蓝牙

本人使用的蓝牙模块是 HC-05,由实验室的小伙伴友情提供。因为是他人使用过的,所以得进行初始化设置。

  • 进入 AT 模式:具体参考这篇文章:Arduino使用HC05蓝牙模块与手机连接
  • AT 模式的一些命令: 进入 AT 模式后,重新设置名称和密码,并将蓝牙设置为从模式,因为这个项目中,手机是主机。
代码语言:javascript
复制
AT+ORGL    # 恢复出厂模式
AT+NAME=Bluetooth    # 设置蓝牙名称为 Bluetooth
AT+ROLE=0    # 设置蓝牙为从模式
AT+CMODE=1    # 设置蓝牙为任意设备连接模式
AT+PSWD=1234    # 设置蓝牙匹配密码为1234

硬件准备

  • Arduino UNO 一个
  • 蓝牙模块 HC-05 一个
  • Android 手机
  • LED 一个
  • LCD 一块
  • 面包板一块
  • 连接线若干

软件准备

  • Arduino IDE
  • 在 Google APP Store 或者其他安卓市场下载 Arduino Bluetooth controler app

电路连接

LCD 的连线:VCC ——> 5V,GND ——> GND,SDA ——> A4,SCL ——> A5 LED 的连线:长脚 ——>先接个电阻,再连接 13,短脚 ——> GND 蓝牙的连线:VCC ——> 5V,GND ——> GND,RXD ——> TXD,TXD ——> RXD,这里需要注意蓝牙的 RXD 要与 Arduino 的 TXD 连接,TXD 要与 Arduino 的 RXD 连接,两者是交错连接的同时在烧录的时候,注意断开 TXD 和 RXD 的连接,要不然烧录的时候会受到干扰,继而会报错。

实现代码

Arduino_Learning/BluetoothControlLed

代码语言:javascript
复制
/*
 * 通过蓝牙用手机控制 LED,并在 LCD 上显示开关信息
 */
#include <LiquidCrystal_I2C.h>
#include <wire.h>

// 设置 LCD 
LiquidCrystal_I2C lcd(0x27, 16, 2);
// 设置 LED 引脚

int led = 13;
void setup() {
  pinMode(led, OUTPUT);
  // 将波特率设置为 9600
  Serial.begin(9600);
  // LCD 初始化
  lcd.init();
  // 打开屏幕背光
  lcd.backlight();
}

void loop() {
  if(Serial.available()>0){
    char c = Serial.read();
    if(c=='1'){
      digitalWrite(led, HIGH);
      lcd.setCursor(5,0);
      lcd.print("LED ON ");
      }
    if(c=='0'){
      digitalWrite(led, LOW);
      lcd.setCursor(5,0);
      lcd.print("LED OFF");
      }
     }
}

烧录代码

代码编译完没问题后,点击图中所选按钮将其上传至 Arduino UNO 板上。

手机设置

  1. 手机搜索蓝牙,输入密码并连接。
  1. 之后选择 Switch mode
  1. 对按键进行设置。
  1. 点击 APP 上的开关,就能够实现控制 LED 了。

实际结果

LED 打开:

LED 关闭:

心得总结

昨天晚上鼓捣了很久,都没有出现正确的结果,后来才发现,控制 LED 开关的时候波特率设置成了 38400,应该设置成 9600。而 38400 这个波特率是进入 AT 模式的波特率。这个也是一个需要注意的点。还有一个需要注意的就是烧录的时候一定要断开 TXD 和 RXD 的连接,要不然烧录会受到干扰,这个问题也困扰了我很久。

参考文章

[1]. Arduino使用HC05蓝牙模块与手机连接 [2]. Arduino and HC-05 Bluetooth Module Tutorial [3]. Arduino蓝牙模块HC-06错误

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.11.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设置蓝牙
  • 硬件准备
  • 软件准备
  • 电路连接
  • 实现代码
  • 烧录代码
  • 手机设置
  • 实际结果
  • 心得总结
  • 参考文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档