ควบคุมการทำงาน PIR sensor - mrolarik/simple-iot GitHub Wiki
PIR (passive infrared) Sensor
Connect PIR sensor pin to RPi
เชื่อมต่อสายระหว่าง PIR sensor ไปยัง RPi
- VCC --> 5V (Pin 2)
- OUT --> GPIO 17 (Pin 11)
- GND --> GND (Pin 6)
เชื่อมต่อ LED ไปยัง RPi
- led pin --> GPIO 04 (Pin 7)
- GND -- > GND (Pin 30)
ตัวอย่างโปรแกรม
ตัวอย่างโปรแกรมการทำงานของ PIR Sensor ได้ดัดแปลงมาจากบทความใน maker.pro, hackster.io
#-----------rpi-pir-01.py------------
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
#GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
pir_sensor_pin = 17
led_pin = 4
GPIO.setup(pir_sensor_pin, GPIO.IN) #Read output from PIR motion sensor
GPIO.setup(led_pin, GPIO.OUT) #LED output pin
for i in range(0,3):
GPIO.output(led_pin,True)
print("LED ON")
time.sleep(1)
GPIO.output(led_pin,False)
print("LED OFF")
time.sleep(0.5)
while(True):
if(GPIO.input(pir_sensor_pin)):
for i in range(0,2):
GPIO.output(led_pin, True)
time.sleep(1)
GPIO.output(led_pin, False)
time.sleep(0.5)
print "Motion Detected..."
time.sleep(3)
time.sleep(0.1) #loop delay
GPIO.cleanup()
- กำหนด pin ให้กับอุปกรณ์
pir_sensor_pin = 17
led_pin = 4
- จากตัวอย่างข้างต้น เริ่มต้นด้วยการสั่งให้หลอด LED กระพริบสามครั้ง ด้วยคำสั่ง
for i in range(0,3):
GPIO.output(led_pin,True)
print("LED ON")
time.sleep(1)
GPIO.output(led_pin,False)
print("LED OFF")
time.sleep(0.5)
- สำหรับโปรแกรมใน
while(True)
เป็นการสั่งให้ทำงานตลอดเวลา - โดย
GPIO.input(pir_sensor_pin)
เป็นการรับค่าจาก PIR Sensor โดยจะมีค่าเป็น True หากตรวจพบการเคลื่อนไหว และ False หากไม่พบการเคลื่อนไหว
while(True):
if(GPIO.input(pir_sensor_pin)):
for i in range(0,2):
GPIO.output(led_pin, True)
time.sleep(1)
GPIO.output(led_pin, False)
time.sleep(0.5)
print "Motion Detected..."
time.sleep(3)
time.sleep(0.1) #loop delay
GPIO.cleanup()
ตัวอย่างการเชื่อมต่อ