ラズパイ3×ドアセンサーパート3 ~Lチカ編~

会議室利用状況を作ってみようとのことでラズパイとドアセンサーを使用ときのメモです。
脱コボラー+IoT初心者ですので、ご意見いただけると光栄です。

<パート1 ~人感センサー編~>
<パート2 ~リードセンサー編~>
<パート3 ~Lチカ編~>

各種パーツ

・ Raspberry Pi 3 Model B
・ LEDライト
・ カーボン抵抗
・ ジャンパーワイヤ(メス – オス)×2
・ ミニブレットボード
・ USBアダプター(Micro-B)

イメージ

以前作成した、人感センサーとリードセンサーでLチカをやる。
会議室のリードセンサーが反応+人感センサーが反応の時はON,それ以外はOFFとする
ON状態で人感センサーが反応しなくてもONにしておきます。(壁は突き破らないでください)

回路作成

以下の通り回路を作成する
GND: 9番ピン
OUT: 11番ピン(GPIO17)

サンプルプログラム

*Lチカ
Lチカさせるには、以下のプログラムを入力すればよい

python:title
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.OUT)
GPIO.output(LIGHT_PIN, True) #光る
GPIO.output(LIGHT_PIN, False) #消える

LEDライトの場合はOUTを使用
TrueをGPIO.HIGHや1,FalseをGPIO.LOWや0にしてもよい

上記と以前のプログラムをまとめます。
ピンが番号だけでは何に使っているのかわからないので変数に入れてみました。

python:lightSensor.py
# coding: utf-8
import RPi.GPIO as GPIO

# 使用するGPIO
LIGHT_PIN = 17 # 0 => ライト消灯, 1 => ライト点灯
HUMAN_PIN = 18 # 0 => 人がいない, 1 => 人がいる
DOOR_PIN = 25  # 0 => 開いている, 1 => 閉じている

GPIO.setmode(GPIO.BCM)
GPIO.setup(LIGHT_PIN, GPIO.OUT) # 出力設定
GPIO.setup(HUMAN_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP) # 入力設定
GPIO.setup(DOOR_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP) # 入力設定

# 0 -> close the door, 1 -> open the door
doorStatus = GPIO.input(DOOR_PIN)
# GPIO.HIGH -> sensing
humanStatus = GPIO.input(HUMAN_PIN)
result = "";

if doorStatus == 0:
	if humanStatus == GPIO.HIGH:
		GPIO.output(LIGHT_PIN, True)
elif doorStatus == 1:
	GPIO.output(LIGHT_PIN, False)

sudo python lightSensor.py


このような感じになりました。

所感

ライト点滅ができるようになった。
これを応用すれば、家にだれか入ってきたら写真を撮るとか、Slackに連携したりできるんだろうなぁ
次回は会議室利用状況確認画面作成!
htmlとJavascriptどちらもがっつり触ったことがないので心配です(´・ω・`)

最新ブログ一覧