![Arduino案例实战(卷Ⅳ)](https://wfqqreader-1252317822.image.myqcloud.com/cover/543/26793543/b_26793543.jpg)
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所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P60_1723.jpg?sign=1739563086-PF4EiUHjECBDswYi1KwhU5qxtPC2rR1m-0-4f9eec92fb07fcc5e36ade872bcf09d8)
图2-1 整体框架图
2.系统流程图
系统的流程如图2-2所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P61_1729.jpg?sign=1739563086-ajaqxprHYH5Sw3GOGcxOL5Y0dR6c4MyZ-0-b1e532dc0ecd443a27321e7bac7cef76)
图2-2 系统流程图
接通电源后,客户端检查设备是否在线,若在线,则检查是否为有效命令输入,若是,则执行,否则保持上一状态,当上一命令执行完毕后,设备将进入等待状态。当有效命令是休眠状态时,设备进入低功耗状态,不再工作。
3.总电路图
系统总电路及Arduino UNO开发板、DFPlayer Mini MP3播放器、ESP8266-01S的引脚连线如图2-3所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P62_1735.jpg?sign=1739563086-kWYmTBS7JZlH10k6ptQxZCyMBZZKzuL4-0-0041a2f8aa77cc54d1c7c1e51f7a2d8d)
图2-3 总电路图
元件引脚连线如下:
1)DFPlayer Mini MP3播放器与Arduino、小扬声器连线的模块如图2-4所示,引脚连线如表2-1所示。
2)ESP8266-01S与Arduino的连线模块如图2-5所示,引脚连线如表2-2所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P63_2802.jpg?sign=1739563086-F022LNL11AmWYBACxXFWGVjv39BFQcfD-0-58cac8631c8b838ea1c4c928ca80966d)
图2-4 DFPlayer Mini MP3播放器模块
表2-1 DFPlayer Mini MP3播放器引脚连线
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T63_11122.jpg?sign=1739563086-o34RW5BOQc3XoID1XRrWPUGArY1R1ErP-0-eb0ef6344848caaaaf7b6a7c66688c8f)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P63_2816.jpg?sign=1739563086-oO1YMIhFxXmTD40VkJ03TYDzeAY0vaay-0-2af7dd12137b9b291dfd43d8ceb8ce92)
图2-5 ESP8266-01S模块
表2-2 ESP8266-01S引脚连线
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T63_11125.jpg?sign=1739563086-wxLV0yfLtwx05enk0aZG7TpDaudVnxbQ-0-f44fc0ae19361289076d570bd61d08f1)
2.3.3 模块介绍
本项目主要包括音乐模块和联网模块,下面分别给出各部分的功能、元件、电路图和相关代码。
1.音乐模块
1)功能介绍
实现播放、暂停等音乐播放器的基本功能。元器件包括DFPlayer Mini模块、SD卡、Arduino UNO R3开发板、小扬声器。电路如图2-6所示,模块引脚功能如表2-3所示,串口指令格式如表2-4所示,串口控制指令如表2-5所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P64_2836.jpg?sign=1739563086-yVl9UWJbyHfZ47B3dt8q4Nb6vYvXl7uO-0-1ba808b57756ddba02361ba1ef20e9b1)
图2-6 音乐模块电路图
表2-3 DFPlayer Mini模块引脚功能
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T64_11128.jpg?sign=1739563086-oGrNCqjxHCLZzlEKmOvHRm1YYElmEKZk-0-140a2e67f4fe84b36bf88ac715656cec)
表2-4 串口指令格式
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T65_11131.jpg?sign=1739563086-KLuLL1V3pKxARtnjmvzQwUaUgphH3c33-0-75e6a5e6a93a279a9c9969af746e6e8f)
表2-5 串口控制指令
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T65_11133.jpg?sign=1739563086-EjjG8MgEpaCac5OViQKff64MplWkCBsV-0-291739abd2caf8c4b82aa58276c7afe5)
2)库函数
头文件:
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P66_11135.jpg?sign=1739563086-SL4Pa4P0NMdwOrqGJHh6CnBUCPH1nLKQ-0-cbe7d7ff06e7fbfee6379bf244fcd837)
cpp文件:
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P67_11136.jpg?sign=1739563086-Fkx3YjoA4QwOJZrDac9jcvMd5Lr31fz6-0-bf47a7680e9df7f2be7cf6e275f51546)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P68_11137.jpg?sign=1739563086-JPz2nIPduBOK78SVfOui1gvf3qFZtlxV-0-0334c2e671d8de38ccf67d9e6c981bd5)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P69_2977.jpg?sign=1739563086-wSoZMaXPtlDq9VoALMiuzkIob4PxAm3c-0-9ae5fdca2b82255d1e1035790c571936)
3)相关代码
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P70_11138.jpg?sign=1739563086-MlkH6zLw6uSNr6sBpA14wX6zIQ3hM2Sd-0-4d249cc90b9428e0bbc716e0a8376bf4)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P71_11139.jpg?sign=1739563086-SNUdzce9wcWaGUpQQe0CVbbUw6suc7Av-0-75445dc0904ae50120665ad527ce3617)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P72_11140.jpg?sign=1739563086-R0tGNKdhXPT5XyadgC3okicfAgu0SouN-0-bd95d803a75ace859a37a02b3f1f4be9)
2.联网模块
1)功能介绍
与贝壳物联的服务器相连,实现命令的远程传输,并将音响、计算机网页端、手机应用端连接在一起,元器件包括ESP8266-01S、Arduino开发板及手机客户端。元器件的模块电路和控制端通信如图2-7和图2-8所示。手机控制端与设备的通信,在相关代码中已做说明,详见代码解析。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P72_2995.jpg?sign=1739563086-2l6ELfQ8KVR6AaZkvGYtQ8kZEg1PGsve-0-19af2146155d0683106ac31f9dc282db)
图2-7 ESP8266模块电路
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P73_3000.jpg?sign=1739563086-dnkDnEHgh7OmLkroujGzuw8ynMbamawx-0-e281b6975e72d2bee059b3eca794b68d)
图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:
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P73_11142.jpg?sign=1739563086-dGLHm5JWU5qRYllrisqMoB5yFcUlfBcb-0-415148aa14e2b4f3826fa38d09340901)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P74_11143.jpg?sign=1739563086-izNK8Hs3WX5Q2wTNiNaPeE5KRJUeBQWW-0-3c2d1fe8f82d09e952d770e076777300)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P75_11144.jpg?sign=1739563086-s2M1Rh2OvrSP1m2BFuqIljVbTj1gzynl-0-eb507f6973330ebbbefdda966b588038)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P76_11145.jpg?sign=1739563086-sSCDeGirgXv0SvTEFskP8tQjGjZnigPg-0-973b5b298dd595001266aa39005d4cb9)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P77_3032.jpg?sign=1739563086-WN4UJzfUv0h9uZ1monz8FdME7YRcWxzC-0-26c966bed7d2ea3e8b1345b4c56ea896)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P78_11146.jpg?sign=1739563086-LIC9moHweS2nYlbTMDxHmDI9WR2dbHgS-0-e8ae6e6c2f183129766e7da73cea2df5)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P79_3039.jpg?sign=1739563086-RgNAQ7xvsh1TU3DdFD7pyT3Adg0wMOr0-0-16ed7c11877d06fb3ca6f65ed823a4e9)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P80_3042.jpg?sign=1739563086-65KmqhfB3ndLH0POMXPP9dz3akhCfNBB-0-72520b167cfe513644a4c3ec0a200484)