6 มกราคม 2562

Published มกราคม 06, 2562 by with 0 comment

เขียน Python ใช้ HC SR501 ตรวจจับการเคลื่อนไหว กับ Raspberry Pi แบบง่าย ๆ

สวัสดีผู้อ่านทุกท่านครับ เมื่อปีใหม่ผมได้ไปอุปกรณ์สำหรับทำ IoT มา โดยผมได้ HC SR501 มา ทำให้ผมอยากลองอะไรเล่น ๆ นั้นคือ ใช้ HC SR501 ตรวจจับการเคลื่อนไหว กับ Raspberry Pi แบบง่าย ๆ หากตรวจจับเจอการเคลื่อนไหวให้ขึ้น on ถ้าไม่เจอให้ขึ้น off


อุปกรณ์ที่ต้องใช้
  • สาย jump ผู้-เมีย 6 เส้น สีแดง สีเหลือง และ สีดำ
  • บอร์ดทดลอง breadboard 1 อัน
  • Raspberry Pi 3 (ตัวอื่นก็ได้)
  • HCSR501
ขั้นตอนการต่อวงจร
  1. ประกอบสาย jump ผู้-เมีย 6 เส้น ให้เรียบร้อย โดยต่อสาย jump แรกที่ raspberry pi 3 สีดำ pin 4 (5v), สีเหลือง pin 29  (GPIO 21) และ สีแดง pin 20 (Ground)
  2. ต่อสาย สีแดงกับ 5V , สีเหลืองกับสัญญาณ และ สีดำกับ Gnd
  3. เสียบกับบอร์ดทดลอง breadboard ตัวอย่างเช่น เสียบของ pi ที่ f ส่วนของ HCSR501 เว้นไว้หนึ่งช่อง คือ เสียบที่ h เรียงสีเส้นให้ตรงกัน
  4. เขียนโปรแกรม
หลังต่อวงจรเรียบร้อยเรามาเขียนโปรแกรมตรวจจับการเคลื่อนไหวด้วย HC SR501 กับ Raspberry Pi 3  ด้วย Python กัน

ในการเขียนโปรแกรม Python โดยเชื่อมกับเซ็นเซอร์ทาง GPIO เราสามารถเขียนได้โดยอาศัยโมดูล RPi.GPIO โดยจะมาพร้อมกับ Raspbian desktop image (อ่านเอกสารได้ที่ https://sourceforge.net/projects/raspberry-gpio-python/)

ทำการเชื่อมต่อกับ Raspberry Pi 3 แล้วทำการสร้างไฟล์และโค้ดด้วย nano
nano hi.py
เสร็จแล้วทำการโค้ด
import time
import RPi.GPIO as GPIO
#GPIO.cleanup()
PIR_input = 29                          #PIN ที่รับสัญญาณ คือ 29
GPIO.setwarnings(True)#False) # กำหนดให้โชว์การเตือน
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIR_input, GPIO.IN)
try:
 while True:
#when motion detected turn on LED
     if(GPIO.input(PIR_input)==1): # ถ้าพบการเคลื่อนไหว
         print("ok")
         time.sleep(10)
     else: # หากไม่พบ
         print("off")
         time.sleep(0.75)
except:
 GPIO.cleanup()
หากต่อวงจรถูกต้อง โปรแกรมจะทำงานได้ เมื่อพบความเคลื่อนไหวจะขึ้น on หลังจากสิ่งที่เคลื่อนไหวผ่านไป รอสักหน่อย โปรแกรมจะกลับไปโชว์ off ไม่พบการเคลื่อนไหว

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)