掌控板与手机端通过蓝牙通信及控制LED灯颜色

掌控板与手机端通过蓝牙通信及控制LED灯颜色

一、掌控板与手机端通过蓝牙通信

1. 在Arduino IDE的文件菜单下找到示例下的BluetoothSerial中的SerialToSerialBT,修改代码后,将其保存为SerialToSerialBT.ino文件,内容如下:

c 复制代码
#include "BluetoothSerial.h"

String device_name = "ZhangKongBan";
BluetoothSerial SerialBT;

void setup() {
  Serial.begin(115200);
  SerialBT.begin(device_name); 
  Serial.println("The device is started.\nNow you can pair it with Bluetooth!\n");
}

void loop() {
  if (Serial.available()) {
    SerialBT.write(Serial.read());
  }
  if (SerialBT.available()) {
    Serial.write(SerialBT.read());
  }
  delay(20);
}

将代码上传到掌控板中,并打开串口监视器,运行结果如图1所示,表明掌控板的蓝牙设备已经开始等待配对连接了。


图1 串口监视器显示的运行结果

2. 访问https://apkshki.cn.com/app/serial-bluetooth-terminal,下载Serial_Bluetooth_Terminal.apk文件,在手机端安装此app。安装完成后,打开Serial_Bluetooth_Terminal app,界面如图2所示。


图2 Serial_Bluetooth_Terminal app界面

3. 手机与掌控板的蓝牙配对

点击图标,再点击图标。再选择Devices,如图3所示。在出现的蓝牙列表中选择名为ZhangKongBan的蓝牙设备,如图4所示。当手机端显示"Connecting to ZhangKongBan...,Connected"时,表明手机与掌控板的蓝牙配对成功,如图5所示。


图3 Serial_Bluetooth_Terminal选项设置界面


图4 手机端的蓝牙列表


图5 蓝牙配对成功界面

当在手机端输入hello,则在串口监视器中显示hello,如图6所示。在串口监视器中输入ok,在手机端显示ok,如图7所示。至此,手机和掌控板通过蓝牙通信完成。


图6 串口监视器显示接收"hello"界面


图7 手机端接收"ok"界面

二、手机通过蓝牙控制掌控板上的led灯颜色

1. 代码准备与上传

在Arduino IDE中,编写如下代码:

c 复制代码
#include <Arduino.h>  // 引入Arduino核心库,提供基本的输入输出功能
#include <Adafruit_NeoPixel.h>  // 引入Adafruit NeoPixel库,用于控制可寻址的RGB LED灯带
#include "BluetoothSerial.h"

#define PIN 17    // 定义连接到NeoPixel灯带数据输入端的Arduino引脚
#define NUM_LEDS 3  // 定义灯带上LED的数量
// 初始化NeoPixel灯带对象,指定LED数量、连接的引脚和颜色顺序
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

String device_name = "ZhangKongBan";
BluetoothSerial SerialBT;

String message = "";
char incomingChar;

void setup() {
  strip.begin();  // 初始化NeoPixel库,配置引脚和LED数量等
  Serial.begin(115200);
  SerialBT.begin(device_name); 
  Serial.println("The device is started.\nNow you can pair it with Bluetooth!\n");
}

void loop() {

  if (SerialBT.available()){
    char incomingChar = SerialBT.read();
    if (incomingChar != '\n'){
      message += String(incomingChar);
    }
    else{
      message = "";
    }
    Serial.write(incomingChar);  
  }
  // Check received message and control output accordingly
  if (message =="blue"){
    strip.setPixelColor(0, 0, 0, 50);  // 设置第一个LED为蓝色
    strip.show();  // 发送数据到灯带,更新LED的颜色
    
  }
  else if (message =="red"){
    strip.setPixelColor(0, 50, 0, 0);  // 设置第一个LED为红色
    strip.show();  // 发送数据到灯带,更新LED的颜色
  }
  delay(20);
}
  1. 手机端控制LED灯颜色

在手机端Serial_Bluetooth_Terminal APP中,与掌控板进行蓝牙配对。配对成功后,在APP中输入bluered,掌控板的第一个LED灯的颜色就会在蓝色和红色之间切换。

为了方便操作,可以在APP中设置宏按钮。长按APP下面的M1按钮,将Name设置为red,Value也设置为red;同样设置M2为blue。设置完成后,点击redblue按钮即可快速设置LED灯的颜色。


图8 M1按钮的宏设置


图9 手机端界面输入blue或red

注意事项
  1. 确保掌控板与手机端都已开启蓝牙功能,并处于可配对状态。
  2. 在输入控制指令时,注意指令的拼写和格式,确保与代码中的判断条件一致。
  3. 掌控板上的LED灯数量和连接引脚需根据实际情况进行配置。

通过以上步骤,您可以实现手机通过蓝牙控制掌控板上的LED灯颜色。

相关推荐
清风6666665 小时前
基于单片机的锅炉压力与温度监测报警系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭9 小时前
基于单片机的鱼缸监测与远程管理系统设计
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
清风66666610 小时前
基于单片机的罐体压力控制器设计与实现
单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业
老梁agent10 小时前
LangChain4j AiServices 深度解析:声明式 Agent 编程的魔法背后
物联网·ai编程
点灯小铭10 小时前
基于单片机的热量计测量系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
wengqidaifeng11 小时前
嵌入式小白第三站:UART、I2C、SPI、ADC 怎么学?从传感器读数到完整小项目
stm32·单片机·嵌入式硬件·51单片机
振南的单片机世界13 小时前
HAL_Delay(1000)真准吗?SysTick的1ms基准从哪来
arm开发·stm32·单片机·嵌入式硬件
项目題供诗16 小时前
STM32-ADC模数转换器(十八)
stm32·单片机·嵌入式硬件
_YouziTech_17 小时前
【STM32】U8G2图形库应用--菜单设计与开发
stm32·单片机·嵌入式硬件·oled·开机动画·图形库
国科安芯18 小时前
商业航天级抗辐照全双工RS-485/RS-422收发器ASM491S2Y的技术特性与应用研究
运维·网络·单片机·嵌入式硬件·安全·架构·安全性测试