とりあえずの記録

はじめは同学科の人向けのナレッジまとめでした

Raspberry Piでチャイムを

うっかり遠隔授業をすっぽかしてしまわないように,Raspberry Piで指定の時間にチャイムを鳴らすことにしました.その方法を解説します.

私の部屋では,AirPlayでiPhoneMacから気軽に音楽を再生できるように常時スピーカーと繋ぎっぱなし & 常時ONにしています.(Volumioというディストリビューションを使用すると容易に実現できます.が,今回の内容自体はRaspbianでもUbuntuでもCentOSでも同様に実施できます.)

音源を準備

ニコニ・コモンズや効果音配布サイトから,適宜音源をダウンロードしてきましょう.
学校と全く同じ音源はなんとなく嫌なので,ピアノを使用した明るめのジングルを採用しました.

commons.nicovideo.jp

適宜USBメモリやSCPなどを使用してファイルをRaspberry Piの中に移しておきます.

再生環境を準備

SSHで接続するか,本体のシェル(ターミナル,端末)を起動します.

wavが再生できるaplayというソフトが入っているかもしれませんが,今回はmp3が再生できるmpg321というソフトをインストールします.

debian(Raspbian, Ubuntu, Volumioなど)

 sudo apt install mpg321

RedHat(CentOSなど)

 sudo yum install mpg321

 sudo dnf install mpg321 (CentOS8の場合)

インストールが終わったら,以下のコマンドで再生してみます.

 mpg321 (音源ファイル名)

再生されなかった場合は,音声の出力先を変更する必要があります.

 raspi-config

で,Autoから各々の環境に応じて変更してください.(HDMIケーブルを抜くだけで解消されるかもしれませんね)

 

以下のようにして,音量(0~100)を変更して再生することもできます.

 mpg321 (音源ファイル名) -g (音量)

これでとりあえずこのコマンドを叩けば再生できるようになりました.

今度はこれをcronを使って自動的に実行されるようにします.

自動再生設定

設定を始めるわけですが,cronの設定は慣れていない人からするとなかなかとっつきにくいものです.

以下のサイトを使用すると適切な設定文を生成してくれます.

crontab-generator.org

例えば,月〜金曜の朝10時にコマンドを実行したい(鳴らしたい)場合はこんな感じ.

Command to Execute(実行するコマンド)の入力も忘れずに.

f:id:tamasan238:20200518121134p:plain

Generate Crontab Lineをクリックするとこんな感じでコマンドが出力されます.

f:id:tamasan238:20200518121313p:plain

以下のコマンドで設定画面を開きます.

 crontab -e

末尾にでも出力されたコマンドを書いていきましょう.

私の場合はこんな感じに設定しました.

f:id:tamasan238:20200518121600p:plain

授業間が10分しかないので,いらなさそうなところは省いています.

時間割に応じて最後のコマの辺りを修正したり,朝とお昼は机に向かっていなくても気付けるように音量を大きめにして出力させたりしました.

Ctrl+Xで終了できます.

【重要】タイムゾーン確認

これで終わり...としたいところですが,セットアップやディストリビューションによってはタイムゾーンUTC(世界標準時)になっていることがあります.

その場合,設定した時刻の9時間前に鳴ってしまうことになるので,深夜に爆音のチャイムが鳴り響きます.

非常に迷惑なので,念の為タイムゾーンを確認しておきましょう.

シェルで,

 date

と書いて実行します.

JSTと書かれており,時刻が合っていたらOKです.安心してそのまま電源を切らないように気をつけましょう.

UTCなど,他のものが書かれていた場合は深夜に爆音が鳴り響きます.

 sudo timedatectl set-timezone Asia/Tokyo

このコマンドで修正しましょう.

再度 date を実行して確認できればOKです.

もし,JSTと書かれていても(or JSTに設定しても)時刻がズレている場合は,時刻設定がうまくできていません.

この場合,OSやそのバージョンによって設定が少々異なりますので,「(OS名) NTP 設定」などと検索されてみてください.

 

お疲れさまでした.

以上で設定は完了です.