为了创造温馨愉悦的居家环境,解决目前智能家居存在的网络连接复杂、控制信号不稳定的问题,设计一种基于蓝牙无线通信技术的智能家居音乐控制系统。系统采用ArduinoUNOR3作为主控器,BluetoothBee蓝牙无线数传模块作为通信模块,通过智能终端App控制MP3播放器,实现不同曲目间的有序播放。测试结果显示,该系统实现了智能控制的功能,可以极大地提升家居的智能化水平。
1概述
伴随着科技的迅速发展,万物互联的时代已进入我们的生活。物联网技术的发展,使人们对居家环境的要求越来越高,搭载物联网技术的智能家居将会给大家带来不一样的体验。智能家居是以住宅为平台,将传感器技术、网络通信技术、嵌入式技术及自动控制技术应用到住宅中,使住宅中的各项家居设施关联在一起,进而实现家居生活的智能化控制,使居家环境更加温馨、舒适。设计一种基于蓝牙无线通信技术完成智能家居背景音乐的控制系统,实验表明,将蓝牙技术应用于智能家居控制能够与家居环境高度契合,有效提升智能家居用户体验。
2系统方案
系统总体方案如图1所示。主控板的型号为Ar-duinoUNOR3,是整个系统的信息处理中心;传感器扩展板对主控板的引脚和功能进行延伸和扩展;MP3播放模块的型号为DFRduinoPlayer,是一种解码功能十分出色的语音处理模块,接收主控板发送的指令,播放对应的歌曲;蓝牙模块可以实现短距离无线通信,是智能终端与Arduino主控板进行通信的桥梁;智能终端安装专用的App程序,利用其自带的蓝牙模块与Arduino端建立无线通信,向Arduino端发送命令,以控制播放哪首歌曲。
3系统硬件
3.1Arduino控制器
ArduinoUNO是基于ATmega328的微控制器板,是比较常用的开源硬件。它有14个数字I/O引脚、6个模拟输入引脚、16MHz陶瓷谐振器、IIC接口和复位按钮。它包含微控制器所需的一切功能,只需使用USB线缆将其连接到计算机就可开始工作。其软件开发平台为ArduinoIDE,编程语言类似于C/C++,可以实现各种智能产品的开发。
3.2Arduino扩展板
传感器扩展板采用叠层设计,扩展板不仅将Ar-duinoUno的全部数字与模拟接口以线序形式扩展出来,还特设复位按钮、蓝牙无线数传接口、RS485接口(D0-RX、D1-TX、D2-EN)、IIC/TWI接口(A4-SDA、A5-SCL)、12864液晶串行与并行接口、SD卡模块接口、3.3V输出端口,独立扩展更加易用。对于电子技术知识较薄弱的初学者来说,不再为繁琐复杂电路连线而头疼,这款传感器扩展板真正意义上实现了电路简化,能够很容易地将常用传感器连接起来。完成电路连接后,编写相应的Arduino程序下载到Arduino主控板中就可轻松完成各种互动作品。
3.3蓝牙模块
BluetoothBee蓝牙无线数传模块采用XBEE造型设计,体积尺寸紧凑,兼容传感器扩展板底座,适用于各种3.3V的单片机系统,模块可以使用AT指令设置主从模式、波特率、配对密码、用户信息等。
3.4MP3播放模块
DFRduinoPlayerMP3语音播放模块支持的音频格式有WAV、MP3、MIDI,支持的通信方式有串口(UART)、IIC。串口通信默认的波特率是19200bps,I-IC通信的地址为0X35。插在MP3播放模块上的SD卡需先格式化为FAT格式,并在根目录下新建sound文件夹,将音频歌曲文件存放在sound文件夹内,如图5所示。由于Arduino主控板通过蓝牙向智能终端发送的是字符的ASCII码,而这种传输方式不适合中文汉字传送,所以需为中文歌曲文件命名为英文名或汉语拼音名。sound文件夹内6首歌曲如下:GHSY(光辉岁月)、WQS(忘情水)、GXDY(故乡的云)、PYBK(朋友别哭)、KLLJ(快乐老家)、XF(小芳)。其指令格式如表1所示。
3.5吸顶喇叭
吸顶喇叭被放在天花板上,将线材隐藏于无形,接收MP3模块输出的音乐进行播放,给居家创造和谐轻松的氛围。如图6所示。传感器扩展板插在Arduino主控板上,蓝牙模块插入扩展板的Xbee插槽内,MP3播放模块的+5V、GND、SCL、SDA接到传感器扩展板的IIC接口上,MP3模块的音频输出接到吸顶喇叭上,并在MP3模块上插入已下载音乐的SD卡。在扩展板上通过跳线帽选择IIC通信模式。
4系统软件
4.1Arduino端程序代码
Arduino主控板代码中保存有歌曲清单,当智能终端向Arduino端发送索取歌曲清单指令时,将歌曲清单传送给智能终端,智能终端读取后在相应组件显示歌曲名,以备播放歌曲使用。主控板与智能终端之间的通信协议为:主控板收到100向智能终端发送歌曲清单;主控板收到1~6,播放第一首到第六首歌曲之中的某一首;主控板收到7播放上一首歌曲;主控板收到8播放下一首歌曲;主控板收到9暂停播放;主控板收到10继续播放。
4.2智能终端程序代码
智能终端的App采用AppInventor进行编程,它是一种图形化编程工具,功能强大,可快速开发Android系统应用程序。4.2.1蓝牙连接“连接蓝牙”按键应在“搜索蓝牙”完成后被激活。图7代码完成智能终端与Arduino主控板的蓝牙连接,以实现后续无线通信。4.2.2“歌曲X”键。定义两个全局变量,number用于存放当前正在播放歌曲的序号,playbill用于存放歌曲名。当“歌曲1”后面的按钮被按下时,如果其有节目,则通过蓝牙向Arduino发送播放歌曲1的命令,并同时在当前播放歌曲组件上显示当前播放歌曲的名称,将播放歌曲的序号改变为当前序号,如图8所示。歌曲2到歌曲6的代码设计同歌曲1。4.2.3“刷新”键点击。“刷新”按钮,智能终端通过蓝牙向Arduino发送索取节目单命令,并判断蓝牙是否收到数据。如果收到数据,将歌曲名称在相应组件进行显示,同时将歌曲名称保存到数据库中。由于从Arduino主控板发送的每个歌曲名称后面都带有回车符和换行符,所以歌曲名称的长度是19字节,最后的两个字节对智能终端来说是无用的,可以只接收而不处理。部分代码如图9所示。4.2.4“上一首”、“下一首”键点击“上一首”按钮,向Arduino主控板发送相应命令,同时更新“当前播放歌曲”所显示的内容为新歌曲,将播放歌曲的序号改变为新序号。部分代码如图10所示。“下一首”键的设计方法与“上一首”键相同,部分代码如图11所示。4.2.5“暂停/播放”键。变量fre用于记录“暂停/播放”键按下的是奇数次还是偶数次,如果是奇数次被按下,则向Arduino发送“暂停”命令;如果是偶数次被按下,则向Arduino发送“继续播放”命令。如图12所示。4.2.6App初始化初始化时先将“连接蓝牙”键失能,待“搜索蓝牙”配对完成后,再将其激活使能,以完成通信双方的连接。从数据库中获取歌曲清单,如果数据库中有数据,将歌曲清单传送到相应的组件进行显示;如果数据库中没有数据,通过点击“刷新”按钮获取歌曲清单。部分代码如图13所示。4.2.7智能终端程序运行。在智能终端运行程序的实际效果如图14所示。
5结语
设计基于ArduinoUNOR3微控制器、蓝牙模块、MP3播放模块及智能终端的家居音乐控制系统,可以进行本地无线触控操作。经运行验证表明,该系统简单易用、延时极小、运行稳定。曼妙轻柔的音乐萦绕在身边,营造一种温馨的居家氛围,提高了人们的生活质量。
《一种基于智能终端的家居背景音乐控制系统》来源:《电脑编程技巧与维护》,作者:崔俊