3 System Architecture
3.3 Adjusting scheme
3.3.1 Determine Block
因為我們的系統偵測的區域設定在都會區,無可避免的會受限於道路走向,
建築物等障礙,舉例來說,下圖的兩種情況就可能會 server 因為長期無法接收 到遭建築物阻礙區域的回報資料,導致 server 不斷調高該處的回報率。
Building
Building
到來自該區塊的資料,並確認該區塊回傳資料的經緯度是否僅集中在某些區域,
若這些區塊根本沒有回傳資料,又或是僅有很小的區域有資料回傳,則 server 就會假定區塊內有足以阻擋 VSN car 的地理障礙,因此會將這些區塊內的回報率 設為最低,減少無意義的資料回報。
CHAPTER 4
Implementation
在本章節,我們將提供實作的細節,完整的系統架構圖如圖 8,包含 Jennic、
CO2 sensor module、GPS、以及 GSM module,圖 10 中,Jennic 會週期性的檢查 GSM 是否有收到訊息,若有,則 Jennic 會處理並保留這些訊息,當已經收到來 自 Server 訊息的 VSN car 進入目標監測區域時,Jennic 會透過 ZigBee 丟訊息 給 CO2 sensor 所在的 Jennic,要求它開始測量 CO2 值,之後會再透過 ZigBee 把 CO2 的值回傳,得到所需資料後,Jennic 就會透過 GSM module 把資料傳給 Server。
圖 10.VSN 車載裝置硬體架構示意圖
VSN device 會依照回報率定期回報空氣中的 CO2濃度,回報率由 Server 根 據不同區塊 CO2濃度值的差異度決定,因為目標設定的感測區域較大,所以 Server 會以 GSM 短訊將命令或資料傳送給各個 VSN node,最後,Server 再將收集到的 data 與 Google Map 整合後呈現。我們的系統分為 Server 和 VSN device,各部 份詳述如下。
4.1 VSN device
VSN device 裝置於許多汽車上,分為三個部份 GPS module[13]、CO2 sensor module[12]、以及 GSM module,其中 GPS module 以及 GSM module 合併放於車 內,而 CO2 sensor module 則獨立安裝於車外,以無線網路將資料傳入車內的裝 置,使其得以順利收集車外的 CO2讀數,我們以 Jennic 晶片[11]將它們整合,
Jennic 支援 802.15.4 protocol,主要設計使用於短距離的無線通訊,我們加上 GSM module 以提供大範圍區域採樣以及資料傳輸。
我們的裝置中,將 CO2 sensor module 和 GPS module 分別組裝於兩塊不同的 Jennic,而 GPS module 與 GSM module 則以 RS-232 連接,當 GPS module 透過 Jennic 提供的 802.15.4 protocol 收到 CO2 sensor module 的採樣資訊,GPS 所 在的 Jennic 會判斷目前的回報率,並依據回報率,經由 RS-232 以 AT Command 控制 GSM module,定期將目前所在地的 CO2濃度以及經緯度回傳給 Server。下
列表 1 為我們所使用裝置之各部功能:
裝置 功能 連接方式
Jennic 整合平台、資料處理 內建 UART Port 以及 I2C 介面
GPS module 提供 GPS 定位資訊 以 UART 連結至 Jennic GSM module 接收/回報資訊 以 RS232 與 Jennic 相連 CO2 sensor module 感測空氣中二氧化碳濃
度
以 802.15.4(ZigBee)與 GPS 所在 Jennic 溝通
表 1.各硬體功能及連接介面
4.1.1 Jennic
我們主要以 Jennic5139 型[11]晶片整合所有 module,它提供了 32-bit RISC CPU 的運算能力、192kB 的 ROM、96kB 的 RAM、2 個 UART port、一個 2.4GHz 收 發器,並支援 802.15.4 protocol,提供短距離的無線通訊能力。圖 11 為 Jennic 的硬體框架簡圖。
圖 11. Jennic 系統架構圖
4.1.2 CO
2Sensor
我們使用 ELT 公司出產的 H550-EV CO2 sensor module[12]來感測空氣中的 CO2 濃度,它是一種電子式的 module,每 3 秒取樣一次,可感測的 CO2濃度範圍 在 0~5000p.p.m.,一般室外空氣中的 CO2 濃度值約為 4~500p.p.m.,因此採用這 個 module 完全可以滿足我們的需求,但此 module 感測到的 CO2數值會略為偏高,
我們在經由與不同種類的化學式 sensor 對照校正後,將採樣的值以一個簡單的 函式向下修正。
CO2 sensor module 以 I-Squared-C 介面與 Jennic 連接,每次由 sensor 感 測到的數值,都會經由 Jennic 下修後,以 802.15.4(ZigBee)傳送至 GPS module
I-Squared-C 是一種串列通訊匯流排,運用在類似 Jennic 的微控制器時,
可以讓週邊在系統運作的同時加入或移出此介面,因此即使同時有複數個週邊,
也可用一個 I-Squared-C 介面來整合。我們採用此介面來整合 Jennic 與 CO2 sensor module 是考量到這個系統的擴充性,以供未來加入其他的 sensor 加強 系統對空氣監測的能力,或者運用於別種用途(例如:溫度、溼度、風向、氣壓 等監測)。
下圖 12 是一個 CO2 sensor module 的實體圖,左邊是一個 H550-EV CO2 sensor module,透過分接的介面連接到右邊 Jennic 的 I-Squared-C 介面,此外電源也 由 Jennic 分接出來,以便於控制 CO2 sensor,以後若要加入新的裝置(例如:
sensor),只需要依照同樣的模式連接該裝置即可。
CO2 sensor
Power I2C BUS
4.1.3 GPS Module
我們使用 Fastrax 公司的 Upatch300 GPS module[13],GPS 的通信介面協定 採用美國的 NMEA(National Marine Electronics Association)0183 ASCII 碼格式協議。並使用 UART port 將 Jennic 與 GPS module 整合,UART(Universal Asynchronous Receiver/Transmitter)可將資料在串列傳輸與平行傳輸間轉 換,我們在此將他用於接收來自 module 的資料,GPS module 會透過 UART port 以每秒一次的頻率送出 GPS 封包,Jennic 收到位置資訊後,就會以 GPS 資訊對 照目前 VSN device 位於哪一個區塊,檢查是否收到來自 CO2 sensor module 所在 Jennic 的 ZigBee 封包後,以相對應的回報率,將二氧化碳濃度數值以及目前的 經緯度透過 GSM module 回傳給 Server。
絕大部分的 GPS module 都遵照 NMEA 0183 規格,NMEA 0183 以 ASCII 碼來 傳輸資料,資料都以 Sentence 的形式一句一句傳送,每一句都以「$」開頭,以 ASCII CODE 的「CR」「LF」結尾,我們將其中定義的兩種輸出資訊作為裝置定位 之用,分別是 GGA、以及 GLL,內容列於表 2 及表 3:
名 稱 實 例 敘 述
訊息代號 $GPGGA GGA 規範抬頭
標準定位時間 220405.427 時時分分秒秒.秒秒秒
北半球或南半球指
圖 13.GPS Module
4.1.4 GSM Module
GSM 是現今應用最普遍的電信標準,為了能做到大範圍區域監測,我們採用 SIMCOM 公司開發的 SIM300 GSM module,透過它以簡訊接收、回傳資料,GSM 以 RS232 和 Jennic 連接,Jennic 會在一個固定週期使用 ATCOMMAND 檢查 GSM module 是否有收到來自 Server 的命令,若有,則 Jennic 會將欲感測範圍的經緯度、應 該切割成多少區塊、各區塊回報率等資料自簡訊中解析保留,以供後續的資料處 理,Jennic 取得這些資訊後,便會主動依各區塊的回報頻率將收集到的資料透 過 AT COMMAND 回傳。
AT COMMAND 原本是開發來用於 Hayes Smartmodem 300 baud modem 的一種 指令集,指令集由許多短的字串組成較長的命令。我們所使用的 GSM module 支 GPS module Jennic
UART Port
下達 AT Command,以完成收發簡訊等動作。
根據 GSM 07.05 的定義,收送 SMS 簡訊有三種模式,一種是 Text 模式,適 用於傳送英文以及數字,也是我們所採用的格式;其次是 UDP 模式,也就是將中、
英文經由 UDP 編碼後傳送;最後是 Block 模式,此模式需要模組廠商支援驅動方 可使用。
AT Command 的格式通常是以"AT+"為開頭,後面接上其他的短指令,最後 再以<CR><LF>作為命令結尾,GSM module 收到一個 AT Command 後所回覆的信息 在 GSM 07.05 中所定義的 AT Command 指令集中有詳細的敘述,舉例來說,當我 們需要發送一封簡訊時,所需要的 AT Command 如下:
AT+CMGF=1 //將 SMS 模式設為 Text 模式 AT+CSCS="GSM"
AT+CSCA="+886932400841" //設置對應的簡訊中心 AT+CMGS="0912345678" //將簡訊傳到目標接收手機
<Content of Message >
……
<ctrl+z>//命令結束字元
圖 14.GSM module
圖 14 是一個 GSM module 以及其電路板,與 CO2 sensor 與 GPS module 不同,
GSM module 並非以 Jennic 為平台來啟動,也不是直接透過 Jennic 來控制,而 是 Jennic 傳送 AT COMMAND 給 GSM module 後,等待 GSM module 處理並回傳訊息,
在 GSM module 的電路板上面,左下角是用來與 PC 連接的 RS-232 接頭,街頭上 方是一個負責轉換訊號的 IC,我們以 I C 上方的接來與 Jennic 的 RS232 接腳連 接,中央偏左的地方則是一塊 GSM 系統必須的 SIM 卡,中央偏右則是實際的 GSM module,最後,右上方為 GSM 天線。
4.2 Server
Server 負責的工作為資料分析、並且如同 WSN 中的 sink 一般將分析所得的 資料儲存收集、計算出每個區塊的新回報率、以及對每個 VSN node 下達命令,
GSM antenna
SIM card
RS232
Server 會以下面兩種格式將所需的資料及命令傳送給 VSN node。
我們將希望監測的區域設定為矩形,因此只需要兩個座標及可標示出整個區 域,如圖 15,Initial message 包含左上角及右下角的經緯度座標,後面 Division 的欄位是我們為了方便控制回報率,所以將完整的矩形區域分割成 M x N 的矩 陣,並將每個格子的初始回報率放於 Rate 欄位
而 adjusting message 的內容則是由 Server 所計算出的新回報率,以及該 回報率所對應的區塊。
Initial Message:
Adjusting Message:
圖 15.兩種 Server message 格式
圖 16 提出一個例子,首先,Server 會將 Initial message 傳送給各個 VSN node,
之後我們想監測的區域會被劃分成一個 3 X 3 的矩陣,矩陣中每個小區塊初使回 報率都相同,在這個例子中,我們假定為 2 次/分鐘。
圖 16.Initial message 發送後系統示意圖
一段時間後,假使 Server 發現有其中幾個區塊收到的資料量不如預期,它就 會發送 adjusting message 來調整回報率,如圖 17。
圖 17.調整回報率後
當 VSN 車載裝置收到簡訊時,即會根據 Server 所計算之固定頻率回傳氣體 濃度資料,以下面圖 18 的格式將資料回傳,內容包含了二氧化碳濃度、時間、
以及經緯度。而為了節省網路成本,我們提出了一套簡單的演算法來調控每個小 區塊的回傳頻率,期望能以較少的網路成本繪製出品質較好的二氧化碳濃度等高 線圖。
圖 18.VSN car report message 格式
Server 會透過 RS232 與一個 GSM module 連接以收發訊息,程式的部分,我 們使用 JAVA 以及 PostgreSQL 來實做我們的 Server 以及演算法, PostgreSQL 是一種 open source 的 SQL 資料庫,它的特別之處在於提供了專門使用於存放座 標的型態,此外還提供了許多可用於處理地圖資訊的功能,例如可以以 KNN 的方 式來找出某點周邊的鄰居。當 server 透過 RS232 取得來自 GSM module 的資料後,
會將取得的資料處理後存入 PostgreSQL 資料庫,一段時間後,若必須計算新的 回報率,就會利用 JAVA 的 API--JDBC 開始利用 PostgreSQL 取得所需要的必要參 數,舉例來說,在演算法中必須用到的pDnr 及
pD
far 線段長度,都可利用 SQL 語法取得。若收集到的資料量已達到我們所預期,則 server 會送出一個停止訊息去停 止各個 VSN device 的動作,VSN device 會等待收到下一次 initial message 後,
才會再繼續收集環境資訊。
4.2.1 Google Map
當資料庫中的資料量累積到一定數量,我們將收集到的資料以 Google Map
當資料庫中的資料量累積到一定數量,我們將收集到的資料以 Google Map