ラズパイ3に7インチディスプレイ追加 キオスクモードでWebIOPiボタン操作&Grafanaグラフ表示

今回は、前回ラズパイのUSB4ポートをシェルスクリプトでオン・オフできるようにしたので、人感センサーを使って人が来たら自動的にシェルスクリプトに命令してディスプレイオンにして、5分後くらい動きが無い場合にオフにする設定をしていきます。

この記事は複数のページに別れています
  1. (今このページを見ています)

Python+人感センサー

/home/pi/script/usb-4port.shを使ってPythonスクリプトと人感センサーでディスプレイを自動オン・オフ

/home/pi/script/usb-backlight.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

#人感センサーで人がいるとき5分間だけディスプレイのバックライトをオンにする。

from time import sleep
import RPi.GPIO as GPIO
import subprocess

SENSOR_PIN = 23#18から23に変更

GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)

while 1:
	sen = GPIO.input(SENSOR_PIN)
	if sen == 1 :
		power = 'on'
	else :
		power = 'off'

	@print power
	getty = '/home/pi/script/usb-4port.sh'
	subprocess.call([getty, power])

	if power == 'on':
		sleep(300)

usb-backlight.pyを常時起動しておく

usb-backlight.pyを常に起動しておくようにシステムのサービスに追加しちゃいます。

$ sudo vim /lib/systemd/system/usb-backlight.service
[Unit]
Description = usb-backlight

[Service]
ExecStart=/usr/bin/python /home/pi/script/usb-backlight.py
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target

usb-backlightサービスをオンにする。

$ sudo systemctl start usb-backlight.service
$ sudo systemctl enable usb-backlight.service

うまく動かないのでjournalctlで確認

systemctlでサービス開始しても動かなかったので原因を調べる。

$ journalctl | less

lessで「q」が終了、検索「/usb\-backlight」で探す

原因はusb-backlight.pyのちょっとしたエラーだった。

違う人感センサー

以前試した人感センサーHC-SR501の記事↓

【raspberry pi 2】大気圧センサーを使ってmuninでグラフ化・人感センサーを使って一日の仕事時間を計測したい
だいぶ前にラズパイ2で温度・湿度を計測してmuninでグラフ化しましたが、今回は大気圧センサーを使って部屋の大気圧を計測してmuninでグラフ化してみます。

HC-SR501は距離範囲に物体があるかないかで感知するセンサーなのでカーテン閉めたら反応しちゃう・・・なのでマイクロ波レーダーセンサーrcwl-0516を使うことにする。

PIN

rcwl-0516 Raspberry Pi
VIN +5V
GND GND
OUT GPIO18

スクリプトも同じ。今度はカーテン閉めていても反応しないけど、直角の角度で動いても反応する。でもこっちのほうが精度はよさそう。

ちょっと人の動きがあると反応するので正面しか反応しないようにセンサーの左右にに金属のカバーを付けるしかなさそう。

コメント

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