NodeMCU连接WIFI的两种方式
要引入的库函数
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
DHCP方式(自动分配IP)
会根据WIFI的强度自动选择
void DHCP_connect() {
WiFi.mode(WIFI_STA);
WiFiMulti.addAP(ssid, password); // WIFI1信息
WiFiMulti.addAP(ssid2,password2); // WIFI2信息
while (WiFiMulti.run() != WL_CONNECTED) { // 如果WiFi没有连接,一直循环打印点
delay(500);
Serial.print(".");
}
}
静态IP方式连接
void Static_connect(IPAddress staticIP,IPAddress gateway,IPAddress subnet) {
//用固态IP方式接入本地WIFI,提高接收速度和可靠性
// IPAddress staticIP(192,168,0,22); // 静态IP
// IPAddress gateway(192,168,0,1); // 网关
// IPAddress subnet(255,255,255,0); // 子网掩码
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
WiFi.config(staticIP, gateway, subnet);
while (WiFi.status() != WL_CONNECTED) { // 阻塞式等待,直到连接成功
delay(500); // 每500MS检测一次,一直到连接成功
Serial.print(".");
}
}
连接完成后可以用一下函数打印WIFI信息
void Print_wifiinfo() {
Serial.println("\nConnected to network");
Serial.println("********* Print connect info *********");
Serial.print("My IP address is: ");
Serial.println(WiFi.localIP()); // 打印开发板的IP地址
Serial.print("My gatewayIP is: ");
Serial.println(WiFi.gatewayIP()); // 打印网关地址
Serial.print("My dnsIP is: ");
Serial.println(WiFi.dnsIP()); // 打印DNS
Serial.print("My hostname is: ");
Serial.println(WiFi.hostname()); // 打印开发板主机名称
Serial.print("My macAddress is: ");
Serial.println(WiFi.macAddress()); // 打印开发板MAC
Serial.println("********* Print connect info *********");
}