NodeMCU-32S网络连接模式

2022/10/20 esp32

# 接入点模式(AP)

NodeMCU可以建立WiFi网络供其它设备连接,相当于手机热点模式。

#include <WiFi.h>

// 热点名称
const char *ssid = "tudou";
// 密码
const char *password = "12345678";

void setup()
{
  // 设置串口波特率
  Serial.begin(115200);
  WiFi.softAP(ssid, password);

  Serial.print("Access Point: ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.softAPIP());
}

void loop()
{
}

串口输出信息

Access Point: tudou
IP address: 192.168.4.1

# 无线终端模式(Station)

WiFi.status() 返回连接状态

#include <WiFi.h>

// wifi名称
const char *ssid = "tudou";
// 密码
const char *password = "12345678";

void setup()
{
  // 设置串口波特率
  Serial.begin(115200);
  // 连接wifi
  WiFi.begin(ssid, password);
  Serial.print("Connecting to ");
  Serial.print(ssid);
  // 告知用户正在连接
  Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.print(++i);
    Serial.print(" ");
  }

  Serial.println("");
  // 连接成功
  Serial.println("Connection established!");
  Serial.print("IP address:  ");
  // 当前设备被分配的IP
  Serial.println(WiFi.localIP());
}

void loop()
{
}

串口输出信息

Connecting to tudou ...
1 
Connection established!
IP address:  192.168.243.169

# 自动连接最强wifi

wifiMulti.run() NodeMCU将会在当前环境中搜索addAP函数所存储的WiFi

如果搜到多个存储的WiFi那么NodeMCU将会连接信号最强的那一个WiFi信号。

#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti wifiMulti;

void setup()
{
  // 设置串口波特率
  Serial.begin(115200);
  // 存储WiFi名称和密码
  wifiMulti.addAP("tudou1","12345678");
  wifiMulti.addAP("tudou2","12345678");
  wifiMulti.addAP("tudou3","12345678");
  // 告知用户正在连接
  Serial.print("Connecting ...");

  int i = 0;
  while (wifiMulti.run() != WL_CONNECTED)
  {
    delay(1000);
    Serial.print(".");
  }

  Serial.println("\n");
  // 连接成功
  Serial.println("Connection established!");
  Serial.print("IP address:  ");
  // 当前设备被分配的IP
  Serial.println(WiFi.localIP());
}

void loop()
{
}

# 总结

1.可以通过WiFi.softAP(ssid, password);来创建热点

2.WiFi.softAPIP() 打印热点IP

3.通过WiFi.begin(ssid, password);可以连接wifi

4.获取wifi连接的状态WiFi.status()

5.当前设备分配的ip,WiFi.localIP()

6.存储多个wifi,wifiMulti.addAP(ssid,password);

7.wifiMulti.run() 连接最强的wifi