1.はじめに
遠隔地に住む祖母の暮らしを見守るため、設置したセンサー情報をモニタする取り組みを行ってましたので、主として備忘のためにまとめます。
モノワイヤレス株式会社の「TWE-Lite(トワイライト)」を使用して、親機である「RaspberryPi」からセンサ情報をスマホへ通知する仕組みです。
2.環境お知らせ機能
暑さ寒さも遠くまで、離れても伝わる部屋での暮らし
室内の「環境センサ」の情報から、室温や湿度、部屋の明るさを記録して、必要に応じて通知することができます。
→「環境センサーパル(AMBIENT SENSE PAL)」を使用。
設置した環境センサーパルは「温度」「湿度」「明るさ」を取得できるので、部屋の環境情報を計測することが出来ます。
季節や時間帯で変わる部屋の「温度」の推移をグラフで確認することが出来ます。また部屋の「温度が一定を超えた場合」など、リマインドによってLINEでお知らせすることも出来ます。
→8月の「室温」の推移を見ると、エアコンの作動状況が確認できる(エアコンは室温を25℃で自動設定)。
また部屋の「明るさ」を見ることにより、夜には電気のつけっぱなしがないかなど、生活リズムをおおよそ確認することが出来ます。
3.実装
・準備するもの
区分 | 名前 | 説明 |
---|---|---|
親機 | Raspberry Pi 4 Model B | 親機となって、センサー情報を記録・発信する本体 |
MONOSTICK | センサー情報を受信するデバイス。 「App_PAL」をインストールしておくこと |
|
子機 | BLUE PAL | センサー情報を送信する無線装置。 別途、コイン型電池(CR2032)が必要 |
環境センサーパル (AMBIENT SENSE PAL) | 気温・湿度・明るさを記録できるセンサー。BLUE PALと組み合わせる |
①MySQLデータベースに、レコードを追加する
Raspberry Piに「MySQL」をインストールし、必要なデータベースとテーブルを作成しておく
(前回参考)見守り番犬システムの運用(TWE-LITEによる見守り①寝起き動き)の手順①②をご確認ください
環境情報(温度・湿度・明るさ)が、1分毎に記録されています。
②グラフ画像作成
気温の推移のグラフを作成して、取得したその他情報(寝起きや活動値)とともにグラフで確認することが出来ます。
#1.データ集計処理
import pymysql.cursors
connector = pymysql.connect(
#ここに「データベース接続」の処理を書く#
)
YESTERDAY=datetime.date.today()+ datetime.timedelta(days = -1)
TOMORROW=datetime.date.today()+ datetime.timedelta(days = +1)
sql = "select DATE,DATA_TEMP,DATA_HUMID from TABLE_KANKYO where DATE>"+str(YESTERDAY)+" and DATE<"+str(TOMORROW)
cursor.execute(sql)
result = cursor.fetchall()
#2.グラフ出力処理
import matplotlib
import matplotlib.pyplot as plt
time_x=[]
temp_y=[]
fig, ax = plt.subplots()
for row in result:
time_x.append(row[0])
temp_y.append(row[1])
plt.vlines(datetime.date.today(), 0, 40, color='k', linestyles='solid',linewidth=1,alpha=0.5)
fig.savefig("/home/グラフ画像保存フォルダ/datas.png")
③明るさ・温度リマインド
深夜0時時点で「部屋が明るいまま」だったり、設定した「温度を超えた」場合にリマインドのためLINEでお知らせすることが出来ます。
#リマインド(明るさ)※深夜0時に実行
sql = "select DATA_ILLUM from TABLE_KANKYO where DATE<"+str(datetime.date.now())+" and DEVID='810C57BD' and DATA_ILLUM>20 limit 1"
cursor.execute(sql)
result = cursor.fetchall()
if cursor.rowcount != 0:
message = "電気つけっぱなし(深夜0時)"
#リマインド(温度)※毎分実行
sql = "select DATE,DATA_TEMP,DATA_HUMID from TABLE_KANKYO where DATE>"+str(YESTERDAY)+" and DATE<"+str(TOMORROW) +" and DATA_TEMP>40"
cursor.execute(sql)
result = cursor.fetchall()
if cursor.rowcount == 0:
message = "室温が暑すぎる(40℃以上)"
(前回参考)LINEでの通知については 見守り番犬システムの運用(TWE-LITEによる見守り①寝起き動き)の手順③をご確認ください
4.考察
前記事にて紹介したヌイグルミによる活動モニターもそうなのですが、どこまでプライベートに踏み込んで部屋の情報を取得するか考慮する必要があります。
(ストーカーっぽくならない範囲で)いかに控えめな見守りが出来るかというのは今後も課題となります。
●次回予告(入退室機能)
元気に外出してるかな、遠くにいても気になる出入り
玄関ドアに設置した「開閉センサ」の情報から、部屋への出入りの状況を把握することができます。
→「開閉センサーパル(OPEN-CLOSE SENSE PAL)」を使用。