Raspberry Piを使って会議室残り時間を通知してくれるものを作ってみた

AWS運用自動化サービス「Cloud Automator」

技術1課でOJT中の濱岡です。
みかんが美味しい季節になりました。
最近毎日みかんを食べてます。

さて、今回はRaspberry Piを使って会議室の残り時間を通知してくれるものを作ってみました。

きっかけ

会社で会議はよくあると思うのですが
会議が時間通りに終わらず次の会議が押してしまう……なんてことありますよね。
5分前くらいには会議を終えて会議室を次の会議の人たちに明け渡すのが理想ですが…なかなか難しいですよね。

それなら一方的に会議室の残りの時間を伝えるものがあればいいのでは…???
と思い作成しました。

ざっくりと構成図

といっても単純でRaspberry Piにスピーカーをぶっさします。

スピーカーから音声が流れて会議室の残り時間を伝えてくれます。
今回は、1分ごとにプログラムを実行して実行した時の時間と通知したい時間が一致すれば音声を再生するというように構成していきます。

今回使用したもの

  • Raspberry Pi 3
  • スピーカー(ステレオミニで接続できるもの)
    今回使用したスピーカーはこちら

言語はPython3を使用しました。

まずは会議室の予定を取得

サーバーワークスではGoogleカレンダーを利用して会議室の予約を行なっています。
そこでGoogleカレンダーAPIを使用して会議室の予定を取得します。

取得の方法は以下を参考にしてください。
【初心者でもできた!】Google カレンダーのAPIで「今日の残り時間bot」を作る

この中では個人のIDから自身のカレンダーの取得を行なっていますが
会議室のカレンダーIDを使用すれば会議室の予定を取得することが可能です。

確認方法は

Googleカレンダーのカレンダーを追加からカレンダーに登録を選択します。
会議室を検索して追加します。

下へスクロールするとカレンダーIDが書いてあります。

これをコピーして使用してください。

ここで注意していただきたいのがGoogleカレンダーAPIを最初に使用する際に
ブラウザ上で認証を行う必要がある ということです。
一度ローカルで実行し認証を行い、そこで生成されるtoken.pickleを使用して予定を取得してください。

今回、Rasberry Piの構成に関しては/opt配下に作成していくことを前提として書いていきますので必要なファイルは/optの中に入れておいてくださいね。

通知したい時間を計算

先ほどGoogleカレンダーから予定を取得することができたので
その予定の開始時間と終了時間を計算していきます。
今回は全体の時間の半分の時間と会議終了を5分前を通知することを考えます。

今回はdatetimeモジュールを使って時間の計算を行なっています。

音声を作成

音声をどう用意しようかと悩みました…
そういえばAWSに音声を生成できるやつあったな!!!
ということで今回はAmazon Pollyを使って音声を生成しその音声ファイルを使用しました。
AWSのマネージドコンソール画面からAmazon Pollyを選択します。

赤枠に喋らせたい言葉を入力します。

ダウンロードMP3からmp3ファイルをダウンロードします。

このように会議室の残り時間の半分用の音声と5分前用の音声を作成しました。

音声の再生

まずは Raspberry PiのAudioの設定からやっていきます。

以下のコマンドから設定を開きます。

7 Advanced Options を選択
A4 Audio を選択
1 Force 3.5mm を選択
Finish を選択

これでRaspberry Piの設定は完了です。

次はプログラムです。
今回は音声の再生にPygameを使用しました。
プログラムが実行した時間と通知したい時間が一致すれば音声を再生するというように書いていきます。

cronの設定

今回は1分ごとに実行をしていきます。
その設定をcronで行なっていきます。

とその前にRasberry PiだとデフォルトでPython2で実行してしまうのでPython3で動くように設定していきます

いよいよcronの設定です。
以下のコマンドで設定ファイルを開きます。

設定ファイルが開いたら以下を記述します。

1分ごとに月-金曜日10:00-19:00で実行するというように設定しました。

これであとは会議室にセッティングするだけ!

まとめ

いかがでしたでしょうか?
Raspberry Piって色々できるんだなと思いましたね。

そういえば今回の実装をしている間にこんなものが登場しました。
Alexa for Business に会議終了リマインダー、インテリジェントルームリリース、および会議室活用メトリクスが追加されました。

( ゚д゚)
・・・・・・・・・・
(´・ω・`).;:…(´・ω…:.;::..(´・;::: .:.;: サラサラ..

興味がある方はこちらの記事もみてみてくださいね。

Alexa for Business(11)新機能(3)会議終了リマインダー

以上、濱岡でした!

AWS運用自動化サービス「Cloud Automator」