Raspberry Piを使ってAlexaからゴミの日のお知らせをする

Raspberry Pi

ゴミの日通知を行う

Alexaから朝起きたらゴミの日だよ!ってお知らせしてくれる装置を作ります。

シェルスクリプトで作る

シェルスクリプトでアプリを作っていきます。
本当はPythonなどを仕様すべきなんでしょうが、私がPythonに慣れていないの慣れているシェルスクリプトで作ります。

トリガーをどうするか

トリガーをどうするか考えます。

まず考えられるのは時間です。
指定した時間になると勝手にしゃべるようにすればいいです。

問題としては起きる時間が同じではない可能性があります。

本当は人感センサーで朝の場合は喋らせるというのが良さそうですが、まだ人感センサは未実装。

そこで毎朝行っている「アレクサ、行ってきます」という言葉をトリガーにします。

以前作ったときのようにNodeREDを使ってRaspberry Piに信号を送ります。

Raspberry PiとAlexaでオリジナルスキルを作る 「今日のご飯は?」
Raspberry PiとAlexaでオリジナルスキルを作るRaspberry PiとAlexaでオリジナルスキルを作ります。今日のご飯は?Alexaに「今日のご飯は?」と聞くと、メニューをランダムに提...

今回は5番を使用します。

alexapi.sh
#!/bin/bash

if [ $# -eq 1 ]; then
    if [ $1 = "0" ]; then
	echo "">/dev/null
    elif [ $1 = "1" ]; then
	/opt/scripts/alexapi/alexa_bedroom_temp.sh
    elif [ $1 = "2" ]; then
	/opt/scripts/alexapi/alexa_livingroom_temp.sh
    elif [ $1 = "3" ]; then
	/opt/scripts/alexapi/alexa_temp.sh
    elif [ $1 = "4" ]; then
	#/opt/scripts/alexapi/alexa_meal.sh
	/opt/scripts/meal_list.sh alexa
	#/opt/test/meal.sh alexa
    elif [ $1 = "5" ]; then
	/opt/app/daily_announce/daily_announce.sh
    fi
fi

5に追加します。
呼び出し先のシェルスクリプトを作ります。

何度も言われるのは面倒なので、時間指定と1日に1度だけ言うようにします。

daily_announce.sh
#!/bin/bash

cd `dirname $0`

# 曜日の取得
# 日:0 月:1 火:2 水:3 木:4 金:5 土:6
day_of_the_week=`date +%w`

flag=`cat daily.flag`

if [ $flag = `date +%Y%m%d` ]; then
	exit
fi

if [ `date +%H%M` -gt 900 ]; then	# 9:00以上なら実行しない
	exit
fi
if [ `date +%H%M` -lt 600 ]; then	# 6:00より前なら実行しない
	exit
fi

if [ $day_of_the_week -eq 0 ]; then 	#日
	echo "">/dev/null
elif [ $day_of_the_week -eq 1 ]; then	#月
	echo "今日はおそふりの稼働日です。" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 2 ]; then	#火
	echo "今日は燃えるゴミの日です。ゴミは溜まっていませんか?" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 3 ]; then	#水
	echo "今日はおそふりの稼働日です。" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 4 ]; then	#木
	echo "">/dev/null
elif [ $day_of_the_week -eq 5 ]; then	#金
	echo "今日は燃えるゴミの日です。ゴミは溜まっていませんか?" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 6 ]; then	#土
	echo "">/dev/null
else
	echo "">/dev/null

fi

date +%Y%m%d >daily.flag

完成です!

これで行ってきます!とアレクサに言うたびにゴミの日をリマインダーしてもらえます。

コメント

タイトルとURLをコピーしました