//Logo Image
作者:張凱維(2012-02-22);推薦:徐業良(2012-02-23)
附註:本文為元智大學機械系自動化機械設計課程Arduino使用教材。

使用WiFly Shield搭配Arduino UNO建立精簡型伺服器

本文使用Arduino UNO結合具有Wi-Fi功能的WiFly Shield模組,建立一個精簡型Arduino伺服器(Arduino Server)。本文透過建立封閉式的無線區域網路(LAN)連結個人電腦與Arduino Server,使用者可自行設定在網頁上登入Arduino Server時所要顯示的文字、顏色、圖片或感測器數值。

1.       軟硬體設定

本文建立Arduino Server需要的器材如下:

(1)     Arduino UNO開發板,USB傳輸線,以及Arduino IDE軟體開發環境。

(2)     WiFly Shield模組(如圖1)。WiFly Shield可使Arduino開發板具備連接無線網路的能力,且採取Arduino開發板上的腳位為電源供應,所以只要依照腳位順序直接與Arduino開發板結合即可(如圖2)。

(3)     無線網路由器。

(4)     WiFly函式庫壓縮檔(請至portal教材下載區下載)。將下載的WiFly式庫壓縮檔解開,放至libraries資料夾底下即可。資料夾位置為「arduino-0023 > libraries」。

(5)     WebServer程式碼壓縮檔(請至portal教材下載區下載)。

1. WiFly Shield模組

2. WiFly ShieldArduino UNO組合圖

2.       程式說明

如圖3所示,使用者將WebServer程式碼壓縮檔解壓縮後,資料夾內有WebServer.pdeCredentials.h兩個檔案。Credentials.h為主程式WebServer.pde副函式,使用者只需在Arduino IDE軟體開發環境中打開WebServer.pdeCredentials.h即會出現在主程式的右側(如圖4),使用者點擊一下Credentials.h方框可進入副函式頁面。如圖5所示,在char ssid[] = "______"char passphrase[] = "______"的雙引號內填入網路名稱(SSID)與登入密碼(Passphrase)。在本文中無線網路基地台預設網路名稱為AutomatedMachineryDesign,登入密碼為3423342323

3. WebServer程式碼資料夾

4. Credentials.h副函式位置

5. 副函式Credentials.h

再點擊一下WebServer方框回到WebServer.pde主程式。如圖6所示,void setup()圈中的程式碼主要為設定值的初始化,且void setup()圈在開機後只執行一次。使用者可在圈中找到程式碼Serial.println(WiFly.ip()),這行程式碼的功能為當使用者上傳程式至Arduino Server且開啟Serial Monitor後,Arduino Server會自動列印出虛擬IP位址,使用者可方便地得知Arduino Server被無線基地台指派的虛擬IP為何(如圖6)。一般無線基地台均有DHCP動態指派IP的功能,通訊設備連線至無線網路基地台後,不需手動設定便會自動取得IP,而虛擬IP常見的形式為192.168.0.X。使用者得知虛擬IP後,在本區域網路任何一台電腦之網頁瀏覽器的網址列中打上虛擬IP,便可連線至Arduino Server

6. void setup()

7. Serial Monitor輸出虛擬IP位址

接著在void setup()圈之後的是void loop()圈(如圖9),這一個圈會重複執行至關機為止。使用者可在void loop()圈中找到程式碼client.println("Welcome to Arduino Server!!!"),這行程式碼的功能為Arduino Server在網頁上列印出兩個雙引號中間的文字。如圖10所示,當使用者在網頁瀏覽器上輸入虛擬IP連線至Arduino Server後,頁面上會列印出預設的Welcome to Arduino Server!!!字樣,使用者也可在兩個雙引號中間自行更改所要列印的字樣。

8. void loop()

9. 在網頁瀏覽器輸入虛擬IP登入Arduino Server