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.