• 沒有找到結果。

4.3 系統程式設計

4.3.4 發送警報

在動作偵測到之後的影像,我們藉由 Node.js 監看目錄的情形,

並在檔案產生時,擷取檔名後將警報檔案寄出,如圖 4.11。

圖 4.11 發生事件後,傳出的 email 警報圖

4.3.5 雲台控制、藍芽電器開關控制

雲台控制的部分,本研究使用 Node.js 來進行監聽,當瀏覽器發 出請求時,伺服器會收到並呼叫硬體層,利用 pi-blaster[17],來執行 相對應的指令,以下為相關部分之截圖,如圖 4.12、圖 4.13

圖 4.13 Server 端接收請求、並發送控制訊號給硬體,並回傳完 成結果至 Client 端。

以下為本研究伺服器端可操作的 PWM 範圍,如表 7;而旋轉雲 台操作相關數據範圍,如表 8。

最小週期 0.01ms

最大週期 10ms

表 7 伺服器端控制參數

角度(pin) 水平(24) 俯仰(23)

最小 0.08 0.16

最大 0.20 0.22

表 8 旋轉雲台操作參數

藍芽控制的部分,本研究利用藍芽搜尋並連接配對電器開關後,

選擇連接的藍芽頻道,連接成功之後,利用發送訊息的方式來控制電 器開關如圖 4.14,發送的訊息如表 9,相關結果如圖 4.15、圖 4.16。

圖 4.14 藍芽連接流程

開 SW1=0xFF

關 SW1=0x00

表 9 藍芽開關傳送之訊息

圖 4.15 藍芽開關電器成果圖

第5章 問題討論

本研究整個過程主要工作包括硬體、軟體、影像參數的調整 優化等等,當中遇到一些問題,以下是對發生的問題做個整合的 描述。

本系統伺服器端的程式都是在 Linux 的環境下開發,在實際 要使用某些服務時,有時要使用專門為嵌入式系統所作的版本才 能夠正常使用;效能方面,因為嵌入式系統的資源有限,CPU 的 速度與 SDRAM 的大小皆不如預期,在實作的時候時常有記憶體 不足的情況發生。

在程式開發上,原本因為裝置占用的問題,不知道該如何實 現同時錄影與串流這項功能,在之後就改變流程,錄影不從原始 的裝置去取得影像資訊,而是藉由串流去取得影像資訊並錄影。

在硬體結構上,原本在實作 PWM 架構時,一直沒辦法測出 是什麼原因導致雲台無法操作,最後發現是自己沒有共地已形成 迴路,才導致平台沒辦法運作,所以在電學這方面還須作加強。

第6章 結論與未來目標

本研究所發展的安全監控系統,是由 node.js 為後端來進行開發,

在移植性與可擴充性上具有相當的優勢;而也因為現在網路的發達,

Open Source 的資源相當豐富,在管控程式碼時,不用再像傳統需要 透過設定後,去傳輸或燒錄程式進嵌入式裝置,還進而可以更方便的 管理程式碼,達成一人多機的開發需求。新的網路標準制定,讓我們 在開發 Browser/Server 的應用程式時,可以有更多實現的空間,

Websocket 是一個讓其發展迅速的技術之一,客戶端與伺服端溝通不 再需要特製的媒介,只要瀏覽器有支援的前提下,我們就能夠做出具 有一樣效果的網頁應用程式;在硬體方面,Raspberry Pi 提供了 H.264 的編/解碼器,但現在網頁瀏覽器還不能夠直接播放 H.264 協定的影 片,所以本研究沒有對這方面去加以探討,如果之後的標準有更新,

也是一個好發展的目標。近日 WebRTC 也逐漸盛行,點對點的通訊在 瀏覽器的實作上又更進一步,隨著標準的建立,可以讓應用程式的開 發模式可以有更新的想法及運用。

參考文獻

[1] Ian Hickson, Robin Berjon, Steve Faulkner, Travis Leithead, Erika Doyle Navara, Edward O'Connor and Silvia Pfeiffer. (2014, October 28). HTML5 (Recommendation) [Online]. Available:

http://www.w3.org/TR/html5

[2] Alexis Deveria (2015). Fyrd/caniuse [Online]. Available:

https://github.com/Fyrd/caniuse

[3] Chu Hung Lin (2015, Jan 23). mouse170/find-foxmosa [Online].

Available: https://github.com/mouse170/find-foxmosa

[4] Ian Hickson (2012, September 2012). The Websocket API (Candidate

Recommendation) [Online]. Available:

http://www.w3.org/TR/websockets

[5] Phoboslab (2015, Jun 3). Phoboslab/jsmpeg – GitHub [Online].

Available: https://github.com/phoboslab/jsmpeg

[6] Automattic co. (2015, July 15). Automattic/socket.io [Online].

Available: https://github.com/Automattic/socket.io

[7] S. Tilkov and S. Vinoski, “Node.js: Using JavaScript to Build High-Performance Network Programs,” IEEE Internet Computing, vol. 14, no. 6, pp. 80 –83, Nov–Dec 2010

[8] jbandi (2012, Dec 14). vert.x - asynchronous event-driven web applications on the JVM [Online]. Available:

http://www.slideshare.net/jbandi/vertx-asynchronous-eventdriven-web-applications-on-the-jvm

[9] (2014). 怎样理解阻塞非阻塞与同步异步的区别? - 网络编程 -

知乎 [Online]. Available: http://www.zhihu.com/question/19732473 [10] Caesar Chi (2014, September 4). 技術轉換需知,學習 Node.js 的

前期準備 [Online]. Available:

http://blog.caesarchi.com/2014/09/nodejs_7.html

[11] (2015, Aug 1) FFMpeg [Online]. Available: https://www.ffmpeg.org/

[12] Raspberry Pi 1 Model b [Online]. Available:

https://www.raspberrypi.org/products/model-b/

[13] Downloads | Raspberry Pi [Online]. Available:

http://www.raspberrypi.org/downloads/

[14] jacksonliam (2015, May 1). jacksonliam/mjpg-streamer, Available:

https://github.com/jacksonliam/mjpg-streamer

[15] (2015, Jun 25). fluent-ffmpeg/node-fluent-ffmpeg [Online]. Available:

https://github.com/fluent-ffmpeg/node-fluent-ffmpeg

[16] Mike Maelzer (2014, Mar 12). mmaelzer/motion [Online]. Available:

https://github.com/mmaelzer/motion

[17] Thomas Sarlandie (2015, Jun 25). sarfata/pi-blaster, Available:

https://github.com/sarfata/pi-blaster

參考書目

[1] 吳正中, “影音串流技術的研究與應用實作”, 義守大學, 2007 [2] 蔡德明, 鳥哥的 Linux 私房菜 基礎學習篇, 第三版, 碁峯資訊股

份有限公司, 2011

[3] 錢逢祥、蔡政崇、楊傑文, Node.js 模組參考手冊, 初版, 松崗資產 管理股份有限公司, 2015

相關文件