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.