Arduino案例实战(卷Ⅳ)
上QQ阅读APP看书,第一时间看更新

2.3 功能及总体设计

本作品主要分为两个模块进行设计:音乐模块和联网模块。音乐模块的主要功能是实现音乐播放器的相关功能,读取SD卡中的音乐文件(MP3、WAV音乐文件)的解码、译码以及播放、暂停等功能;联网模块的主要功能是将控制端从计算机解放出来,实现本项目中“Free”的含义,用手机远程操纵时,能接收到命令,并返回相应的结果语句给客户端,达到方便快捷的目的。

2.3.1 功能介绍

用户只需将MP3或WAV文件存于SD卡中,便可通过手机APP以遥控或对话的形式对作品进行远程控制,实现播放、暂停、上/下一曲、停止、随机、音量+/-,以及播放生日歌、闹铃、火情通知、校园广播等特色功能。SD卡中的音乐文件格式较常规,从网上下载的歌曲无须转换格式就可以直接存入卡中等待播放。不同于其他音响,本音响可实现远程控制,还可以通过选定音乐编号来直接播放喜欢的音乐。

2.3.2 总体设计

要实现上述功能需要将作品分成两个模块进行设计:音乐模块和联网模块。音乐模块选用功能较全的DFPlayer Mini MP3播放器模块和兼容性较好的8GB SD卡;联网模块由ESP8266-01S和贝壳物联平台构成,实现命令的无线传输。Arduino UNO R3开发板将两个模块连接起来,是项目的核心控制器。

1.整体框架图

项目的整体框架如图2-1所示。

图2-1 整体框架图

2.系统流程图

系统的流程如图2-2所示。

图2-2 系统流程图

接通电源后,客户端检查设备是否在线,若在线,则检查是否为有效命令输入,若是,则执行,否则保持上一状态,当上一命令执行完毕后,设备将进入等待状态。当有效命令是休眠状态时,设备进入低功耗状态,不再工作。

3.总电路图

系统总电路及Arduino UNO开发板、DFPlayer Mini MP3播放器、ESP8266-01S的引脚连线如图2-3所示。

图2-3 总电路图

元件引脚连线如下:

1)DFPlayer Mini MP3播放器与Arduino、小扬声器连线的模块如图2-4所示,引脚连线如表2-1所示。

2)ESP8266-01S与Arduino的连线模块如图2-5所示,引脚连线如表2-2所示。

图2-4 DFPlayer Mini MP3播放器模块

表2-1 DFPlayer Mini MP3播放器引脚连线

图2-5 ESP8266-01S模块

表2-2 ESP8266-01S引脚连线

2.3.3 模块介绍

本项目主要包括音乐模块和联网模块,下面分别给出各部分的功能、元件、电路图和相关代码。

1.音乐模块

1)功能介绍

实现播放、暂停等音乐播放器的基本功能。元器件包括DFPlayer Mini模块、SD卡、Arduino UNO R3开发板、小扬声器。电路如图2-6所示,模块引脚功能如表2-3所示,串口指令格式如表2-4所示,串口控制指令如表2-5所示。

图2-6 音乐模块电路图

表2-3 DFPlayer Mini模块引脚功能

表2-4 串口指令格式

表2-5 串口控制指令

2)库函数

头文件:

cpp文件:

3)相关代码

2.联网模块

1)功能介绍

与贝壳物联的服务器相连,实现命令的远程传输,并将音响、计算机网页端、手机应用端连接在一起,元器件包括ESP8266-01S、Arduino开发板及手机客户端。元器件的模块电路和控制端通信如图2-7和图2-8所示。手机控制端与设备的通信,在相关代码中已做说明,详见代码解析。

图2-7 ESP8266模块电路

图2-8 手机控制端与设备的通信

2)相关代码

代码1:对ESP8266进行透传设置,并自动连接贝壳物联的服务器。

     AT
     ATE0
     AT + RESTORE
     AT + CWMODE = 1
     AT + CWJAP = "Jasmine","wrj04300"
     AT + CIPMODE = 1
     AT + SAVETRANSLINK = 1,"121.42.180.30",8181,"TCP"

注意:每个命令输入后均需手动换行。

代码2: