蓝牙彩灯

蓝牙彩灯

目录

1 概述

2 原理

3 设备

4 准备

5 程序说明

6 硬件搭建

7 APP调试

8 视频

概述

通过专用的Android App控制灯光的颜色和亮度。当手机不连接蓝牙能够自动变幻颜色,手机接入后,就可以通过手机控制灯的任意颜色了。

600px

原理

系统判断手机蓝牙和mCookie-BT是否建立了连接。当连接时,系统接收手机App传给mCookie-BT的数据,并解析出来,从而控制彩灯的颜色。当蓝牙断开连接时,系统则进入设定好的彩灯变幻模式,除非有蓝牙连接,否则循环在设定的模式中。

600px

设备

模块

数量

功能

mCookie-CoreUSB/zh

1

核心板

mCookie-Hub/zh

1

传感器转接板

mCookie-BT/zh

1

蓝牙模块

Microduino-Color led/zh

1

彩灯

mCookie-BM/zh

1

电池管理

600px

准备

Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。

600px

Setup 2:点击Files > Examples > mCookie > _103_BLE_Light, 加载程序。或者下载:

600px

Setup 3:加载代码,选择好板卡和COM端口下载程序。

程序说明

蓝牙使用的是串口通讯,对于mCookie-CoreUSB来说,使用的是Serial1,因此定义了串口服务。

#define my_Serial Serial1

同时,蓝牙通讯的波特率(速度)为:9600,需要在setup()里面定义了串口通讯速率。

my_Serial.begin(9600);

彩灯控制说明

#define PIXEL_PIN A0 // Digital IO pin connected to the NeoPixels.

#define PIXEL_COUNT 6

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

PIXEL_PIN:彩灯的控制引脚,用户可以自己更改控制引脚,同时也要更改硬件连接。

PIXEL_COUNT:控制灯的个数,蓝牙控制最多可以控制6个,因为App蓝牙传输数据最多写了6个。

“#define xxx yy”函数:把“yy”的值赋予给“xxx”,上面函数也可以改成:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, A0, NEO_GRB + NEO_KHZ800);

“ble()”函数是用来接收并解析手机发送的数据,解析数据函数:

sscanf((char *)strstr((char *)buffer, "C:"), "C:%d,%d,%d,%d", &sta[0], &sta[1], &sta[2], &sta[3]);

从代码中可分析传输的协议为:“C:%d,%d,%d,%d”,并且将解析到的4个数据“%d”分别赋值给:sta[0], sta[1], sta[2], sta[3]。前三个数据分别为R,G,B的颜色值,最后一个则为控制模式选择。

将解析到的数据来控制灯的颜色变化

if (-1 == sta[3]) {

colorSet(strip.Color(sta[0], sta[1], sta[2]));

}

else if ((0 <= sta[3]) && (sta[3] < PIXEL_COUNT)) {

colorSet(strip.Color(sta[0], sta[1], sta[2]), sta[3]);

}

如果sta[3]的值为-1,所有连接的灯都是同一个颜色,为接收到的“sta[0], sta[1], sta[2]”组合而来的颜色,即手机上选的颜色。否则将可以单独控制6个灯的颜色。

当蓝牙连接时,会持续给BT发送“\n”的消息,只要有接收到则认为蓝牙一直在连接。并且给“color_en”赋值为真(true)。

if (c == '\n')

{

color_en = true;

safe_ms = millis();

}

蓝牙断开时,系统会在3S后让“color_en”的值为假(false)。开始执行自定义颜色变化,“!”表示非的意思。

if (millis() - safe_ms > 3000)//用户可以改时间,3000单位是ms,即3S

{

safe_ms = millis();

color_en = false;

}

“rainbowCycle(w, R, G, B, x);”函数使用说明,用户可以更改自己喜欢的颜色及方式。

w:颜色渐变延时时间;

R,G,B三基色;

x:“0”表示亮度从低到高渐变,“1”表示亮度从高到底渐变。

硬件搭建

Setup 1:程序代码控制用的是A0,所以将灯用连接线将LED灯安装到Hub模块的A0接口上。用户可以自己改。

600px

LED灯的连接方法如图,请注意连接顺序,从LED的IN接口接入,从OUT接口接出本应用最多可控制6个LED灯。

Setup 2:将激活后的电池盒与BM模块相连.

Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。

600px

APP调试

Setup 1:扫描左侧的二维码,下载Bluetooth Light APP。

IOS源代码下载:IOS_MLight

Setup 2:载安装App后,打开应用,如果没有打开蓝牙,系统会提示,选择打开。

600px

Setup 3:点击Scan,手机会开始搜索蓝牙设备,并显示在下方,选择名称为Microduino的设备.

600px

Setup 4:连接成功后,你就可以用手机来控制灯光了

600px

视频

相关推荐