0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng dẫn thiết lập camera Raspberry Pi với Shinobi giám sát 24/7

Đăng vào 5 giờ trước

• 8 phút đọc

Hướng dẫn thiết lập camera Raspberry Pi với Shinobi giám sát 24/7

Hướng dẫn này sẽ đưa bạn qua các bước thiết lập camera Raspberry Pi với phần mềm CCTV mã nguồn mở Shinobi. Chúng tôi sẽ đề cập đến các vấn đề phần cứng, mạng và hiệu suất thường gặp để tạo ra một giải pháp giám sát ổn định, hoạt động ngay cả trên các thiết bị có tài nguyên hạn chế như Raspberry Pi 2.

Mục tiêu

Thiết lập một hệ thống giám sát CCTV tin cậy và hiệu quả, có khả năng hoạt động 24/7 với chi phí thấp.

Các yêu cầu cần thiết

Phần cứng

  • Raspberry Pi: Đã thử nghiệm trên Pi 2.
  • Camera: Module camera CSI tương thích (OV5647).
  • Nguồn điện: Cung cấp nguồn ổn định.
  • Thẻ SD: Tối thiểu 32GB.

Phần mềm

  • Hệ điều hành: Cài đặt Raspberry Pi OS mới.
  • Khách hàng SSH: Sử dụng để kết nối từ xa.
  • Mạng: Kiến thức cơ bản về cấu hình router và truy cập mạng cục bộ.

Bước 1: Cài đặt cơ bản Raspberry Pi

Cấu hình cơ bản

  1. Flash Raspberry Pi OS: Sử dụng Raspberry Pi Imager để cài đặt Raspberry Pi OS Lite (không có giao diện đồ họa) hoặc có Desktop.
  2. Bật SSH: Trong quá trình ghi hình, bật SSH trong tùy chọn nâng cao hoặc bật sau khi khởi động bằng sudo raspi-config.
  3. Khởi động lần đầu: Kết nối qua SSH và cập nhật hệ thống:
    Copy
    sudo apt-get update && sudo apt-get upgrade -y

Xác minh phần cứng camera

Trước khi cài đặt bất kỳ thứ gì, hãy xác minh camera hoạt động:

bash Copy
libcamera-hello -t 2000

Bạn sẽ thấy một bản xem trước 2 giây (trên màn hình kết nối) hoặc lệnh hoàn tất mà không có lỗi "camera not found". Nếu không thành công, kiểm tra kết nối cáp ribbon - mọi thứ khác phụ thuộc vào điều này.

Bước 2: Cài đặt Shinobi

Chạy Trình cài đặt chính thức

  1. Chuyển sang root và chạy trình cài đặt:
    Copy
    sudo su
    sh <(curl -s https://cdn.shinobi.video/installers/shinobi-install.sh)
  2. Chọn "Ubuntu Touchless" khi được yêu cầu - điều này hoạt động tốt nhất cho các cài đặt Raspberry Pi.
  3. Giải quyết vấn đề IPv6: Nếu được hỏi về việc tắt IPv6, chọn "Yes" để tránh các vấn đề kết nối trong quá trình cài đặt.

Cấu hình mạng quan trọng

Phần này thường bị bỏ qua: Shinobi chỉ liên kết với IPv6 theo mặc định, làm cho nó không thể truy cập từ các thiết bị khác trên mạng của bạn.

  1. Chỉnh sửa tệp cấu hình:
    Copy
    sudo nano /home/Shinobi/conf.json
  2. Thêm tham số IP (không phải "host") ở đầu JSON:
    json Copy
    {
       "ip": "192.168.20.15",
       "port": 8080,
       ...
    Thay thế 192.168.20.15 bằng địa chỉ IP thực tế của Pi của bạn.
  3. Khởi động lại Shinobi:
    Copy
    sudo pm2 restart camera
  4. Xác minh hoạt động:
    Copy
    sudo netstat -tlnp | grep :8080
    Bạn nên thấy cả hai mục tcptcp6, không chỉ tcp6.

Thiết lập ban đầu Shinobi

  1. Truy cập bảng điều khiển superuser: Mở http://YOUR_PI_IP:8080/super trong trình duyệt của bạn.
  2. Thông tin đăng nhập mặc định:
    • Tên người dùng: admin@shinobi.video
    • Mật khẩu: admin
  3. Tạo tài khoản quản trị viên thông qua bảng điều khiển superuser.
  4. Đăng nhập vào giao diện chính: Truy cập http://YOUR_PI_IP:8080 (không có /super) bằng thông tin đăng nhập mới của bạn.
  5. Thay đổi thông tin đăng nhập superuser ngay lập tức trong tab Tùy chọn để bảo mật.

Bước 3: Dòng phát camera

Tạo một luồng video đáng tin cậy mà Shinobi có thể kết nối.

Cài đặt các gói cần thiết

bash Copy
sudo apt-get install -y gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad netcat-openbsd

Tạo script phát

  1. Tạo tệp script:
    Copy
    nano /home/first/streamscript
  2. Thêm pipeline này (tối ưu cho độ tin cậy hơn là chất lượng):
    bash Copy
    #!/bin/bash
    
    # Luồng MJPEG đáng tin cậy sử dụng mã hóa phần mềm
    # Mã hóa phần cứng không khả dụng trên các mô hình Pi cũ
    
    BOUNDARY="--boundary"
    
    PIPELINE="gst-launch-1.0 -q libcamerasrc ! video/x-raw,width=320,height=240,framerate=10/1 ! jpegenc ! multipartmux boundary=${BOUNDARY} ! filesink location=/dev/stdout"
    
    while true; do
      {
        echo -e "HTTP/1.0 200 OK\r\nContent-Type: multipart/x-mixed-replace; boundary=${BOUNDARY}\r\n";
        ${PIPELINE};
      } | nc -l -p 8090
    done
  3. Làm cho script có thể thực thi:
    Copy
    chmod +x /home/first/streamscript

Bước 4: Thiết lập dịch vụ nền

Thiết lập khởi động tự động và phục hồi khi gặp sự cố bằng cách sử dụng dịch vụ người dùng systemd.

Tạo dịch vụ

  1. Tạo thư mục dịch vụ:
    Copy
    mkdir -p ~/.config/systemd/user/
  2. Tạo tệp dịch vụ:
    Copy
    nano ~/.config/systemd/user/shinobi-stream.service
  3. Thêm cấu hình dịch vụ:
    ini Copy
    [Unit]
    Description=Shinobi Camera Streamer
    Wants=graphical-session.target
    After=graphical-session.target
    
    [Service]
    ExecStart=/home/first/streamscript
    Restart=always
    RestartSec=5
    
    [Install]
    WantedBy=default.target

Kích hoạt và bắt đầu

Chạy các lệnh này không có sudo (quan trọng cho dịch vụ người dùng):

bash Copy
systemctl --user daemon-reload
systemctl --user enable shinobi-stream.service
systemctl --user start shinobi-stream.service

Kích hoạt tự động khởi động khi khởi động

Bước quan trọng này giúp dịch vụ khởi động ngay cả khi bạn không đăng nhập:

bash Copy
sudo loginctl enable-linger first

Khởi động lại Pi của bạn để kiểm tra xem mọi thứ có khởi động đúng không.

Bước 5: Cấu hình giám sát Shinobi

Kết nối Shinobi với luồng camera của bạn.

  1. Thêm giám sát mới: Nhấp vào biểu tượng + trong bảng điều khiển Shinobi.
  2. Cài đặt kết nối:
    • Loại đầu vào: MJPEG
    • Địa chỉ URL đầy đủ: http://127.0.0.1:8090
  3. Cài đặt luồng:
    • Tốc độ khung hình: 10
    • Chiều rộng: 320
    • Chiều cao: 240
  4. Lưu và kiểm tra: Bạn nên thấy video trực tiếp ngay lập tức.

Bước 6: Tinh chỉnh hiệu suất

Phần cứng hạn chế tài nguyên yêu cầu sự cân bằng cẩn thận giữa chất lượng và hiệu suất.

Hiểu các giới hạn

Các mô hình Raspberry Pi cũ không có bộ mã hóa video phần cứng mà GStreamer có thể truy cập. Mọi thứ đều chạy trên CPU, vì vậy việc tối ưu hóa là rất quan trọng.

Tinh chỉnh tham số

Điều chỉnh biến PIPELINE trong /home/first/streamscript:

Để có hiệu suất tốt hơn (giảm mức sử dụng CPU):

bash Copy
PIPELINE="gst-launch-1.0 -q libcamerasrc ! video/x-raw,width=160,height=120,framerate=5/1 ! jpegenc quality=50 ! multipartmux boundary=${BOUNDARY} ! filesink location=/dev/stdout"

Để có chất lượng tốt hơn (tăng mức sử dụng CPU):

bash Copy
PIPELINE="gst-launch-1.0 -q libcamerasrc ! video/x-raw,width=640,height=480,framerate=15/1 ! jpegenc quality=90 ! multipartmux boundary=${BOUNDARY} ! filesink location=/dev/stdout"

Theo dõi mức sử dụng CPU bằng htop và điều chỉnh tương ứng.

Khắc phục sự cố các vấn đề thường gặp

"Không thể truy cập từ các thiết bị khác"

Điều này thường là vấn đề liên kết IPv4/IPv6:

  1. Kiểm tra Shinobi đang lắng nghe trên gì:
    Copy
    sudo netstat -tlnp | grep :8080
  2. Nếu bạn chỉ thấy tcp6, hãy kiểm tra cấu hình của bạn:
    Copy
    sudo grep -A3 -B3 '"ip"' /home/Shinobi/conf.json
  3. Đảm bảo bạn đã sử dụng tham số "ip" chứ không phải "host".

"Luồng không khởi động"

  1. Kiểm tra trạng thái dịch vụ:
    Copy
    systemctl --user status shinobi-stream.service
  2. Xem nhật ký dịch vụ:
    Copy
    journalctl --user -u shinobi-stream.service -f
  3. Kiểm tra camera trực tiếp:
    Copy
    libcamera-hello -t 2000

"Mức sử dụng CPU cao"

  1. Giảm độ phân giải và tốc độ khung hình trong script phát của bạn.
  2. Giảm chất lượng JPEG bằng cách thêm quality=50 vào jpegenc.
  3. Kiểm tra xem có nhiều luồng đang chạy ngẫu nhiên không.

Các vấn đề về bảo mật

Bảo mật mạng

  • Thay đổi thông tin đăng nhập mặc định của Shinobi ngay sau khi thiết lập.
  • Không mở cổng 8080 cho internet thông qua chuyển tiếp cổng router.
  • Sử dụng mật khẩu mạnh cho tất cả các tài khoản.
  • Xem xét quy tắc tường lửa để giới hạn truy cập cho các khoảng IP cụ thể:
    Copy
    sudo ufw allow from 192.168.0.0/16 to any port 8080

Bảo mật hệ thống

  • Thay đổi mật khẩu Pi mặc định nếu bạn chưa làm điều này.
  • Giữ hệ thống được cập nhật bằng cách thường xuyên chạy sudo apt update && sudo apt upgrade.
  • Theo dõi nhật ký truy cập trong bảng điều khiển quản trị Shinobi.

Ghi chú cuối

Cài đặt này ưu tiên độ tin cậy hơn là các tính năng phức tạp. Bạn sẽ có một giải pháp giám sát ổn định, hoạt động 24/7 ngay cả trên phần cứng cũ. Những điểm chính giúp điều này hoạt động:

  1. Sử dụng mã hóa phần mềm - không có bộ mã hóa phần cứng đáng tin cậy.
  2. Khắc phục vấn đề liên kết IPv4 - sử dụng tham số "ip", không phải "host".
  3. Thiết lập dịch vụ systemd hợp lý - đảm bảo phục hồi tự động.
  4. Cài đặt hiệu suất bảo thủ - ngăn chặn sự cố dưới tải.

Khi bạn đã có thiết lập cơ bản này hoạt động đáng tin cậy, bạn có thể thử nghiệm với độ phân giải cao hơn, nhiều camera hoặc các tính năng nâng cao của Shinobi.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào