Tự chế hệ thống giám sát với Raspberry PI, Pi Camera và PIR

Chào các bạn, trong bài viết hôm nay, tôi sẽ hướng dẫn các bạn làm một hệ thống giám sát đơn giản bằng sự kết hợp giữa Pi Camera và cảm biến chuyển động PIR trên Raspberry PI 3 B+


Chuẩn bị

  1. Cảm biến chuyển động PIR HC-SR501
  2. Combo Raspberry Pi 3 Model B+ Cơ Bản
  3. Camera Raspberry Pi NoIR V2 8MP

 

Bắt đầu

Trong bài viết này, tôi sẽ kết nối trực tiếp cảm biến chuyển động PIR và Raspberry mà không cần thông qua Breadboard hay điện trở (như hình)

Khởi động RPi và tạo file python pir01.py:

nano pir01.py

 

Paste đoạn code sau vào:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

pirPin = 7
GPIO.setup(pirPin, GPIO.IN, GPIO.PUD_UP)

while True:
    if GPIO.input(pirPin) == GPIO.LOW:
        print "Motion detected!"
    else:
        print "No motion"
    time.sleep(0.2)

 

Lưu ý: để chạy chạy đoạn chương trình Python có sử dụng các cổng GPIO thì bạn phải dùng lệnh sudo kèm theo:

sudo python pir01.py

 

Đoạn chương trình chạy và sẽ in ra "No Motion". Nếu PIR phát hiện bất kì chuyển động nào thì Terminal sẽ in ra "Motion Detected!"

 

Chụp hình nếu phát hiện chuyển động

Bây giờ chúng ta sẽ sửa đổi ví dụ trên để chụp ảnh mỗi khi PIR phát hiện chuyển động. Bằng cách này chúng ta có thể biết được nguồn gốc của những chuyển động diễn ra trong phòng hay ai là kẻ đột nhập phòng của bạn :D 

Tạo ra một file mới pirpi.py

nano pirpi.py

 

Paste đoạn code sau vào:

import RPi.GPIO as GPIO
import time
from picamera import PiCamera

GPIO.setmode(GPIO.BCM)

pirPin = 7
GPIO.setup(pirPin, GPIO.IN, GPIO.PUD_UP)
camera = PiCamera()
counter = 1

while True:
    if GPIO.input(pirPin) == GPIO.LOW:
        try: 
            camera.start_preview()
            time.sleep(1)
            camera.capture('/home/pi/image%s.jpg' % counter)
            counter = counter + 1
            camera.stop_preview()
        except:
            camera.stop_preview()
    time.sleep(3)

Hãy chạy và xem kết quả nhé ! Đừng quên gắn Pi Camera vào trước khi chạy đoạn code nhé haha

 

Quay một đoạn video nếu phát hiện chuyển động

Ở ví dụ trên, chúng ta đã biết được "chân dung" kẻ đột nhập nhưng đó chỉ là những bức ảnh rời rạc và riêng lẻ. Câu hỏi đặt ra là: "Tại sao chúng ta không ghi hình lại kẻ đột nhập nhỉ ??? ". Nào ta cùng thực hiện thôi:

Đầu tiên, tạo một file mới nào:

nano pivideo.py

 

Sau đó, paste đoạn code sau vào:

import RPi.GPIO as GPIO
import time
from picamera import PiCamera

GPIO.setmode(GPIO.BCM)

pirPin = 7
GPIO.setup(pirPin, GPIO.IN, GPIO.PUD_UP)
camera = PiCamera()
counter = 1

while True:
    if GPIO.input(pirPin) == GPIO.LOW:
        try: 
            camera.start_preview()
            camera.start_recording('/home/pi/video%s.h264' % counter)
            counter = counter + 1
            time.sleep(5)
            camera.stop_recording()
            camera.stop_preview()
        except:
            camera.stop_preview()
    time.sleep(3)

.

Cuối cùng, không quên sudo để chạy:

sudo python pivideo.py

Lưu ý: bấm Ctrl+C để dừng chương trình

 

Nguồn: Meccanismo Complesso

Có thể bạn quan tâm ???