さやまのものづくり日記

電子工作やプログラミングなど趣味で作ったのもを紹介していくブログです。

Raspberry piにモーニングコールをしてもらう

やったこと

今回はRaspberry piに、朝の起きる時刻になると設定した音声を喋ってもらう機能を実装しました。

環境

Raspberry pi 3B+
python 3.7.3
Open JTalk1.08

準備

発話の準備

jtalkを使って喋らせるので、こちらの記事を参考にしながらjtalkの環境構築を進めました。 pacoは使えなかったので普通にmake installしました。パッケージの管理はできなくなりますが問題ありません。

プログラム

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import shlex
import subprocess
from datetime import datetime


CMD_SAY = 'jsay'

def Mornigcall():
    text = '起きてください 会社に遅れます'
    text = CMD_SAY + ' ' + text
    proc = subprocess.Popen(shlex.split(text))
    proc.communicate()
    return


def SayDateTime():
    d = datetime.now()
    text = '現在時刻は%s時%s分%s秒です' % (d.hour, d.minute, d.second)
    text = CMD_SAY + ' ' + text
    proc = subprocess.Popen(shlex.split(text))
    proc.communicate()
    return


def main():
    for num in range(6):
        SayDateTime()
        Mornigcall()
    return


if __name__ == "__main__":
    main()

ファイル名は「mornigcall.py」です。ひとまず6回繰り返すようにしました。

自動起動の設定

朝の起きる時刻になったら発話するプログラムを自動で起動します。 コマンドラインからcrontab -eを実行して出てきたファイルの一番下に以下のように記述します。注意点としてフルパスで記述する必要があります。 f:id:sayama_engner:20210329110930p:plain
定期自動実行に関してはcronの使い方(pythonスクリプト)を参考にしました。 これで毎朝7時にモーニングコールで起こしてもらえます。

参考

www.tapun.net

Pythonでシェルコマンドを実行する - Mobile Factory Tech Blog

cron の使い方(pythonスクリプト) - Qiita