影像監控可應用於許多方面,例如居家保全、交通安全、商場管理或工業運行監控等。一般市上可見的監控系統可能是單獨由網路攝影機組成的解決方案,或是由類比攝影機加上影像伺服器(Video Server) 組成的解決方案,或者是兩者混合組成的解決方案(下圖是網路上找的)。
今天想要做的是一個類似上圖架構,化繁為簡的無線傳輸的遠端影像監控,例如說上次做的連續水流參數偵測就可以跟今天做的遠端影像監控結合在一起(把上次的擴充板直接拔起來,插在今天這一塊板子上),當某個運作中的系統發現異常時,管理者可以從遠端直接先用視覺的方式確認有什麼狀況。
這個範例算是Intel Edison for Arduino初體驗的延續,所以關於Intel Edison的組裝,驅動程式的安裝,韌體的更新,內建WiFi的啟動等這裡就不提了。與上次不同的是在做這個例子,我把韌體升成Yocto* Release 3.0,而且是耍笨,在我做好許多設定之後才去升級韌體,結果本來設定好的東西又要重新做一遍。
接下來要說明如何設定好Intel Edison for Ardunio上的Video Server及攝影機,讓使用者可以從遠端看到現場的影像(底下的過程是參考網路上一些文章所完成的)
為了讓所有使用者可連上SSH 伺服器,可以修改 /lib/systemd/system/sshd.socket ,在BindToDevice=usb0 前面加上#
改好後記得重新開機(可下指令reboot)
由於Edison上本來就有預設port 80的HTTP server了,所以在這個例子中是仿網路上的做法用Port 8080做Video Server,有5個動作要做
1.在 /etc/opkg/base-feeds.conf 中加入三行指令(以我的例子來說,這是一個空檔案,直接把下面三行指令加進去就ok了)
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
2.輸入指令
cd /etc/opkg
opkg update
opkg install git
cd /
git clone https://github.com/drejkim/edi-cam.git
3.Edison Linux 已經有內建攝影機UVC 驅動程式,不用再安裝UVC driver, 只需安裝ffmpeg來對攝影機影像,做視訊格式轉換及視訊串流等功能。
cd /edi-cam/bin
./install_ffmpeg.sh
4.安裝Node.js
cd /edi-cam/web/server
npm install
5.修改 /edi-cam/web/client/index.html 檔案中的wsurl的預設網址
var wsUrl = 'ws://myedison.local:8084/';
改成edison WiFi取得的IP,以我的例子是
var wsUrl = 'ws://10.10.100.100:8084/';
完成video server的設定後,就準備在edison上裝上攝影機了,我使用的是Logitech C310,這是符合UVC規格的攝影機
記得先接上外部電源,再將板子上的 SW1 開關到 USB host 端(下圖開關往上切),然後再移除SW1旁邊的Micro USB線,最後接上攝影機USB插頭
可使用 lsusb 看攝影機是否有安裝成功
成功安裝攝影機後,可使用下面指令啟動Video Server
cd /edi-cam/web/server/
node server.js
啟動後,使用筆電上的瀏覽器,輸入IP 網址(我的例子是10.10.100.100:8080)就可看到無線傳輸回來的影像了
在PC上的瀏覽器,FireFox與Chrome都可正常觀看影像,而我XP中的IE影像出不來,而在行動裝置中Android預設的瀏覽器影像出不來,用Chrome則可正常觀看影像
弄完了,嘻嘻嘻