ควบคุมการทำงาน PIR sensor - mrolarik/simple-iot GitHub Wiki

PIR (passive infrared) Sensor

PIR 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()

ตัวอย่างการเชื่อมต่อ

PIR-01 PIR-02

การประยุกต์ใช้งาน