Raspberry Pi: Hệ thống camera giám sát phát hiện chuyển động và thông báo qua Telegram
Trung cấp12/3/2024

Raspberry Pi: Hệ thống camera giám sát phát hiện chuyển động và thông báo qua Telegram

Xây dựng camera giám sát sử dụng Camera Module v3 của Raspberry Pi, tích hợp phát hiện chuyển động bằng OpenCV và gửi ảnh chụp tự động qua Telegram Bot.

CameraOpenCVTelegramSecurityRaspberry Pi
687 lượt thích445 người đã làm1 giờ6 bước4 linh kiện
← Quay lại dự án
Hướng dẫn chi tiết

Phần 5: Hoàn thiện và triển khai hệ thống

1. Tích hợp toàn bộ mã nguồn vào một script hoàn chỉnh, 2. Kiểm tra và debug hệ thống, 3. Tối ưu hóa hiệu suất và giảm độ trễ, 4. Gợi ý các cách bảo mật cho hệ thống camera, 5. Triển khai hệ thống vào thực tế và theo dõi kết quả.

Cập nhật 01/06/2026

Phần 5: Hoàn thiện và triển khai hệ thống

1. Tích hợp toàn bộ mã nguồn vào một script hoàn chỉnh

Trong bước này, chúng ta sẽ tích hợp tất cả các phần mã nguồn đã viết trước đó vào một script hoàn chỉnh. Mã nguồn này sẽ bao gồm việc khởi tạo camera, phát hiện chuyển động, chụp ảnh và gửi thông báo qua Telegram. Dưới đây là một ví dụ về mã nguồn hoàn chỉnh:

import cv2
import numpy as np
import requests
import time
from picamera import PiCamera
from picamera.array import PiRGBArray

# Cấu hình Telegram
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
CHAT_ID = 'YOUR_CHAT_ID'

# Khởi tạo camera
camera = PiCamera()
camera.resolution = (640, 480)
rawCapture = PiRGBArray(camera)
time.sleep(0.1)

# Khởi tạo biến cần thiết
last_frame = None
motion_detected = False

def send_telegram_message(photo_path):
    url = f'https://api.telegram.org/bot{TOKEN}/sendPhoto'
    with open(photo_path, 'rb') as photo:
        requests.post(url, data={'chat_id': CHAT_ID}, files={'photo': photo})

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    image = frame.array
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray = cv2.GaussianBlur(gray, (21, 21), 0)

    if last_frame is None:
        last_frame = gray
        rawCapture.truncate(0)
        continue

    delta_frame = cv2.absdiff(last_frame, gray)
    thresh_frame = cv2.threshold(delta_frame, 25, 255, cv2.THRESH_BINARY)[1]
    thresh_frame = cv2.dilate(thresh_frame, None, iterations=2)

    contours, _ = cv2.findContours(thresh_frame.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
    for contour in contours:
        if cv2.contourArea(contour) < 500:
            continue
        motion_detected = True
        photo_path = 'motion.jpg'
        cv2.imwrite(photo_path, image)
        send_telegram_message(photo_path)

    last_frame = gray
    rawCapture.truncate(0)

2. Kiểm tra và debug hệ thống

Để đảm bảo rằng hệ thống hoạt động ổn định, bạn cần kiểm tra và debug mã nguồn. Hãy thực hiện các bước sau:

  • Chạy script trên Raspberry Pi và kiểm tra xem camera có hoạt động không.
  • Kiểm tra xem có thông báo nào được gửi qua Telegram khi có chuyển động không.
  • Sử dụng các câu lệnh print để in ra các giá trị quan trọng nhằm theo dõi trạng thái của hệ thống.
Lưu ý: Đảm bảo rằng bạn đã cài đặt đúng các thư viện cần thiết như opencv-pythonrequests.

3. Tối ưu hóa hiệu suất và giảm độ trễ

Để hệ thống hoạt động mượt mà hơn, bạn có thể thực hiện một số tối ưu hóa như sau:

  • Giảm độ phân giải của camera nếu không cần thiết phải ghi lại hình ảnh chất lượng cao.
  • Thay đổi khoảng thời gian giữa các lần chụp hình để giảm tải cho CPU.
  • Sử dụng cv2.VideoCapture thay vì PiCamera nếu bạn sử dụng camera USB, vì nó có thể cung cấp hiệu suất tốt hơn trong một số trường hợp.

4. Gợi ý các cách bảo mật cho hệ thống camera

Bảo mật là một yếu tố quan trọng trong bất kỳ hệ thống giám sát nào. Dưới đây là một số gợi ý để bảo mật hệ thống camera của bạn:

  • Sử dụng VPN để truy cập vào Raspberry Pi từ xa.
  • Thay đổi mật khẩu mặc định của Raspberry Pi và các tài khoản liên quan.
  • Cài đặt tường lửa trên Raspberry Pi để hạn chế truy cập không mong muốn.
  • Đảm bảo rằng firmware và các thư viện phần mềm luôn được cập nhật phiên bản mới nhất.

5. Triển khai hệ thống vào thực tế và theo dõi kết quả

Sau khi hoàn thiện và kiểm tra, bạn có thể triển khai hệ thống vào thực tế. Hãy theo dõi kết quả hoạt động của hệ thống:

  1. Đặt camera ở vị trí mong muốn và đảm bảo rằng nó có đủ ánh sáng.
  2. Theo dõi các thông báo được gửi qua Telegram trong vòng vài ngày để kiểm tra tính chính xác của phát hiện chuyển động.
  3. Ghi chú lại các vấn đề phát sinh và điều chỉnh mã nguồn nếu cần thiết.
Tip: Thực hiện kiểm tra định kỳ để đảm bảo rằng hệ thống luôn hoạt động hiệu quả và an toàn.

Với các bước trên, bạn đã hoàn thiện và triển khai thành công hệ thống camera giám sát phát hiện chuyển động và thông báo qua Telegram. Hãy tiếp tục theo dõi và cải tiến hệ thống của bạn để đáp ứng tốt hơn nhu cầu bảo mật!