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

目 录CONTENT

文章目录
ESP32   

ESP32-WiFiAP(接入点模式)

AP 模式介绍

接入点(AP)是一种提供 Wi-Fi 网络访问的设备,并将其连接到有线网络的装置。ESP32除了不具有与有线网络的接口外,还可以提供类似的功能。这种操作模式称为软接入点(soft-AP)。可以同时连接到soft-AP的最大站数可以设置4,默认为4。

当ESP32单独处于AP模式下时,可以被认为是一个无法访问外网的局域网WiFi路由器节点,它可以接受各类设备的连接请求。并可以和连接设备进行TCP、UDP连接,实现数据流。在局域物联网的设计中可以承担数据收发节点的作用。

AP模式的配置

AP模式的配置思路可以对比与我们日常中配置家里的WiFi路由器。

API 分析

1.1、配置AP模式IP

/**
 * Configure access point
 * @param local_ip      access point IP
 * @param gateway       gateway IP
 * @param subnet        subnet mask
 */
bool WiFiAPClass::softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet)

首先配置了AP模式下的本地IP、网关IP、子网掩码。当然这一步并不是必须的,我们可以直接进行下一步的配置,这三个配置项将会以默认的形式自动配置。

1.2、开启、关闭AP模式

/**
 * Set up an access point
 * @param ssid              Pointer to the SSID (max 63 char).
 * @param passphrase        (for WPA2 min 8 char, for open use NULL)
 * @param channel           WiFi channel number, 1 - 13.
 * @param ssid_hidden       Network cloaking (0 = broadcast SSID, 1 = hide SSID)
 * @param max_connection    Max simultaneous connected clients, 1 - 4.
*/
bool WiFiAPClass::softAP(const char* ssid, const char* passphrase, int channel, int ssid_hidden, int max_connection)

开启AP模式,需要配置其网络名称、连接密码(可忽略)、WiFi信道、是否隐藏信号、最大连接数(1-4)

  • 网络名称是必须配置项。(最大字符数为63)
  • 连接密码如果不配置则默认为开放性网络,谁都可以连接。
  • WiFi信道的配置,简单理解就是最好与环境中的其他信号不相同,避免信号干扰。(1-13)
  • 是否隐藏信号,可以选择广播信号(broadcast )所有人直接看到,也可以隐藏则需要指定查找。
  • 最大连接数在默认下是4,可以配置范围1-4。
/**
 * Disconnect from the network (close AP)
 * @param wifioff disable mode?
 * @return one value of wl_status_t enum
 */
bool WiFiAPClass::softAPdisconnect(bool wifioff)

关闭AP模式,直接调用即可~

1.3、获取连接的设备数

/**
 * Get the count of the Station / client that are connected to the softAP interface
 * @return Stations count
 */
uint8_t WiFiAPClass::softAPgetStationNum()

1.5、设置AP的主机名

/**
 * Set the softAP    interface Host name.
 * @param  hostname  pointer to const string
 * @return true on   success
 */
bool WiFiAPClass::softAPsetHostname(const char * hostname)

1.4、各类IP参数获取

    IPAddress softAPIP();  // 查看本地IP
    IPAddress softAPBroadcastIP(); // 查看广播IP
    IPAddress softAPNetworkID();	
    uint8_t softAPSubnetCIDR();
    String softAPmacAddress(void);
    const char * softAPgetHostname();

例子

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

WiFiAPClass WiFiAP;

// Set these to your desired credentials.
const char *ssid = "tastAP";
const char *password = "123456";

uint8_t x=1;
IPAddress local_IP(192, 168, x, 1);  
IPAddress gateway(192, 168, x, 1);
IPAddress subnet(255, 255, 255, 0);


void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.println("Configuring access point...");

  // You can remove the password parameter if you want the AP to be open.
  WiFiAP.softAPConfig(local_IP,gateway,subnet);
  WiFiAP.softAP(ssid, password);

  Serial.println("Server started");
}

void loop() {
  delay(2000);
  Serial.print("AP IP address: ");
  Serial.println(WiFiAP.softAPIP());

  Serial.print("softAP Broadcast IP: ");
  Serial.println(WiFiAP.softAPBroadcastIP());

  Serial.print("softAP NetworkID: ");
  Serial.println(WiFiAP.softAPNetworkID());

  Serial.print("softAP SubnetCIDR: ");
  Serial.println(WiFiAP.softAPSubnetCIDR());

  Serial.print("softAP Hostname: ");
  Serial.println(WiFiAP.softAPgetHostname());

  Serial.print("softAP macAddress: ");
  Serial.println(WiFiAP.softAPmacAddress());

  Serial.print("softAP StationNum: ");
  Serial.println(WiFiAP.softAPgetStationNum());
}

1

评论区