Xây dựng mạng máy ảnh bảo mật Raspberry Pi

Build Raspberry Pi Security Camera Network



Mô-đun camera chính thức của Raspberry Pi có thể được sử dụng như một camera an ninh. Bạn có thể chia sẻ luồng video camera trên mạng và truy cập từ xa từ bất kỳ thiết bị nào trên Mạng cục bộ (LAN) của bạn.

Bạn có thể sử dụng trình phát phương tiện VLC để chia sẻ luồng video trên cổng TCP và truy cập từ bất kỳ thiết bị nào trên Mạng cục bộ (LAN) của mình bằng trình phát phương tiện VLC.







Trong bài viết này, tôi sẽ hướng dẫn bạn cách xây dựng một camera an ninh Raspberry Pi và phát trực tuyến nguồn cấp dữ liệu video camera từ Raspberry Pi bằng trình phát phương tiện VLC.



Vậy hãy bắt đầu!



Những thứ bạn sẽ cần

Để theo dõi bài viết này, bạn sẽ cần những thứ sau:





  1. Raspberry Pi 3 hoặc Raspberry Pi 4
  2. Mô-đun máy ảnh Raspberry Pi
  3. Bộ chuyển đổi nguồn Micro-USB (Raspberry Pi 3) hoặc USB Type-C (Raspberry Pi 4)
  4. Thẻ MicroSD 16 GB hoặc 32 GB với Hệ điều hành Raspberry Pi đã nhấp nháy
  5. Kết nối mạng trên Raspberry Pi
  6. Máy tính xách tay hoặc máy tính để bàn cho máy tính để bàn từ xa VNC hoặc truy cập SSH vào Raspberry Pi.

GHI CHÚ : Nếu bạn không muốn truy cập Raspberry Pi của mình từ xa qua SSH hoặc VNC, bạn cũng cần kết nối màn hình, bàn phím và chuột với Raspberry Pi của mình. Tôi sẽ không cần bất kỳ thứ nào trong số này vì tôi sẽ kết nối Raspberry Pi của mình từ xa qua VNC hoặc SSH. Thiết lập của tôi được gọi là thiết lập không đầu của Raspberry Pi.

Nếu bạn cần bất kỳ hỗ trợ nào về cách flash hình ảnh Hệ điều hành Raspberry Pi trên thẻ nhớ microSD, hãy xem bài viết của tôi: Cách cài đặt và sử dụng Raspberry Pi Imager.



Nếu bạn là người mới bắt đầu sử dụng Raspberry Pi và bạn cần bất kỳ hỗ trợ nào để cài đặt Hệ điều hành Raspberry Pi trên Raspberry Pi của mình, hãy xem bài viết của tôi: Cách cài đặt hệ điều hành Raspberry Pi trên Raspberry Pi 4 .

Nếu bạn cần bất kỳ hỗ trợ nào về thiết lập không cần sử dụng Raspberry Pi, hãy xem bài viết của tôi: Cách cài đặt và cấu hình hệ điều hành Raspberry Pi trên Raspberry Pi 4 mà không cần màn hình ngoài.

Nếu bạn cần bất kỳ hỗ trợ nào về việc kết nối mô-đun máy ảnh Raspberry Pi trên Raspberry Pi, hãy xem bài viết của tôi: Sử dụng mô-đun máy ảnh Raspberry Pi .

Bật mô-đun máy ảnh Raspberry Pi

Giao diện máy ảnh bị tắt theo mặc định trên Hệ điều hành Raspberry Pi. Bạn có thể kích hoạt nó từ công cụ cấu hình Raspberry Pi, raspi-config .

Khởi động công cụ cấu hình Raspberry Pi bằng lệnh sau:

$ sudo raspi-config

Lựa chọn Tùy chọn giao diện và hãy nhấn .

Lựa chọn Máy ảnh và hãy nhấn .

Lựa chọn và hãy nhấn .

nhấn .

Lựa chọn và hãy nhấn .

Lựa chọn và hãy nhấn . Raspberry Pi của bạn sẽ khởi động lại và các thay đổi sẽ được áp dụng.

Cài đặt VLC Media Player

VLC Media Player có sẵn trong kho gói chính thức của Hệ điều hành Raspberry Pi. Vì vậy, thật dễ dàng để cài đặt nó trên Hệ điều hành Raspberry Pi.

Đầu tiên, hãy cập nhật bộ đệm ẩn của kho lưu trữ gói APT bằng lệnh sau:

Cập nhật $ sudo apt

Để cài đặt VLC Media Player, hãy chạy lệnh sau:

$ sudo apt install vlc -y

VLC Media Player nên được cài đặt. Trong trường hợp của tôi, nó đã được cài đặt.

Tạo Máy chủ Camera với VLC Media Player

Các chia rẽ được sử dụng để quay video từ mô-đun máy ảnh Raspberry Pi. Tôi đã giải thích cách sử dụng chia rẽ lệnh quay video bằng Raspberry Pi trong bài viết của tôi Sử dụng mô-đun máy ảnh Raspberry Pi .

VLC Media Player có trình phát dòng lệnh cvlc . Bạn có thể dùng cvlc lệnh chia sẻ luồng video trên cổng TCP. Trong trường hợp này, luồng video của mô-đun máy ảnh Raspberry Pi.

Để chia sẻ nguồn cấp dữ liệu video máy ảnh Raspberry Pi trên cổng TCP bằng VLC Media Player, hãy chạy lệnh sau:

$ raspivid -o - -t 0 -hf -w 1920 -h 1080 -fps 30 | cvlc -vvv luồng: /// dev / stdin
--sout '#standard {access = http, mux = ts, dst =: 9000}': demux = h264

Các chia rẽ được sử dụng để quay video từ mô-đun máy ảnh Raspberry Pi.

Đây là ý nghĩa sau của lệnh dưới đây:

  • Chiều rộng video sẽ là 1920 pixel
  • Chiều cao video sẽ là 1080 pixel ( -h 1080 ).
  • Video sẽ được lật theo chiều ngang ( -hf ).
  • Video sẽ được quay với tốc độ 30 khung hình / giây ( -fps 30 ).
  • Video sẽ được quay không giới hạn số giây ( -t 0 ).
  • Luồng video sẽ được in trên thiết bị đầu cuối thay vì lưu trong tệp ( -hoặc - ).

Bạn có thể thay đổi bất kỳ tùy chọn nào trong số này nếu bạn thấy phù hợp.

Các cvlc được sử dụng để mở cổng TCP và gửi nguồn cấp dữ liệu video máy ảnh Raspberry Pi trên cổng TCP.

Nguồn cấp dữ liệu video được lấy từ đầu vào chuẩn ( luồng: /// dev / stdin ) của thiết bị đầu cuối (sử dụng một đường ống | ).

VLC sẽ sử dụng codec TS để ghép kênh ( –Sout ‘# tiêu chuẩn {…, mux = ts,…}’ ) nguồn cấp dữ liệu video đầu vào và codec H264 để phân kênh ( : demux = h264 ) nguồn cấp dữ liệu video đầu ra.

Luồng video sẽ có sẵn trên cổng HTTP 9000 ( –Sout ‘#standard {access = http,…, dst =: 9000}’ ).

Khi bạn chạy lệnh và quá trình lưu vào bộ đệm hoàn tất, bạn có thể phát trực tuyến video từ bất kỳ thiết bị nào trên mạng bằng VLC Media Player.

Truyền trực tuyến Nguồn cấp dữ liệu máy ảnh từ Máy chủ máy ảnh Raspberry Pi

Để truy cập nguồn cấp dữ liệu camera từ các thiết bị khác trong mạng gia đình (LAN), bạn cần biết địa chỉ IP của Raspberry Pi.

Bạn có thể tìm thấy địa chỉ IP của Raspberry Pi từ giao diện quản lý web của bộ định tuyến tại nhà. Trong trường hợp của tôi, địa chỉ IP là 192.168.0.103. Nó sẽ khác cho bạn. Vì vậy, hãy đảm bảo thay thế nó bằng của bạn từ bây giờ.

Nếu bạn có quyền truy cập vào bảng điều khiển Raspberry Pi, bạn cũng có thể chạy lệnh sau để tìm địa chỉ IP.

$ hostname -Tôi

Khi bạn biết địa chỉ IP của Raspberry Pi, hãy mở ứng dụng VLC Media Player và truy cập Một nửa > Mở luồng mạng… như thể hiện trong ảnh chụp màn hình bên dưới.

Nhập URL của máy chủ camera vào Vui lòng nhập URL mạng phần. Trong trường hợp của tôi, URL là http://192.168.0.103:9000 .

Khi bạn đã nhập xong URL, hãy nhấp vào Chơi .

VLC Media Player sẽ bắt đầu phát trực tuyến nguồn cấp dữ liệu video từ Raspberry Pi, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Bây giờ, dừng máy chủ camera bằng cách nhấn + NS .

Khởi động Máy chủ Máy ảnh khi Khởi động Hệ thống

Khởi động máy chủ máy ảnh theo cách thủ công mỗi lần, bạn khởi động Raspberry Pi của mình không thực tế lắm. Vì vậy, chúng ta có thể tạo một dịch vụ systemd cho máy chủ camera sẽ tự động khởi động máy chủ camera khi khởi động.

Đầu tiên, hãy tạo một camera-stream- HTTP. Dịch vụ tập tin trong / etc / systemd / system / thư mục như sau:

$ sudo nano /etc/systemd/system/camera-stream-http.service

Nhập các dòng sau vào camera-stream-http.service tập tin.

[Đơn vị]
Mô tả = Máy chủ phát trực tuyến máy ảnh Raspberry Pi
After = network.target
[Dịch vụ]
WorkingDirectory = / home / pi
Môi trường = APP_RES_WIDTH = 800
Môi trường = APP_RES_HEIGHT = 450
Môi trường = APP_RES_FPS = 24
Môi trường = APP_PORT = 9000
ExecStart = / bin / bash -c 'raspivid -o - -t 0 -hf -w $ APP_RES_WIDTH -h
$ APP_RES_HEIGHT -fps $ APP_RES_FPS | cvlc -vvv luồng: /// dev / stdin
--sout '#standard {access = http, mux = ts, dst =: $ APP_PORT}': demux = h264 '
StandardOutput = kế thừa
StandardError = inherit
Khởi động lại = luôn luôn
Người dùng = pi
[Cài đặt]
WantedBy = multi-user.target

Bạn có thể điều chỉnh các biến môi trường sau để định cấu hình máy chủ camera khi bạn thấy phù hợp.

Môi trường = APP_RES_WIDTH = 800
Môi trường = APP_RES_HEIGHT = 450
Môi trường = APP_RES_FPS = 24
Môi trường = APP_PORT = 9000

Khi bạn đã hoàn tất, hãy nhấn + NS theo dõi bởi VÀ, để cứu camera-stream-http.service tập tin.

Tải lại các daemon systemd để các thay đổi có hiệu lực như sau:

$ sudo systemctl daemon-tải lại

Như bạn có thể thấy, camera-stream-http dịch vụ systemd hiện không chạy.

$ sudo systemctl status camera-stream-http.service

Bạn có thể bắt đầu camera-stream-http dịch vụ hệ thống với lệnh sau:

$ sudo systemctl start camera-stream-http.service

Các camera-stream-http dịch vụ sẽ hoạt động / đang chạy, như bạn có thể thấy trong ảnh chụp màn hình bên dưới. Vì thế, camera-stream-http dịch vụ systemd đang hoạt động.

$ sudo systemctl status camera-stream-http.service

Bạn có thể thêm camera-stream-http dịch vụ systemd để khởi động hệ thống của Raspberry Pi OS bằng lệnh sau:

$ sudo systemctl bật camera-stream-http.service

Để các thay đổi có hiệu lực, hãy khởi động lại Raspberry Pi của bạn bằng lệnh sau:

$ sudo khởi động lại

Sau khi Raspberry Pi của bạn khởi động, camera-stream-http dịch vụ systemd phải đang hoạt động / đang chạy, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

$ sudo systemctl status raspi-home-Automation.service

Phần kết luận

Trong bài viết này, chúng tôi đã giới thiệu cho các bạn cách xây dựng camera an ninh Raspberry Pi và truy cập nguồn cấp dữ liệu video từ mạng gia đình (LAN) bằng VLC Media Player. Nếu bạn chỉ muốn thiết lập camera an ninh Raspberry Pi đơn giản, bài viết này sẽ giúp bạn bắt đầu.