- Arduino案例實戰(卷Ⅳ)
- 李永華
- 1213字
- 2019-12-06 14:24:42
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:







