21.01.2015 Views

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

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

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

作 者 : 張 凱 維 (2012-02-22); 推 薦 : 徐 業 良 (2012-02-23)。<br />

附 註 : 本 文 為 元 智 大 學 機 械 系 自 動 化 機 械 設 計 課 程 Arduino 使 用 教 材 。<br />

使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

本 文 使 用 Arduino <strong>UNO</strong> 結 合 具 有 Wi-Fi 功 能 的 WiFly <strong>Shield</strong> 模 組 , 建 立 一 個 精 簡<br />

型 Arduino 伺 服 器 (Arduino Server)。 本 文 透 過 建 立 一 封 閉 式 的 無 線 區 域 網 路 (LAN) 連<br />

結 個 人 電 腦 與 Arduino Server, 使 用 者 可 自 行 設 定 在 網 頁 上 登 入 Arduino Server 時 所<br />

要 顯 示 的 文 字 、 顏 色 、 圖 片 或 感 測 器 數 值 。<br />

1. 軟 硬 體 設 定<br />

本 文 建 立 Arduino Server 需 要 的 器 材 如 下 :<br />

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

(2) WiFly <strong>Shield</strong> 模 組 ( 如 圖 1)。 WiFly <strong>Shield</strong> 可 使 Arduino 開 發 板 具 備 連 接 無<br />

線 網 路 的 能 力 , 且 採 取 Arduino 開 發 板 上 的 腳 位 為 電 源 供 應 , 所 以 只 要 依 照<br />

腳 位 順 序 直 接 與 Arduino 開 發 板 結 合 即 可 ( 如 圖 2)。<br />

(3) 無 線 網 路 路 由 器 。<br />

(4) WiFly 函 式 庫 壓 縮 檔 ( 請 至 portal 教 材 下 載 區 下 載 )。 將 下 載 的 WiFly 函 式<br />

庫 壓 縮 檔 解 開 , 放 至 libraries 資 料 夾 底 下 即 可 。 資 料 夾 位 置 為 「arduino-0023<br />

> libraries」。<br />

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

1<br />

http://designer.mech.yzu.edu.tw/


使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

圖 1. WiFly <strong>Shield</strong> 模 組<br />

圖 2. WiFly <strong>Shield</strong> 與 Arduino <strong>UNO</strong> 組 合 圖<br />

2. 程 式 說 明<br />

如 圖 3 所 示 , 使 用 者 將 WebServer 程 式 碼 壓 縮 檔 解 壓 縮 後 , 資 料 夾 內 有<br />

WebServer.pde 與 Credentials.h 兩 個 檔 案 。Credentials.h 為 主 程 式 WebServer.pde 的 副<br />

函 式 , 使 用 者 只 需 在 Arduino IDE 軟 體 開 發 環 境 中 打 開 WebServer.pde,Credentials.h<br />

即 會 出 現 在 主 程 式 的 右 側 ( 如 圖 4), 使 用 者 點 擊 一 下 Credentials.h 方 框 可 進 入 副 函 式<br />

頁 面 。 如 圖 5 所 示 , 在 char ssid[] = "______" 與 char passphrase[] = "______" 的 雙 引 號<br />

內 填 入 網 路 名 稱 (SSID) 與 登 入 密 碼 (Passphrase)。 在 本 文 中 無 線 網 路 基 地 台 預 設 網 路 名<br />

稱 為 AutomatedMachineryDesign, 登 入 密 碼 為 3423342323。<br />

2<br />

http://designer.mech.yzu.edu.tw/


使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

圖 3. WebServer 程 式 碼 資 料 夾<br />

圖 4. Credentials.h 副 函 式 位 置<br />

圖 5. 副 函 式 Credentials.h<br />

3<br />

http://designer.mech.yzu.edu.tw/


使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

再 點 擊 一 下 WebServer 方 框 回 到 WebServer.pde 主 程 式 。 如 圖 6 所 示 ,void setup()<br />

迴 圈 中 的 程 式 碼 主 要 為 設 定 值 的 初 始 化 , 且 void setup() 迴 圈 在 開 機 後 只 執 行 一 次 。 使<br />

用 者 可 在 迴 圈 中 找 到 程 式 碼 Serial.println(WiFly.ip()), 這 行 程 式 碼 的 功 能 為 當 使 用 者<br />

上 傳 程 式 至 Arduino Server 且 開 啟 Serial Monitor 後 ,Arduino Server 會 自 動 列 印 出 虛<br />

擬 IP 位 址 , 使 用 者 可 方 便 地 得 知 Arduino Server 被 無 線 基 地 台 指 派 的 虛 擬 IP 為 何 ( 如<br />

圖 6)。 一 般 無 線 基 地 台 均 有 DHCP 動 態 指 派 IP 的 功 能 , 通 訊 設 備 連 線 至 無 線 網 路 基<br />

地 台 後 , 不 需 手 動 設 定 便 會 自 動 取 得 IP, 而 虛 擬 IP 常 見 的 形 式 為 192.168.0.X。 使 用<br />

者 得 知 虛 擬 IP 後 , 在 本 區 域 網 路 任 何 一 台 電 腦 之 網 頁 瀏 覽 器 的 網 址 列 中 打 上 虛 擬<br />

IP, 便 可 連 線 至 Arduino Server。<br />

圖 6. void setup() 迴 圈<br />

圖 7. Serial Monitor 輸 出 虛 擬 IP 位 址<br />

4<br />

http://designer.mech.yzu.edu.tw/


使 用 WiFly <strong>Shield</strong> 搭 配 Arduino <strong>UNO</strong> 建 立 一 精 簡 型 伺 服 器<br />

接 著 在 void setup() 迴 圈 之 後 的 是 void loop() 迴 圈 ( 如 圖 9), 這 一 個 迴 圈 會 重 複 執<br />

行 至 關 機 為 止 。 使 用 者 可 在 void loop() 迴 圈 中 找 到 程 式 碼 client.println("Welcome to<br />

Arduino Server!!!"), 這 行 程 式 碼 的 功 能 為 Arduino Server 在 網 頁 上 列 印 出 兩 個 雙 引 號<br />

中 間 的 文 字 。 如 圖 10 所 示 , 當 使 用 者 在 網 頁 瀏 覽 器 上 輸 入 虛 擬 IP 連 線 至 Arduino<br />

Server 後 , 頁 面 上 會 列 印 出 預 設 的 Welcome to Arduino Server!!! 字 樣 , 使 用 者 也 可 在<br />

兩 個 雙 引 號 中 間 自 行 更 改 所 要 列 印 的 字 樣 。<br />

圖 8. void loop() 迴 圈<br />

圖 9. 在 網 頁 瀏 覽 器 輸 入 虛 擬 IP 登 入 Arduino Server<br />

5<br />

http://designer.mech.yzu.edu.tw/

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!