侧边栏壁纸
  • 累计撰写 125 篇文章
  • 累计创建 16 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录
ESP32   

ESP32-WiFiSTA(客户端模式)

概述

STA模式用于使ESP32模块连接到由接入点(AP)建立的Wi-Fi网络。

API理解

1.1、配置STA模式

请注意,这一步不需要一定进行配置,但具有静态IP配置的工作站通常可以更快地连接到网络。因为通过DHCP客户端获取IP配置会花费时间,在这种情况下,将跳过此步骤。

如果将所有三个参数都传递为0.0.0.0(local_ip,网关和子网),它将重新启用DHCP。需要重新连接设备以获得新的IP。

/**
 * Change IP configuration settings disabling the dhcp client
 * @param local_ip   Static ip configuration
 * @param gateway    Static gateway configuration
 * @param subnet     Static Subnet mask
 * @param dns1       Static DNS server 1
 * @param dns2       Static DNS server 2
 */
bool WiFiSTAClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2)

参数的含义如下:

  • local_ip -在此处输入您要分配ESP32接口的IP地址
  • gateway -应包含用于访问外部网络的网关(路由器)的IP地址
  • subnet -这是一个掩码,用于定义本地网络的IP地址范围
  • dns1,dns2-可选参数,用于定义维护域名目录(例如www.google.co.uk)的域名服务器(DNS)的IP地址,并将其转换为IP地址

1.2、开启STA模式,连接AP

/**
 * Start Wifi connection
 * if passphrase is set the most secure supported mode will be automatically selected
 * @param ssid const char*          Pointer to the SSID string.
 * @param passphrase const char *   Optional. Passphrase. Valid characters in a passphrase must be between ASCII 32-126 (decimal).
 * @param bssid uint8_t[6]          Optional. BSSID / MAC of AP
 * @param channel                   Optional. Channel of AP
 * @param connect                   Optional. call connect
 * @return
 */
wl_status_t WiFiSTAClass::begin(const char* ssid, const char *passphrase, int32_t channel, const uint8_t* bssid, bool connect)

参数的含义如下:

  • ssid -包含我们要连接的接入点的SSID的字符串,最多可以包含32个字符
  • passphrase 到接入点的字符串,长度至少应为8个字符且不超过64个字符
  • channel 的AP,如果我们想使用特定的信道进行操作,则可以省略此参数
  • bssid -AP的mac地址,此参数也是可选的
  • connect-一个boolean参数,如果设置为false,将指示模块仅保存其他参数而不实际建立与接入点的连接

1.3、查看网络信息

    IPAddress localIP();	
    String macAddress();

    IPAddress subnetMask();
    IPAddress gatewayIP();
    IPAddress dnsIP(uint8_t dns_no = 0);

    IPAddress broadcastIP();
    IPAddress networkID();
    uint8_t subnetCIDR();
    
    const char * getHostname();
    
    static wl_status_t status();
    String SSID() const;
    String psk() const;

    uint8_t * BSSID();
    String BSSIDstr();

    int8_t RSSI();

例子

#include <Arduino.h>
#include <WiFi.h>

const char* ssid     = "zy";
const char* password = "123456789";

IPAddress staticIP(192,168,1,22);
IPAddress gateway(192,168,1,9);
IPAddress subnet(255,255,255,0);

void setup()
{
    Serial.begin(9600);
    delay(10);

    // We start by connecting to a WiFi network
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.config(staticIP, gateway, subnet);
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("");
    Serial.println("WiFi connected");

}

int value = 0;

void loop()
{
    delay(5000);

    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    Serial.println(" mac address: ");
    Serial.println(WiFi. macAddress());
}


0

评论区