WiFi 函式庫

WiFi 函式庫實作使用 86Duino 控制 Arduino WiFi Shield 的功能,使得 86Duino 可以透過無線網路(Wireless LAN)連上網路。WiFi 函式庫同時也使得 86Duino 可以作為接收要求的伺服端以及傳送要求的用戶端。在安全性的實作上,WiFi 函式庫支援 WEPWPA2 個人版但是不支援 WPA2 企業版,另外如果 SSID 不是廣播(broadcast)的,則無法連線。

86Duino 使用 SPI 介面與 Arduino WiFi Shield 連接,不過為了與 Arduino 相容不使用硬體 SPI 介面的 SS 腳位,而使用編號為 10 的腳位作為 SPI 的 SS,使用編號為 7 的腳位作為交握協定(handshake)使用的腳位,要特別注意在程式中不要使用編號 7 和 10 的腳位去做其他的功能。

WiFi 函式庫與 Ethernet 函式庫的使用方法相似,有許多函式是相同的。

WiFi Shield 的韌體版本

Arduino 從 Arduino 1.0.5 版後更新了 WiFi Shield 的韌體,可以依照 Arduino 提供的教學更新 WiFi Sield 的韌體,由於新的韌體不相容於舊的韌體,更新韌體後就無法在 Arduino IDE 1.0.4 和 1.5.2 以前的版本上使用。

86Duino IDE 所包含的 WiFi 函式庫是從 Arduio 1.5.2 裡移植來的,因此與 86Duino IDE 內含的 WiFi 函式庫搭配使用時 WiFi Shield 必須使用舊的韌體,如果你想要使用新的 WiFi Shield 韌體,必須搭配 WiFi2 函式庫使用,這裡可以下載 WiFi2 函式庫。

WiFi2 函式庫的使用方式基本上與 WiFi 函式庫相同,但是新的韌體新增了 UDP 的功能,這是 WiFi 函式庫使用說明不會提到的,如果要使用 UDP 的功能,可以參考 Arduino 提供的 WiFi 函式庫使用文件

WiFi 類別

WiFi 類別實作初始化 WiFi 函式庫以及無線網路設定的功能。

begin()
disconnect()
config()
setDNS()
SSID()
BSSID()
RSSI()
encryptionType()
scanNetworks()
getSocket()
macAddress()

IPAddress 類別

IPAddress 類別實作取得無線網路資訊的功能。

localIP()
subnetMask()
gatewayIP()

Server 類別

Server 類別用以創建伺服端與用戶端連接,透過無線網路傳送與接收資料。

Server
WiFiServer()
begin()
available()
write()
print()
println()

Client class

Client 類別用以創建用戶端與伺服端連接,透過無線網路傳送與接收資訊。

Client
WiFiClient()
connected()
connect()
write()
print()
println()
available()
read()
flush()
stop()

範例

以下的範例是由 Arduino 提供,這些範例都可以在 86Duino 上正常運作:

ConnectNoEncryption:連接上 WiFi 並印出網路基本資訊
ConnectWithWEP:連接上使用 WEP 加密的 WiFi 並印出網路基本資訊
ConnectWithWPA:連接上使用 WPA 加密的 WiFi 並印出網路基本資訊
ScanNetworks:顯示目前搜尋的到的所有 WiFi
WiFiChatServer:創建一個簡單的伺服端
WiFiWebClientWiFiWebClientRepeating:創建一個用戶端並重複的傳送 HTTP 封包到伺服端
WiFiWebServer:創建一個伺服端並回應 HTTP 封包給用戶端


函式庫參考主頁面

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.