Raspberry Pi 4 4GBモデルでこれまで構築したラズパイ環境を統合化してみる (4) “人感センサーで照明を自動制御”
“Raspberry Pi 4 4GBモデルでこれまで構築したラズパイ環境を統合化してみる (1) “Raspberry Pi 4 セットアップ””
“Raspberry Pi 4 4GBモデルでこれまで構築したラズパイ環境を統合化してみる (2) “homebridgeでHomeKit対応””
“Raspberry Pi 4 4GBモデルでこれまで構築したラズパイ環境を統合化してみる (3) “ラズパイ標準カメラでビデオ監視””の続きです。
現在稼働中のラズパイ環境の整理整頓を目的に、今回のTALKでは以下のサービスを”Raspberry Pi 4“に移行します。今回移行するサービスは、書斎に設置した”Philips Hue“をラズパイに接続した人感センサーで自動的にオン・オフする仕組みです。なお、今回のTALKではおおまかな内容を抜粋して紹介していますので、詳しい内容は過去のTALKを参照下さい。
・人感センサーを活用してPhilips Hue 電球専用のオンオフを自動化、省電力化を実現
書斎に設置した”Philips Hue“を、ラズパイに接続した人感センサーで自動的にオン・オフする、といったサービスです。
なお、今回のTALKは、”Philips Hue“の設置が終わり稼働していることが前提です。”Philips Hue“の設置や応用例などは、以下のTALKをご覧下さい。
・Philips Hue Whiteスターターセットを買ってHomeKitとGoogle Homeでホームオートメーション!
・Amazon Dash ButtonでPhilips Hue 電球専用のDimmer スイッチを作ってみました (1)
・Amazon Dash ButtonでPhilips Hue 電球専用のDimmer スイッチを作ってみました (2)
< 事前に用意するモノ >
我が家の書斎には、Philips Hue ホワイトのスターターキットで揃えたスマートLEDライト 2個とブリッジ1個が設置されています。このTALKでは、既に稼働中の2個のスマートLEDライトを、人感センサーで自動的にオン・オフする仕組みを作ります。
・HiLetgo® 3個セット HC-SR501人体赤外線感応モジュール 人体の赤外線の感応器 [並行輸入品]
アマゾンで3個セットで800円台で販売しています。あくまでも個人の体験になりますが、今回買った人感センサーは、最初のうちは問題なく感知していたのですが、数時間連続で稼働すると感知の精度が悪くなってしまいました。3個ともです。センサー精度が悪いのは論外なので、こちらは返品し、以前利用した”aitendo“で”PIRセンサーモジュール [HC-SR501]“を買い直しました。1個 395円ですが、信頼性の高い製品に越したことはありませんからね。
< 人感センサーのセットアップ >
左から順に、-、out、+ に沿ったジャンパーワイヤーを接続します。
POOHの場合は、”Raspberry Pi 4“のピンヘッドとの接続を、+をpin #02 (DC Power 5V)、outをpin #12 (GPIO18)、-をpin #06 (Ground)にしました。
ピンヘッドの反対側に、検知感度(右に回すと感度が敏感(遠くまで感知)になる。)、検知間隔(右に回すと間隔がゆっくりに(長く)なる。)を調整するネジ?が付いています。こちらは、実際に、作成したプログラムを動かしながら、数回、試行錯誤したうえで、自分的にこんなモンかなあ、と思った位置で固定して下さい。ちなみに、デフォルトのままですと、折角書いたプログラムがうまく動作していないように見えてしまう場合もありますので、最初のうちは、センサーモジュールのレスポンスが早そうなところを見つけながら調整しておくと、デバッグが楽になるはずです。
< 人感センサーの動作テスト >
まず始めに、必要なライブラリをインストールします。
sudo apt-get install python-dev python-pip
sudo pip install wiringpi2
続いて、動作テスト用のスクリプトをPythonで書きます。
sudo nano /home/pi/pir_sensor_test.py
このスクリプトを実行しながら、人感センサーの感度や検知間隔を調整しておきます。
python pir_sensor_test.py
< 実運用で使用するスクリプトを作成する >
sudo nano /home/pi/pir_sensor_hue.sh
Hue 電球のスクリプト部分については、過去のTALK“Amazon Dash ButtonでPhilips Hue 電球専用のDimmer スイッチを作ってみました (2)“をご覧ください。
作成したシェルスクリプトを実行してみましょう。左端に表示される”EXIST”は人感センサーが人を検知、”NO EXIST”は人感センサーが人を検知していない状態を示します。
/home/pi/pir_sensor_hue.sh
< 人感センサー用スクリプトを自動実行 >
ラズパイを起動したり、リスタートする都度、スクリプトを実行し直すのは面倒なので、以下の手順で自動実行するよう設定をしておきます。
・サービスファイルを作成します。
sudo nano /etc/systemd/system/pir_sensor_hue.service
・サービスを有効にします。
sudo systemctl daemon-reload
sudo systemctl enable pir_sensor_hue.service
sudo systemctl start pir_sensor_hue.service
・サービスが動いていることを確認します。
sudo systemctl status pir_sensor_hue.service
念の為、ラズパイを再起動後、ちゃんと実行されているか確認しておきます。
journalctl -u pir_sensor_hue.service
もし、どうしてもうまく動作しない場合は、
sudo systemctl stop pir_sensor_hue.service
sudo systemctl disable pir_sensor_hue.service
そして、先程作成した”pir_sensor_hue.service”ファイルを削除すれば、一旦リセットできます。
次回のTALKでは、METAR 航空気象情報をラズパイからツイートする仕組みの移行作業を紹介する予定です。
|
|
|
ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
“Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。