1.人感センサーの配線は以下を参考にする。
https://chasuke.com/motionsensor/
chasuke さん
ちなみにRPZ-IR-Sensorは上段の1号機に接続
RPZ-IR-Sensor Rev2 (端子実装済 + 外付センサーセット) - Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード
2号機に人感センサーを配線。5年前と同じです。
2.パイソンの編集
sudo vim wakeuplan.py
中身は以下
#!/usr/bin/ python3
from datetime import datetime
import time
import RPi.GPIO as GPIO
import subprocess
INTERVAL = 3
SLEEPTIME = 20
GPIO_PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN, GPIO.IN)
cmd = "sudo node /home/pi/etherwake.js"
if __name__ == '__main__':
try:
print ("cancel CTRL+C")
cnt = 1
while True:
# sencer touch
if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
print(datetime.now().strftime('%Y/%m/%d %H:%M:%S') +
":" + str("{0:05d}".format(cnt)) + " human look")
print("pc wake")
subprocess.check_call(cmd, shell=True)
time.sleep(SLEEPTIME)
break
else:
print(GPIO.input(GPIO_PIN))
time.sleep(INTERVAL)
except KeyboardInterrupt:
print("stop runnig...")
finally:
GPIO.cleanup()
print("GPIO clean")
4.実行してみる。
python wakeonlan
5.crontabでwakeonlan.pyの実行。
2025/1/7 どうも Crontabで実行すると人感センサー検知したことになっている模様。
仮想環境から実行するとどうやらうまくいくようだ。⇒誤り。2025/1/10 ノイズが原因と判明。
2025/1/8 誤検知している。あれれ。調査中。
2025/1/8 21:16 以下 参考サイトでフェライトコアでノイズが消えると記載ある。
大昔 ADSLの時代に フェライトコアいくつも付けた記憶ある。 なつかしい。
試しに大須のボントンさんで275円で購入して設置。
2025/1/9 朝8:00は誤検知解消していた。 以降 誤検知している。
2025/1/10 フェライトコアをGPIO(Output)に正しく装着。 今のところ、誤検知していない。
2025/1/11 フェライトコアで精度はあがったとは思うが、誤検知している。
HC-SR501は実用的ではないですね。 ぼくのアイリスオーヤマのこたつの人感センサーは精度いいのにね。
もう売ってないみたいね。
https://www.amazon.co.jp/gp/product/B0099JWZTC/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
2025/1/11 カメラとAIで人を検知させることにした。 決意。 2025/1/12 実装完了。
https://www.souichi.club/raspberrypi/watch-over-07/
仮想環境は以下で設定。必要なモジュールを仮想環境にインストール&実行
source ~/vpy/bin/activate
pip3 install RPi.GPIO
python3 wakeonlan.py
deactivate
ここまでは仮想環境でなくても結果は同じ。(うまくいっている)
crontab -e
ひまじんの在宅タイミングに合わせて実行。
0 8 * * * cd /home/pi/ && /home/pi/vpy/bin/python wakeonlan.py > /tmp/cronw.log 2>&1
0 11 * * * cd /home/pi/ && /home/pi/vpy/bin/python wakeonlan.py >> /tmp/cronw.log 2>&1
0 14 * * * cd /home/pi/ && /home/pi/vpy/bin/python wakeonlan.py >> /tmp/cronw.log 2>&1
0 18 * * * cd /home/pi/ && /home/pi/vpy/bin/python wakeonlan.py >> /tmp/cronw.log 2>&1
補足 間違えるとnanoがエディタとなるので
select-editor で変更する。