透過 Motion 軟體,Raspberry Pi 可輕鬆變身網路攝影機伺服器,讓使用者從遠端瀏覽器存取攝影機畫面。此方案支援 USB 攝影機和 Raspberry Pi Camera Module,並提供詳細的設定步驟,包含修改組態檔案、啟動服務等。文章也涵蓋進階設定,例如埠轉發及動態網域名稱設定,讓使用者能從外部網路存取攝影機畫面,並確保連線穩定性。

建立網路攝像頭伺服器

…(待續)

設定Raspberry Pi為網路攝影機伺服器

問題描述

您想要設定Raspberry Pi作為網路攝影機伺服器,以便從網路上的其他地方使用瀏覽器存取攝影機。

解決方案

您可以使用USB網路攝影機或Raspberry Pi Camera Module作為網路攝影機,並使用motion軟體進行設定。這將允許您從網路上的其他地方使用瀏覽器存取攝影機。

安裝Motion軟體

首先,下載並安裝motion軟體。這將允許您設定Raspberry Pi與USB網路攝影機或Raspberry Pi Camera Module,然後您可以從網路上的其他地方使用瀏覽器存取攝影機。

安裝命令

sudo apt-get update
sudo apt-get install motion

組態Motion軟體

安裝完成後,您需要進行一些組態變更。首先,編輯motion的組態檔案。這個檔案相當大,在檔案的頂部,您會找到以下這行:

daemon off

將其改為:

daemon on

另一個變更是在檔案的更下方,您需要將以下這行:

webcam_localhost = on

改為:

webcam_localhost = off

其他組態變更

還有一個檔案需要變更,請執行以下命令:

sudo nano /etc/default/motion

將以下這行:

start_motion_daemon=no

改為:

start_motion_daemon=yes

然後,將以下這行:

stream_localhost on

改為:

stream_localhost off

啟動網路服務

要啟動網路服務,請執行以下命令:

sudo service motion start

或者:

sudo /etc/init.d/motion start

內容解密:

以上步驟將允許您設定Raspberry Pi作為網路攝影機伺服器,並使用motion軟體進行管理。透過這些步驟,您可以從網路上的其他地方使用瀏覽器存取攝影機。注意,以上命令和組態變更需要在Raspberry Pi的終端機中執行。

圖表翻譯:

  graph LR
    A[安裝Motion軟體] --> B[組態Motion軟體]
    B --> C[啟動網路服務]
    C --> D[存取網路攝影機]
    style A fill:#f9f,stroke:#333,stroke-width:4px
    style B fill:#f9f,stroke:#333,stroke-width:4px
    style C fill:#f9f,stroke:#333,stroke-width:4px
    style D fill:#f9f,stroke:#333,stroke-width:4px

此圖表顯示了設定Raspberry Pi作為網路攝影機伺服器的步驟,從安裝Motion軟體到啟動網路服務和存取網路攝影機。每個步驟都對應到上述解決方案中的具體行動。

使用Raspberry Pi建立網路攝影機

啟動Motion服務

首先,啟動Motion服務以啟用網路攝影機的功能。使用以下命令:

sudo service motion start

組態Raspberry Pi Camera Module

如果您使用的是Raspberry Pi Camera Module,需要進行額外的設定。編輯 /etc/modules 檔案:

sudo nano /etc/modules

在檔案末尾新增以下行:

bcm2835-v4l2

儲存並離開編輯器。重新啟動Raspberry Pi後,即可透過網頁瀏覽器檢視攝影機畫面。

存取網路攝影機

要存取網路攝影機,需要知道Raspberry Pi的IP地址(參考配方2.2)。您也可以在Raspberry Pi上的瀏覽器中輸入IP地址加上:8081埠號來檢視攝影機畫面。

討論

Motion軟體非常強大,提供了許多設定選項來自訂攝影機的行為。預設情況下,攝影機只能在區域網記憶體取。如果您想要讓攝影機對整個網際網路開放,需要在家用路由器上設定埠轉發(port forwarding)。

埠轉發設定

要設定埠轉發,需要登入路由器的管理介面,找到埠轉發選項,並啟用對Raspberry Pi IP地址的8081埠號的轉發。這樣,您就可以透過網際網路存取攝影機。

動態網域名稱服務(DNS)

如果您想要為攝影機設定一個固定的網域名稱,可以使用No-IP等服務提供動態網域名稱服務(DNS)。這樣,即使您的IP地址變化,網域名稱也會自動更新。

執行復古遊戲主機

問題

您想要將Raspberry Pi轉換為一個復古遊戲主機。

解決方案

如果您想重溫童年時光,在Atari 2600模擬器上玩Asteroids(圖4-4),RetroPie專案將是您的最佳選擇。

討論

RetroPie專案提供了一個簡單的方式來建立一個復古遊戲主機。雖然您可以在Raspbian上安裝RetroPie,但下載一個已經組態好的磁碟映像並將其寫入SD卡(參考配方1.7)是最簡單的方法。

注意

請注意,即使這些遊戲很古老,它們仍然受到版權保護。雖然可以在網際網路上找到ROM映像檔案,但它們可能不是您的合法財產。因此,請務必遵守法律。

額外資源

您可以在網際網路上找到許多人將基本設定增加了復古USB控制器,並將Pi和監視器建入一個大型街機式外殼的例子。您也可以購買Pimoroni的Picade套件來建立一個漂亮的街機機器(圖4-5)。

綜觀現今物聯網與居家監控的蓬勃發展,利用 Raspberry Pi 建立網路攝影機伺服器已成為經濟實惠且高度客製化的解決方案。本文深入探討了從軟體安裝、設定到遠端存取的完整流程,並涵蓋了 Raspberry Pi Camera Module 和 USB 攝影機的整合方式。然而,motion 軟體的設定複雜度和安全性仍是使用者需要關注的議題。透過埠轉發及動態網域名稱服務,雖可實作遠端監控,但需審慎評估資安風險,並強化相關設定,例如設定強密碼、限制存取許可權等,以避免未經授權的存取。展望未來,隨著邊緣運算的興起,預期 Raspberry Pi 攝影機伺服器將整合更多 AI 功能,例如物件辨識、動作偵測等,進一步提升其應用價值。對於追求高度客製化和經濟效益的使用者而言,Raspberry Pi 攝影機伺服器仍將是極具吸引力的選擇。建議使用者深入研究 motion 軟體的進階設定,並持續關注相關安全議題,才能在享受便利的同時,確保系統安全無虞。