買了個樹莓派3B+,裝好系統后灰落了好厚一層都不知道要干嘛,,,最近突發奇想:用樹莓派做一個音樂播放器,每天6:30-7:20自動播放英語聽力,強迫自己練習英語,也治治自己的懶床習慣,平時也可以用來聽聽歌,
準備作業:
1.樹莓派一個,并且己安裝好linux系統,并且己安裝好Python3環境;
2.音箱一個(AUX有線介面或藍牙音箱都行),連接到樹莓派上;
軟體環境搭建:
mtool是一個用python寫的音樂播放器,在gitee和github上開源,主要用命令列進行控制,這個很適合我們這個需求,
下載地址:https://gitee.com/shadowlesswalker/mtool.git
首先我們在電腦上用ssh工具(我用的putty)登陸到樹莓派,不會的可以另行百度樹莓派ssh教程,輸入以下命令:
cd /usr
git clone https://gitee.com/shadowlesswalker/mtool.git mtool #下載mtool源代碼
cd mtool
ln -s -f /usr/mtool/mtoolctl /usr/bin/mtool #創建軟鏈接(快捷方式)
然后安裝mtool依賴包:pygame,configparser(有的話就不用安裝了)
sudo apt install python3-pygame
pip3 install configparser
至此,mtool就算安裝完成了,mtool是一個C/S(服務器/客戶端)模式的程式,服務器開啟后會監聽UDP埠(默認為127.0.0.1:6666),然后接受來自客戶端的命令去控制播放,
我再來設定一下服務器端的開機自啟動:
vim ~/.bashrc
在最后面添加命令:
nohup mtool --server start > /usr/mtool/log & #其中nohup與&用于后臺運行程式
配置音樂檔案夾路徑
先來配置一下音樂檔案夾的位置,打開/usr/mtool/mtool.conf,在里面自行修改:
[player] #這個節設定播放器引數
list = music #設定默認的播放串列,串列名必須在后面的playlists節中出現
volume = 0.2 #默認音量
port = 6666 #默認UDP埠,用于服務器接受命令
index = 2 #當前播放位置
next = next #默認播放模式:next|loop|random 對應順序播放|單曲回圈|隨機播放
[playlists] #播放串列預設節,可設定多個,格式為:串列名=檔案夾路徑
music = music #播放串列名為music,路徑為./music
en-listen = /var/share/en-listen #我的英語聽力資源檔案的路徑
開始使用mtool命令
source ~/.bashrc
或
nohup mtool --server start > /usr/mtool/log &
#先手動啟動服務端,雖然前面配置了開機自啟動,但也只能下次開機才能生效
mtool -c info #查看服務器狀態,可用來測驗服務器是否己啟動,成攻類似如下顯示:

mtool -c play #播放
mtool -c vol=0.5 #設定音量
mtool -c lists #查看可用的播放串列
mtool -c list #列出當前播放串列中的音樂檔案
mtool -c next=random|next|loop #設定播放順序
mtool -c playf=zui #切換為單曲回圈(next=loop),并且播放檔案名中包含zui的檔案
基本的用法就這樣了,我們可以通過在電腦上控制樹莓派播放音樂了,但是電腦老開著也不好,況且躺在床上怎么辦呢?我們可以在手機上安裝ssh工具,比如JuiceSSH(推薦),阿里云app,
設定樹莓派定時播放
我們使用linux內置的計劃任務命令crontab來設定定時播放功能,
說到定時任務,那我們首先得確認自己樹莓派的時間是準確的,嘿嘿嘿,,,可惜,樹莓派的時間一般都是不準確的,,,因為一般電腦在斷電后時鐘會由CMOS電池供電繼續跑,但是樹莓派斷電后時間就會丟失,即然時間都不準確,又怎么能正常執行定時任務呢,,,
所以我們首先解決時間問題-NTP(網路時間同步)
dpkg-reconfigure tzdata #時區設定,組態檔在/etc/timezone,設定為中國上海時區
date #查看時間,確保我們的時區為中國時區
開啟NTP服務
apt install ntp
ntpdate ntp.ntsc.ac.cn #同步中國國家授時中心新(NTP服務器ntp.ntsc.ac.cn)
或者在/etc/ntp.conf中添加ntp服務器地址
重啟ntp服務:
systemctl enable ntp #ntp開機自啟動
systemctl start ntp #啟動ntp服務
date #查看系統時間,應該正確了
再來設定定時任務:
先寫一個切換播放串列、改變音量、開時播放的腳本,用來被定時任務呼叫:
vim /usr/mtool/start-en-listen
腳本內容很簡單:
_dir="/usr/mtool"
mtool -c playlist=en-listen #切換到英語聽力播放串列
mtool -c vol=1.0 #音量放到最大(嘿嘿嘿)
mtool -c next=random #設定隨機播放
mtool -c play #開始播放
接下來添加定時任務
crontab -e #將打開編輯器,在最后添加定時任務:
30 6 * * * /usr/mtool/start-en-listen >> /usr/mtool/log.client #每天早上6:30開始播放
20 7 * * * mtool -c stop #每天早上7:20停止播放
終于,,,大功造成!!!!每天早上無法安心地睡懶覺啦啦啦!!!
當然,我們還可以添加幾行代碼,每天早上6:30自動關閉ssh服務,7:20再打開,這樣想睡懶覺時就無法從手機ssh端關閉樹莓派播放了,只能爬起來去拔電源嘿嘿嘿,,,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/167459.html
標籤:Python
上一篇:網路編程(2)
下一篇:excel相關
