天天看點

ESP32Arduino學習(一).設定靜态IP連接配接網絡的必要參數

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(){}
           
ESP32Arduino學習(一).設定靜态IP連接配接網絡的必要參數

手動定義參數

自定義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(){}
           
ESP32Arduino學習(一).設定靜态IP連接配接網絡的必要參數

繼續閱讀