ESP32Arduino学习(一).设置静态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(){}
手动定义参数
自定义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(){}