蓝牙通信可调节智能灯具的设计

2021-03-19 01:17:52大连海洋大学信息工程学院梅子帆马占军
电子世界 2021年3期
关键词:灯具蓝牙智能家居

大连海洋大学信息工程学院 梅子帆 马占军

本文是以智能家居为出发点,旨在研究一款基于蓝牙通信的可调节智能灯具,在满足用户照明需求的同时,采用Bluetooth SPP和HID协议,并且通过不同节点的相应配置,设置配置端、服务端和客户端,开发相应的操作APP,实现手机等移动终端的远程遥控,灯的亮度和颜色的调节和挑选,具有非常广泛的前景和推广价值。

随着科技的进步和人们对智能生活的渴望,智能家居便在此种呼唤中应用而生,特别是对智能灯的设计研究,也进行的如火如荼,但是大多数智能灯具的设计重点在多数情况下侧重于智能控制,对于绿色节能方面考虑较少,因此开发出一种节能减排,又可以智能化控制的灯具是当前市场号召所需。

1 系统结构设计硬件

本设计是手机等移动终端为出发点,设计一款APP,实现对台灯的智能控制。在要实现对灯的控制时,秩序打开APP,与此同时打开蓝牙,实现与灯的配对连接,而后通过进行操作手机APP的相关功能设计,将指令传输给单片机,单片机在通过接受到的指令对做出相应的动作,从而实现对等的远程遥控。

本设计主要包含四部分硬件:CC2541蓝牙模块,STC89C52RC单片机模块,LED智能驱动照明模块和电源管理模块。总体框图如图1所示。

图1 系统硬件结构图

2 系统软件设计

Android端

MainAty:

获取蓝牙适配器,蓝牙适配器通过搜索获取适配蓝牙信息

private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

如果手机没打开蓝牙,则界面跳转至打开蓝牙界面。

@Override

protected void onStart() {

super.onStart();

if (mBluetoothAdapter != null && !mBluetoothAdapter.isEnabled()) {

Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivity(intent);

}

在蓝牙匹配阶段,一般是蓝牙获取适配前期曾匹配过得蓝牙设备。

if (devices != null && devices.size() > 0) {

data.clear();

for (BluetoothDevice device : devices) {

HashMap map = new HashMap<>();

map.put(“lv_left_icon”, R.drawable.lv_left_icon);

map.put(“lv_address”, device.getAddress());

map.put(“lv_right_icon”, R.drawable.lv_right_white);

data.add(map);

}

} else {

HashMap map = new HashMap<>();

map.put(“lv_left_icon”, R.drawable.lv_left_icon);

map.put(“lv_address”, “没有已经匹配的设备”);

map.put(“lv_right_icon”, R.drawable.lv_right_white);

data.add(map);

mTextView.append(“没有已经匹配的设备” + “ ”);

}

simpleAdapter.notifyDataSetChanged();

连接指定的蓝牙:通过调用BluetoothTool连接蓝牙,我们传入了设备的地址"(String) data.get(0).get(“lv_address”)"以及连接类型BluetoothTool.ServiceOrClient.CLIENT。

builder.setPositiveButton(“连接”, new DialogInterface.OnClick-Listener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

mBluetoothTool = new BluetoothTool((String) data.get(0).get(“lv_address”),

BluetoothTool.ServiceOrClient.CLIENT);

mBluetoothTool.SetOnIUpdateUI(new IUpdateUI() {

@Override

public void updateListViewDevices() {

for (int i = 0; i < data.size(); i++) {

if (i == index) {

data.get(i).put(“lv_right_icon”, R.drawable.checked);

continue;

}

data.get(i).put(“lv_right_icon”, R.drawable.lv_right_white);

}

客户端线程:

private class ClientThread extends Thread {

@Override

public void run() {

super.run();

try {

mClientSocket = mDevice.createRfcommSocketToServiceRecord(

UUID.fromString(“00001101-0000-1000-8000-00805F9B34FB”));

Message msg = Message.obtain(null, MSG_UPDATE_LOG);

msg.obj = “正在连接。。。”;

mHandler.sendMessage(msg);

mClientSocket.connect();

msg = Message.obtain(null, MSG_UPDATE_LOG);

msg.obj = “连接成功”;

mHandler.sendMessage(msg);

msg = Message.obtain(null, MSG_UPDATE_LISTVIEW);

mHandler.sendMessage(msg);

/** 接收数据*/

mReadThread = new ReadThread();

mReadThread.start();

} catch (IOException e) {

e.printStackTrace();

Message msg = Message.obtain(null, MSG_UPDATE_LOG);

msg.obj = “连接失败”;

mHandler.sendMessage(msg);

可以看到线程一直在查看有没有数据,如果有的话就接受,并根据接收到的数据进行相应的显示。

3 系统解决关键问题

(1)本设计能够实现手机对LED灯的远程控制,通过将灯置于蓝牙接收范围内,通过手机等移动设备对灯发出指令,调节灯亮度以及开关状态。

(2)本设计能够实现多种光色和光照强度的调节,用户可以根据工作所需和自然光照情况。

4 不足之处与展望

(1)由于蓝牙连接的距离限制,不能实现更远距离的控制。

(2)本设计并没有考虑LED灯启动的问题。

猜你喜欢
灯具蓝牙智能家居
蓝牙音箱的直线之美
工业设计(2022年7期)2022-08-12 13:18:58
灯具
建筑与预算(2022年2期)2022-03-08 08:40:58
◆ 灯具
灯具
建筑与预算(2020年9期)2020-10-13 12:06:18
◆ 灯具
建筑与预算(2020年8期)2020-09-04 08:28:56
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于Zigbee的无线通信技术在智能家居中的应用
电子制作(2018年1期)2018-04-04 01:48:28
紧急:蓝牙指尖陀螺自燃!安全隐患频出
玩具世界(2017年8期)2017-02-06 03:01:38
关于智能家居真正需求的探讨
工业设计(2016年10期)2016-04-16 02:44:05