ESP32Arduino學習(一).設定靜态IP
- 連接配接網絡的必要參數
-
- DHCP自動配置設定IP
- 手動定義參數
連接配接網絡的必要參數
子網路遮罩,網關位址 DNS
通常這些參數都是通過路由器的DHCP(動态主機配置協定)自動配置設定.但在路由器未開啟此協定時就需要手動設定這幾個參數。
DHCP自動配置設定IP
使用DHCP自動配置設定IP:
#include <WiFi.h>
//WIFI名及密碼
const char* ssid = "yourNetworkName";
const char* password = "yourNetworkPass";
void setup(){
Serial.begin(115200);
//預設參數連接配接WIFI
WiFi.begin(ssid, password);
//等待連接配接
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("Connecting...\n\n");
}
//IP位址
Serial.print("Local IP: ");
Serial.println(WiFi.localIP());
//子網路遮罩
Serial.print("Subnet Mask: ");
Serial.println(WiFi.subnetMask());
//網關位址
Serial.print("Gateway IP: ");
Serial.println(WiFi.gatewayIP());
//DNS
Serial.print("DNS 1: ");
Serial.println(WiFi.dnsIP(0));
Serial.print("DNS 2: ");
Serial.println(WiFi.dnsIP(1));
}
void loop(){}
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzkEROBTWE5UNJpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL1MjN4UDNwkDMyIDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
手動定義參數
自定義IP,DNS,子網路遮罩:
#include <WiFi.h>
#include <ESP32Ping.h>
const char* ssid = "yourNetworkName";
const char* password = "yourNetworkPass";
//IPAddress 類型變量
IPAddress staticIP(192, 168, 0, 113);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 0,1);
void setup(){
Serial.begin(115200);
//傳入參數靜态IP位址,網關.DNS1,和2
if (WiFi.config(staticIP, gateway, subnet, dns, dns) == false) {
Serial.println("Configuration failed.");
}
//連接配接網絡
WiFi.begin(ssid, password);
//等待連接配接
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("Connecting...\n\n");
}
//同上,列印網絡參數
Serial.print("Local IP: ");
Serial.println(WiFi.localIP());
Serial.print("Subnet Mask: ");
Serial.println(WiFi.subnetMask());
Serial.print("Gateway IP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("DNS 1: ");
Serial.println(WiFi.dnsIP(0));
Serial.print("DNS 2: ");
Serial.println(WiFi.dnsIP(1));
}
void loop(){}