乐于分享
好东西不私藏

App-inventor 蓝牙通信 - RGB灯调光

App-inventor 蓝牙通信 - RGB灯调光

                                                   文 老道  |  版 workbuddy

一、任务与目标

任务:APP通过蓝牙通信进行 RGB灯调光。

任务目标:使用app-inventor制作一个可以配合单片机、低功耗蓝牙模块(HC08)ws2812彩灯模块等进行RGB灯调光的app

二、App制作

App的制作主要分为以下几个步骤:制作网站地址、创建新项目并导入扩展、Screen1组件设置、Screen2组件设置,各部分详细内容如下。

(一)制作网站地址

制作网站地址:http://code2.appinventor.mit.edu

                                  图 1App Inventor 制作网站入口

(二)创建新项目并导入扩展

创建新项目RGB,点击外部扩展”-“导入扩展,导入edu.mit.appinventor.ble-20230728(1).aix低功耗蓝牙模块插件,并添加如下组件。

扩展插件下载链接:
https://pan.baidu.com/s/1WIigHScODQnIogGKXk5mng?pwd=wdhs 提取码: wdhs

Screen1

                                                 图 2Screen1 设计界面

                                                      图 3Screen1 组件树

Screen2

                                           图 4Screen2 设计界面

(三)Screen1组件设置

组件

所属面板

布局

命名

属性

属性值

Screen

Screen1

水平对齐

居中

按钮

用户界面

Screen1

连接蓝牙

文本

连接蓝牙

标签

用户界面

Screen1

连接提示

文本

连接提示

文本输入框

用户界面

Screen1

接收文本框

表格布局

界面布局

Screen1

表格布局 1

宽度

充满

列数

3

行数

3

标签

用户界面

表格布局 1

标签 1

背景颜色

红色

文本

R

高度

5 比例

宽度

12 比例

标签

用户界面

表格布局 1

标签 2

背景颜色

绿色

文本

G

高度

5 比例

宽度

12 比例

标签

用户界面

表格布局 1

标签 3

背景颜色

蓝色

文本

B

高度

5 比例

宽度

12 比例

滑动条

用户界面

表格布局 1

滑动条 1

宽度

60 比例

最大值

100

最小值

0

滑动条

用户界面

表格布局 1

滑动条 2

宽度

60 比例

最大值

100

最小值

0

滑动条

用户界面

表格布局 1

滑动条 3

宽度

60 比例

最大值

100

最小值

0

按钮

用户界面

表格布局 1

开灯

文本

开灯

按钮

用户界面

表格布局 1

关灯

文本

关灯

BluetoothLE

外部扩展

Screen1

BluetoothLE1

计时器

传感器

Screen1

计时器 1

一直计时

勾选

启用计时

不勾选

计时间隔

1000

(四)Screen2组件设置

组件

所属面板

布局

命名

属性

属性值

按钮

用户界面

Screen2

再次扫描

文本

再次扫描

宽度

充满

列表显示框

用户界面

Screen2

扫描列表

高度

50 比例

BluetoothLE

外部扩展

Screen1

BluetoothLE1

三、逻辑设计

Screen1 逻辑设计:

                                    图 5:初始化与按钮点击事件

                                图 6:连接成功与计时器事件

                                 图 7:发送数据与滑动条事件

                               图 8:开灯/关灯事件

四、Arduino / STC15 单片机编程

arduino米思齐编程或stc15单片机编程(二选一均可)。

(一)arduino程序

                                             图 9Arduino 程序

接线:arduino和蓝牙模块进行连接,ArduinoWS2812彩灯模块连线如下表。(同行代表连接)

Arduino 开发板

蓝牙模块

WS2812 彩灯模块

5V

VCC

5V

GND

GND

GND

1 或 TX

RXD

0 或 RX

TXD

2

IN( 或 DIN)

(二)STC15F2K60S2单片机参考程序

main.c程序:

#include<stc15f2k60s2.h>#include<ws2812b.h>unsigned char RGB_DATA[3]={0,0,0};unsigned char JS;bit st=0;bit ys=0;char res_cnt=0;void UartInit(void)//9600bps@11.0592MHz{SCON = 0x50;//8位数据,可变波特率AUXR |= 0x40;//定时器1时钟为Fosc,即1TAUXR &= 0xFE;//串口1选择定时器1为波特率发生器TMOD &= 0x0F;//设定定时器1为16位自动重装方式TL1 = 0xE0;//设定定时初值TH1 = 0xFE;//设定定时初值ET1 = 0;//禁止定时器1中断TR1 = 1;//启动定时器1EA=1;ES=1;}void main(){UartInit();WS2812B_Set_Color_Light(1,50, 50, 0,10);WS2812B_Send_All();while(1){if(ys){WS2812B_Set_Color_Light(1,RGB_DATA[1],RGB_DATA[0], RGB_DATA[2],10);WS2812B_Send_All();}}}void tongxi() interrupt 4{if(TI) TI=0;if(RI){RI=0;JS=SBUF;if(st){RGB_DATA[res_cnt]=SBUF;res_cnt++;if(res_cnt==3){ys=1;res_cnt=0;st=0;}}if(JS==0XFF){st=1;}}}

ws2812b.cws2812b.h文件,可以使用库文件,将两个文件添加进去即可。

库文件下载链接:

https://pan.baidu.com/s/1EzEJqTLtNoMZ2nE1kExH4g?pwd=6p9t 提取码: 6p9t 

接线:STC15开发板和蓝牙模块进行连接

Arduino 开发板

蓝牙模块( HC08 )

流水灯

5V

VCC

GND

GND

P3.1

RXD

P3.0

TXD

P0.0

1

五、操作说明

手机把蓝牙打开,打开app,点击扫描设备,如有弹出权限请求,点击允许,找到HC-08点击连接。连接成功后效果如下:

                                        图 10:连接成功后效果

点击拖动滑块或点击开关灯按钮即可控制小灯。

六、思考和改进

1. 增加控制RGB灯数量。

2. 配合数据库将RGB灯的设置状态保存,下次打开app还原该状态。

附录:HC08蓝牙模块怎么修改配对名称?

蓝牙模块在不连接蓝牙的情况下为AT模式,可通过下面AT指令设置。

1USB转串口模块与hc08直接连接(不需要单片机),发送指令:AT+NAME=XXX

XXX为要修改的新名称,结尾无需添加回车换行符。

2)发送指令:AT+RX 查看模块各项信息。