製作

Production Process

基本架構

在這個系統裡面最少會用到兩台裝置,電腦與樹梅派透過網路線互相連接。
當樹梅派執行了無線訊號監聽器的時候,電腦上會提供資料庫的服務給網頁伺服器使用。

1.Sniffer

Sniffer是我們的無線訊號監聽器,我們可以從這裡取得到我們需要的資料。我們的監聽器可以接收兩種不同的無線電波,第一種是wifi訊號,第二種是藍牙訊號。
我們想要收集的的資訊主要有兩點︰第一點是傳送方的MAC位置,第二點是傳送方的訊號強度(RSSI)。在那之後,我們寫了一支程式,針對各個傳送方的訊號強度做排序,加上收到的時間之後,最後這些資料全部寫入到一個檔案裡。

2.Services

第二部分是有關我們如何處理監聽器所取得的資料,讓處理後的資料可以容易的被網頁伺服器做進一步的處理。由於每一種無線訊號的特質都不一樣,我們必須針對每一種訊號個別定義該如何去監聽。

2.1.Wi-Fi

如果要捕捉wifi訊號相當簡單,我們只要把耳朵打開就行了。此時通訊裝置會不時送出探測請求,而且AP也會定時的送出信標。
但是 現在有一個問題出現了,Wifi訊號裡有分13個頻道,在台灣有11個頻道可以被使用。我們不能讓單一個監聽器同時一次接收所有頻道的訊號,而且我們也不希望漏掉任何可以偵測到裝置的機會。於是,我們採用跳頻的方式,我們每0.1秒切換一個頻道,從1~11頻道循環切換。

2.2.藍牙

藍牙的訊號在大多數時間是不會發送訊息的,因此在設計上會比較複雜。我們的做法是每隔12s送出搜尋藍芽裝置的請求,試圖誘導附近的藍芽裝置回應。

3.Web Page

網頁伺服器會去讀取監聽器所產生的檔案,來來計算出附近裝置的清單。接著會視情況到資料庫去做查詢該裝置所代表的使用者是誰,現在是否有領酒期正在進行中,以及該使用者繳領貨的狀態等等,最後將網頁資料呈現給使用者。

4.Database

在資料庫裡面我們有4張重要的資料表。clients資料表記錄客戶的資料。mac2client資料表一個客戶可能擁有多個行動裝置,這個資料表的目的就是將許多的裝置對應到同一個使用者上。activity資料表記錄領酒期的資料。adetails*資料表記錄客戶在某期付款領貨的狀態。


身分驗證 → 付款 → 領取

透過網頁 領酒的流程可以簡化成這樣。如圖所示。