新闻  |   论坛  |   博客  |   在线研讨会
ArduinoESP8266 SoftAP库函数如何使用
Linux嵌入式 | 2023-01-03 13:22:36    阅读:1054   发布文章

ESP8266的工作模式

ESP8266共有三种工作模式,分别是Station模式,AP模式,AP+Station模式。ESP8266出厂默认是第三种模式。

1、 Station模式,Station就像一个接收器,可以接收其他接收器的的信号,而我们的手机、笔记本等就像是一个个的Station,可以接收路由器发出的信号。


2、 AP模式:AP是Wireless Access Point的简称,中文名称:无线接入点;AP模式也就是无线接入点模式。其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网(这正是Access Point名称的本义),我们家里的路由器就工作在这个模式下,说简单点,就像一个****,将有线网络转换成无线网络****出去,这样我们的手机、电脑等就可以连接扩展出来的无线网络上网了。


3、 AP+Station模式,模块支持一个AP接口,一个Station接口。即可接受AP的无线,自身也可发送无线。


ESP8266WiFi库提供的AP相关函数WiFi通用类函数WiFi .begin(ssid,pass);

ssid:要连接wifi名称

pass:要连接wifi密码

WiFi.mode(m):

设置WiFi的工作模式

模式有四种:WIFI_AP,WIFI_STA, WIFI_AP_STA或WIFI_OFF

WiFi.getMode():

返回当前的Wi-Fi模式(上述四种模式中的一种)

AP相关函数WiFi.softAP(ssid)

ssid: 包含网络SSID的字符串(最多31个字符)

仅需要一个参数,即可用于建立开放的Wi-Fi网络。.

WiFi.softAP(ssid, password, channel, hidden, max_connection)

设置受密码保护的网络或配置其他网络参数,此功能的第一个参数是必需的,其余四个是可选的。

所有参数的含义如下:

· ssid -包含网络SSID的字符串(最多31个字符)

· password-带有密码的可选字符串。对于WPA2-PSK网络,其长度至少应为8个字符。如果未指定,则接入点将打开,任何人都可以连接(最多63个字符)。

· channel -可选参数,用于设置Wi-Fi通道,范围从1到13。默认通道= 1。

· hidden-可选参数,如果设置为true将隐藏SSID。

· max_connection-可选参数,用于设置最大同时连接站数,范围。默认值是4。一旦达到最大数量,要连接的任何其他工作站都将被迫等待,直到已连接的工作站断开连接。

softAP建立的网络的默认IP地址为192.168.4.1。此地址可以使用更改softAPConfig.

softAPConfig

配置软访问点的网络接口。

softAPConfig (local_ip, gateway, subnet)

所有参数均为的类型,IPAddress并定义如下:

· local_ip -软接入点的IP地址

· gateway -网关IP地址

· subnet - 子网掩码

功能将返回true或false取决于配置的结果。

建立soft-AP后,您可以使用以下功能检查连接的站数或将其关闭。

softAPgetStationNum

获取连接到soft-AP接口的站点数。

WiFi.softAPgetStationNum()

示例代码:

Serial.printf("Stations connected to soft-AP = %d\n", WiFi.softAPgetStationNum());

输出示例:

Stations connected to soft-AP = 2

注意:默认情况下,最多可以连接到ESP8266 soft-AP的station数为4。可以通过max_connectionsoftAP方法的参数将其从0更改为8 。

softAPdisconnect

断开站点与soft-AP建立的网络的连接。

WiFi.softAPdisconnect(wifioff)

功能会将当前配置的SSID和soft_AP的密码设置为空值。该参数wifioff是可选的。如果设置为true,将关闭soft-AP模式。

如果操作成功返回true,否则函数将返回false。

网络配置

以下功能提供ESP8266 soft-AP的IP和MAC地址。

softAPIP

返回软访问点的网络接口的IP地址。

WiFi.softAPIP()

返回值是IPAddress类型。

示例代码:

Serial.print("Soft-AP IP address = ");
Serial.println(WiFi.softAPIP());

输出示例:

Soft-AP IP address = 192.168.4.1
softAPmacAddress

返回软接入点的MAC地址。此函数有两个版本,它们的返回值类型不同。首先返回一个指针,第二个返回a String。

指向MAC的指针WiFi.softAPmacAddress(mac)

函数接受一个参数mac,该参数是指向内存位置的指针(一个uint8_t大小为6个元素的数组),以保存mac地址。函数本身返回相同的指针值。

示例代码:

uint8_t macAddr[6];
WiFi.softAPmacAddress(macAddr);
Serial.printf("MAC address = %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);

输出示例:

MAC address = 5e:cf:7f:8b:10:13
MAC作为字符串

(可选)您可以使用不带任何返回String类型值的任何参数的函数。

WiFi.softAPmacAddress()

示例代码:

Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str());

输出示例:

MAC address = 5E:CF:7F:8B:10:13


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
工科男,多年嵌入式工作者,每日分享工作中常遇到的一些“坑”
推荐文章
最近访客