Stay Homeの質を向上させる在室状況可視化システムをRaspberry Piでつくってみた
はじめに
振り返れば気の緩みと称されている3月の3連休の某日、
この先しばらく外に出られない状況になりそうだぞと感じ、
秋葉原に出向いたついでに、Raspberry Pi 4を買ってきました。
情報系分野に身を置いて約10年、
シングルボードコンピュータや電子工作の類は触れずに来たのですが、
いい機会だと思い、今更ではありますが手を出してみることにしました。
この2ヶ月間でLチカしてみるところから始まり、
学生時代苦手だった電気回路の知識をなんとか思い出してみたり、
15年ぶりにはんだ付けをしてみたりと、
普段の状況であればやらなかったであろうことに挑戦してみましたが、
最終的に運用までこぎつけたシステムの紹介(という名の備忘録)を
自粛期間の個人的な総まとめとして、書き残しておこうかと思います。
作ったもの
休日は趣味であるアイドルのライブが無くなったことで外出の目的を失い、
平日は週5日の100%テレワークで外出の機会を失い、
ほとんどの時間を家で過ごすことになってしまいました。
このような状況下において、
『どうすれば少しでも快適に「Stay Home」を過ごすことができるか?』
という命題を考えたとき、まずは自分自身の現在の生活状況を確認したい、
そして生活の質を向上させるためのものをつくりたいと思いました。
そこで作成したのが「在室状況可視化システム」です。
全体像
大まかな全体の流れです。
①室内に設置したセンサーからデータを収集
②収集したデータをRaspberry Pi上で解析
③Raspberry Pi上に構築したWebサーバにおいて、
解析データをダッシュボードに表示
④ダッシュボード上から室内の家電を操作
ダッシュボードはこんな感じです。
続いて、ダッシュボード上の各機能を紹介していきます。
在室状況の可視化
ドアセンサー、可視光センサー、人感センサーの3つを使用することで、
①在室 ②非在室 ③睡眠
の3つの状態を自動で記録してくれます。
左側の上向きに曲げられているパーツが可視光センサー(GL5516)です。
中央右側の白いパーツが人感センサー(EKMC1601111)です。
ドアセンサー(SPS-320)はこんな感じでドアに貼り付けています。
ブレッドボードに直接刺さらないので、ワニ口のリードケーブルと
ジャンパワイヤーで無理やり繋げました。
・生活リズムの可視化
1週間分のデータを初めて表示した際、
毎日の生活があまりにも同じことの繰り返しすぎて驚きました。
ちょうど何かのテレビ番組で、自粛生活で同じ生活を送り続けると、
脳機能が低下するという内容を見たばかりだったので、
危機感を持つきっかけになりました。
ちなみに例示しているダッシュボードでは、二度寝している様子や、
掃除中にやたらと部屋への出入りを繰り返している様子が見られます。
グラフの表示にはjqplotを使用しています。
・睡眠時間や睡眠時の体動の記録
テレワークによって朝の睡眠時間が30分延びたことによる余裕からか、
入眠時間がかえって30分以上遅くなり、生活リズムが崩れました。
世の中には睡眠時間を管理してくれるアプリというものがありますが、
我が家の煎餅布団ではスマホのジャイロセンサーはまともに反応せず、
残念ながら使用することができませんでした。
しかし!人感センサーを使用して外部から体動を観測することで、
布団を使用した睡眠についても、問題なく測定することができます。
どのくらいの間隔で睡眠が浅くなっているか、室温と体動回数の関連性等、データが集まってきたら分析したいと考えています。
・在室割合の表示
「Stay Home」を超えてもはや「Stay Room」になってしまっていますが、数値が定量的に見えることは、達成感が生まれます。
元の生活に戻ったときには、逆に引きこもり防止の期待ができそうです。
目覚まし点灯
テレワーク期間中、ふとした油断から寝坊してしまったことがありました。
幸いなことに、テレワークのため起床3分後即始業できたものの、
普段の出勤が必要な場合、遅刻確実な時間だったので危機一髪でした。
これはイカンと思い、通常の目覚ましアラームに加えて、
アラームの直前にシーリングライトを点灯させることで、
スムーズな起床をサポートするようにしました。
この起床サポートはなかなかの効果を感じており、
休日のアラーム停止後の即二度寝の頻度がそこそこ下がりました。
ダッシュボードで設定した点灯時間はCSVファイルに保存されます。
毎朝5時にcronが走り、ライト点灯のスマートリモコンへの命令が、
atコマンドによって当日の点灯時間に登録されます。
気象データ表示
気象センサーには「Netatmo Weather Station」を使用しています。
こいつは2年間に渡って、私の部屋の気象データを収集してくれています。
ブレッドボードで使用できる気温・湿度センサーも持っているのですが、
CO2濃度のセンサーは約3000円と値が張るので、有り物を活用しました。
室内・屋外の気象データをNetatmoのWebAPIを使用して取得します。
屋外は気温と湿度のみですが、室内はそれに加えCO2濃度を計測できます。
室内のデータは快適さに応じて、背景色が青→黃→赤と変わります。
CO2濃度は換気の目安としてかなり役に立っています。
巷では窓を自動で開閉してくれるデバイスが売っているようなので、
将来的には換気も自動で行えるようにしたいなと考えています。
家電操作
操作には「Nature Remo Mini」というスマートリモコンを使用しています。
WebAPIをJavaScriptから叩いてあげることで、リモコンを使うことなく、ダッシュボードから室内の家電を操作することができます。
本製品にはもちろんスマートフォンアプリが存在する訳ですが、
残念なことにウィジェットが存在せず、アプリ起動に3秒近くかかることもあって、普通にリモコンを使ったほうが早いじゃん…と半放置状態でした。
今回システムに組み込んだことで、活躍の場を作ってあげられました。
おしらせ表示
今のところ3種類のメッセージを表示するようにしています。
①睡眠時間の週間平均
②CO2濃度の警告
③熱中症の警告
今後種類を増やしていき、お節介度を上げたいと思います。
おわりに
以上、「在室状況可視化システム」についての紹介でした。
まとまった時間がなければ、運用まで持っていけなかったと思うので、
自粛期間を少しは有意義な過ごし方ができたように思います。
早く安心してライブハウスに行ける日常が戻ってきてほしいものです!
この記事が気に入ったらサポートをしてみませんか?