【Raspberry Pi Advent Calendar 2022】止められない目覚まし時計を作った
これは Raspberry Pi Advent Calendar 2022 20日目の記事です。
お前は誰
詳細はTwitterとウェブサイト見て、どうぞ。去年のRaspberry Pi Advent Calendarではジャンクスキャナを使う話とOrange Piの話をしました。
家にはRaspberry Pi 1 Model B+とOrange Pi Zero (ラズパイの中華パチモン) が各1台あります。いい加減Raspberry Pi 4へリプレースしたいのですが、半導体不足で入手困難。トホホ…
対策されて草 (ごめんなさい)
ラズパイが手に入らないので、最近はアキバで省電力なスリムデスクトップPCを生やしています。Core i3+メモリ4GB+HDD320GBの構成で5,000円くらい。
経緯
皆さん、絶起してますか?arkwはしてます。
私の絶起パターンは
です。この傾向を踏まえ、一定のペースでデカい音を鳴らせば多少早く起きられるのでは? と考えました。
材料
・Raspberry Pi 1 Model B+
・MicroSDカード
・USB-ACアダプタ
・LANケーブル
・3.5mmステレオミニプラグ接続のスピーカー
自宅レイアウトの関係上モニタと有線LANを同時に使用できる環境が無く、ここ数年は専らSSH/VNC接続で運用しています。
boot直下に「ssh」ファイル (中身は空) を作成すると起動時にSSHが有効化され、初期設定含め全作業をリモートで行えます。ただし最近のRaspberry Pi OSではデフォルトのpiユーザが削除されており、この方法を使うとログインできません。Raspberry Pi Imagerを使い、OSをMicroSDカードへ書き込む前に設定する必要があります。
コーディング
まず音声チェック。Raspberry Piのジャックにスピーカーを接続し、下記コマンドを実行します。「Front, Center.」と聞こえれば正常です。
$ aplay /usr/share/sounds/alsa/Front_Center.wav
今回はRaspberry Pi内蔵のPython 3を使用しました。音声再生部分は、依存ライブラリが無く簡単に記述できる「simpleaudio」ライブラリで実装。WAVE専用のため、MP3やOGGなど他の形式を再生したい場合は別ライブラリ (Pydubなど) が必要です。
$ sudo apt-get update
$ sudo apt-get install -y python3-pip libasound2-dev
$ pip3 install simpleaudio
8時から10分おきにアラーム音が鳴るコードを、15分でサクッと作成。全文はGitHubにあります。
動作確認
🆗🆗🆗🆗🆗🆗🆗🆗
なお、この記事を書き始めてから1度も就寝しておらず、絶起防止効果は未確認です。(オイ)
今後の展望
・起床効果を高めるため、適宜プログラムを更新
・Raspberry Pi 4へのリプレース
・ON/OFFやアラーム時間変更をウェブブラウザ上で行えるクライアントの構築