WiFi.config()
描述
WiFi.config()
用來設定 IP 位址、 DNS、閘道(gateway)、子網路遮罩(subnet)。
不像是 WiFi.begin()
會自動設定這些資訊,WiFi.config()
讓使用者可以手動的設定。
在呼叫 WiFi.begin()
之前呼叫 WiFi.config()
,使得 begin()
使用 config()
的設定值去設定網路。
如果是先呼叫 WiFi.begin()
再呼叫 WiFi.config()
,在 begin()
執行時預設使用 DHCP 連線,一旦呼叫 config()
後,會使用輸入的參數重新設定網路。
語法
WiFi.config(ip);
WiFi.config(ip, dns);
WiFi.config(ip, dns, gateway);
WiFi.config(ip, dns, gateway, subnet);
參數
ip
:IP 位址,型態為 4 個位元組的陣列
dns
:DNS 伺服端的 IP 位址
gateway
:閘道的 IP 位址,型態為 4 個位元組的陣列。可以不填這個參數,預設的位址前三個數值會與 IP 位址相同,而最後一個數值會設為 1
subnet
:子網路遮罩,型態為 4 個位元組的陣列。可以不填這個參數,預設使用 255.255.255.0
回傳
無回傳值
範例
示範如何把 IP 位址設定為 192.168.0.177:
#include <WiFi.h> // 欲設定的 IP 位址 IPAddress ip(192, 168, 0, 177); char ssid[] = "yourNetwork"; // 無線網路的 SSID char pass[] = "secretPassword"; // WPA 的密碼 int status = WL_IDLE_STATUS; void setup() { // 初始化序列埠並等待其開啟 Serial.begin(9600); while (!Serial) { ; } // 檢查 WiFi Shield if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); while(true); } WiFi.config(ip); // 嘗試連線到無線網路 while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to SSID: "); Serial.println(ssid); // 連線到使用 WPA/WPA2 加密的無線網路 status = WiFi.begin(ssid, pass); // 等待 10 秒 delay(10000); } // 透過序列埠印出 IP 位址 Serial.print("IP Address: "); Serial.println(WiFi.localIP()); } void loop () {}
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.