WiFi.printDiag(Print& p)
输出网络设置信息到print接口(比如从串口输出)
参数:
@param p 端口,如串口Serial
实例:
WiFi.printDiag(Serial);
bool softAP(const char* ssid, const char* passphrase = NULL, int channel = 1, int ssid_hidden = 0, int max_connection = 4, bool ftm_responder = false);
设置一个接入点
参数:
@param ssid 指向SSID字符串的指针(最大63字节)。
@param passphrase 可选,默认 = NULL,用于WPA2加密的WIFI密码,最少8字节,开放WIFI可以用NULL。
@param channel 可选,默认 = 1,WIFI频道号码,1-13。
@param ssid_hidden 可选,默认 = 0,网络隐藏(0 = 广播SSID,1 = 隐藏SSID)。
@param max_connection 可选,默认 = 4, 最大同时连接的客户端, 1 - 4。
@ftm_responder 可选,默认 = false,一种高速传输模式可以d在高带宽且低延迟的情况下与另一个 ESP32 设备进行通信。
@return 成功返回true,不成功返回false
实例:
char* ESP32_SSID = "ESP32";
char* ESP32_PASS = "12345678";
int ESP32_channel = 4;
int ESP32_SSID_HIDDEN = 0;
int ESP32_MAX_CONNECTION = 4;
bool ESP32_FTM_RESPONDER = true;
WiFi.softAP(ESP32_SSID, ESP32_PASS, ESP32_channel, ESP32_SSID_HIDDEN, ESP32_MAX_CONNECTION, ESP32_FTM_RESPONDER);
bool softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dhcp_lease_start = (uint32_t) 0);
配置接入点
参数:
@param local_ip 配置AP的IP地址
@param gateway 配置AP的网关IP地址
@param subnet 配置AP的子网掩码
@dhcp_lease_start 配置AP的DHCP租约开始
@return 成功返回true,失败返回false
实例:
IPAddress LOCAL_IP(10,0,250,0); //注意分隔符为逗号(,),不是点号(.)
IPAddress GATEWAY(10,0,250,0);
IPAddress SUBNET(255,255,255,0);
IPAdress DHCP_LEASE_START(10,0,250,10);
WiFi.softAPConfig(LOCAL_IP, GATEWAY, SUBNET, DHCP_LEASE_START);
bool softAPdisconnect(bool wifioff = false);
断开网络连接(关闭AP)
参数:
@param wifioff 可选,默认= false,是否关闭连接(是 = true,否 = false)
@return 成功返回true,失败返回false
实例:
WiFi.softAPdisconnect(true);
uint8_t softAPgetStationNum();
获取连接到AP上的设备数量。
参数:
@return 返回连接到AP上的设备数量
IPAddress softAPIP();
获取AP接口IP地址。
参数:
@return 返回AP接口IP地址
IPAddress softAPBroadcastIP();
获取AP广播IP地址。
参数:
@return 返回AP广播IP地址
IPAddress softAPNetworkID();
获取AP网络ID。
参数:
@return 返回AP网络ID
uint8_t softAPSubnetCIDR();
获取AP子网CIDR。
参数:
@return 返回AP子网CIDR
bool softAPenableIpV6();
在AP接口上开启IPv6
参数:
@return 成功返回true,失败返回false
IPv6Address softAPIPv6();
获取AP接口的IPv6地址
参数:
@return 返回AP接口的IPv6地址
const char * softAPgetHostname();
获取AP接口的主机名
参数:
@return 返回AP接口的主机名
bool softAPsetHostname(const char * hostname);
设置AP接口的主机名
参数:
@param hostname 主机名
@return 成功返回true,失败返回false
uint8_t* softAPmacAddress(uint8_t* mac);
获取AP接口的MAC地址
参数:
@param mac 指向uint8_t数组的指针,长度为WL_MAC_ADDR_LENGTH
@return 返回uint8_t数组的指针
String softAPmacAddress(void);
获取AP接口的MAC地址
参数:
@return 返回MAC地址的字符串
String softAPSSID(void) const;
返回与网络关联的当前SSID
@retutn 返回SSID
int connect(IPAddress ip, uint16_t port);
通过TCP协议连接网络服务器
参数:
@param ip 要连接的服务器地址
@param port 要连的的服务器端口
@return 成功返回1,失败返回0
int connect(IPAddress ip, uint16_t port, int32_t timeout);
通过TCP协议连接网络服务器
参数:
@param ip 要连接的服务器地址
@param port 要连的的服务器端口
@param timeout 超时时间
@return 成功返回1,失败返回0
int connect(const char *host, uint16_t port);
通过TCP协议连接网络服务器
参数:
@param host 要连接的服务器网址
@param port 要连的的服务器端口
@return 成功返回1,失败返回0
int connect(const char *host, uint16_t port, int32_t timeout);
通过TCP协议连接网络服务器
参数:
@param host 要连接的服务器网址
@param port 要连的的服务器端口
@param timeout 超时时间
@return 成功返回1,失败返回0
size_t write(uint8_t data);
发送数据到已连接的服务器
参数:
@param data 要发送的数据
@return 发送的字节数
size_t write(const uint8_t *buf, size_t size);
发送数据到已连接的服务器
参数:
@param buf 要发送的数据缓存指针
@param size 数据的大小
@return 发送的字节数
size_t write_P(PGM_P buf, size_t size);
发送数据到已连接的服务器
参数:
@param buf 要发送的数据缓存指针
@param size 数据的大小
@return 发送的字节数
size_t write(Stream &stream);
发送数据以流的方式到已连接的服务器
参数:
@param stream 要发送的数据缓存指针
@return 发送的字节数
int available();
服务器连接是否可用
参数:
@return 可用返回1,不可用返回0
int read();
读取服务器发送的数据
参数:
@return 可以收到数据返回1,不能收到数返回-1,
int read(uint8_t *buf, size_t size);
读取服务器的数据
参数:
@param buf 保存收到的数据的指针
@param size 读取的数据长度
@return 返回收到的数据长度
int peek();
void flush();
void stop();
uint8_t connected();
virtual int fd() const;
int setSocketOption(int option, char* value, size_t len);
int setSocketOption(int level, int option, const void* value, size_t len);
int setOption(int option, int *value);
int getOption(int option, int *value);
int setTimeout(uint32_t seconds);
int setNoDelay(bool nodelay);
bool getNoDelay();
IPAddress remoteIP() const;
IPAddress remoteIP(int fd) const;
uint16_t remotePort() const;
uint16_t remotePort(int fd) const;
IPAddress localIP() const;
IPAddress localIP(int fd) const;
uint16_t localPort() const;
uint16_t localPort(int fd) const;
wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
为WIFI事件设定回调函数
参数:
@param cbEvent 回调函数
@param event 事件过滤,ARDUINO_EVENT_MAX为所有事件,事件列表:
ARDUINO_EVENT_WIFI_READY = 0, WIFI准备完成
ARDUINO_EVENT_WIFI_SCAN_DONE, 扫描完成事件
ARDUINO_EVENT_WIFI_STA_START, STA模式开启事件
ARDUINO_EVENT_WIFI_STA_STOP, STA模式停止事件
ARDUINO_EVENT_WIFI_STA_CONNECTED, STA连接成功事件
ARDUINO_EVENT_WIFI_STA_DISCONNECTED, STA连接断开事件
ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE, STA加密方式改变事件
ARDUINO_EVENT_WIFI_STA_GOT_IP, STA获取到IP事件
ARDUINO_EVENT_WIFI_STA_GOT_IP6, STA获取到IPv6事件
ARDUINO_EVENT_WIFI_STA_LOST_IP, STA失动IP事件
ARDUINO_EVENT_WIFI_AP_START, AP模式开启事件
ARDUINO_EVENT_WIFI_AP_STOP, AP模式停止事件
ARDUINO_EVENT_WIFI_AP_STACONNECTED, 有设备连入事件
ARDUINO_EVENT_WIFI_AP_STADISCONNECTED, 有设备断开事件
ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED, IP分配事件
ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED,
ARDUINO_EVENT_WIFI_AP_GOT_IP6, 获取IPv6事件
ARDUINO_EVENT_WIFI_FTM_REPORT, FTM
ARDUINO_EVENT_ETH_START,
ARDUINO_EVENT_ETH_STOP,
ARDUINO_EVENT_ETH_CONNECTED,
ARDUINO_EVENT_ETH_DISCONNECTED,
ARDUINO_EVENT_ETH_GOT_IP,
ARDUINO_EVENT_ETH_GOT_IP6,
ARDUINO_EVENT_WPS_ER_SUCCESS,
ARDUINO_EVENT_WPS_ER_FAILED,
ARDUINO_EVENT_WPS_ER_TIMEOUT,
ARDUINO_EVENT_WPS_ER_PIN,
ARDUINO_EVENT_WPS_ER_PBC_OVERLAP,
ARDUINO_EVENT_SC_SCAN_DONE,
ARDUINO_EVENT_SC_FOUND_CHANNEL,
ARDUINO_EVENT_SC_GOT_SSID_PSWD,
ARDUINO_EVENT_SC_SEND_ACK_DONE,
ARDUINO_EVENT_PROV_INIT,
ARDUINO_EVENT_PROV_DEINIT,
ARDUINO_EVENT_PROV_START,
ARDUINO_EVENT_PROV_END,
ARDUINO_EVENT_PROV_CRED_RECV,
ARDUINO_EVENT_PROV_CRED_FAIL,
ARDUINO_EVENT_PROV_CRED_SUCCESS,
ARDUINO_EVENT_MAX
@return 返回事件ID
void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
void removeEvent(wifi_event_id_t id);
删除事件处理程序
static int getStatusBits();
获取状态位
static int waitStatusBits(int bits, uint32_t timeout_ms);
等待状态位
int32_t channel(void);
获取频道ID号
void persistent(bool persistent);
在SDK flash区存储WiFi配置
void enableLongRange(bool enable);
开启WiFi远程模式
static bool mode(wifi_mode_t);
设置WIFI模式
参数:
@param wifi_mode_t WIFI模式,模式列表:
WIFI_OFF 不作定义
WIFI_STA 定义为STA模式,相当于无线终端,不接受无线的接入
WIFI_AP 定义为AP模式,提供无线接入服务,允许其它设备通过WIFI接入
WIFI_AP_STA 定义为STA和AP共存模式
@return 成功返回1,失败返回0
static wifi_mode_t getMode();
获取WIFI模式
bool enableSTA(bool enable);
开启STA模式
bool enableAP(bool enable);
开启AP模式
bool setSleep(bool enabled);
设置休眠(仅STA)
bool setSleep(wifi_ps_type_t sleepType);
设置休眠(仅STA)
wifi_ps_type_t getSleep();
获取休眠模式
bool setTxPower(wifi_power_t power);
设置TX功率
wifi_power_t getTxPower();
获取TX功率
bool initiateFTM(uint8_t frm_count=16, uint16_t burst_period=2, uint8_t channel=1, const uint8_t * mac=NULL);
启动FTM
static bool setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2, wifi_rx_ant_t rx_mode, wifi_tx_ant_t tx_mode);
设置双天线
static const char * getHostname();
获取主机名
static bool setHostname(const char * hostname);
设置主机名
static void useStaticBuffers(bool bufferMode);
static bool useStaticBuffers();
使用静态缓冲
static int hostByName(const char *aHostname, IPAddress &aResult);
将给定的主机名解析为一个IP地址。如果传递的主机名是一个IP地址,它将被解析为IPAddress结构。
static IPAddress calculateNetworkID(IPAddress ip, IPAddress subnet);
计算网络IP地址
static IPAddress calculateBroadcast(IPAddress ip, IPAddress subnet);
计算广播IP地址
static uint8_t calculateSubnetCIDR(IPAddress subnetMask);
计算子网掩码IP地址
bool addAP(const char* ssid, const char *passphrase = NULL);
设置新的WIFI接口,可以设置多个SSID和密码
uint8_t run(uint32_t connectTimeout=5000);
连接所有addAP函数所设定的WIFI
int16_t scanNetworks(bool async = false, bool show_hidden = false, bool passive = false, uint32_t max_ms_per_chan = 300, uint8_t channel = 0, const char * ssid=nullptr, const uint8_t * bssid=nullptr);
开始扫描WIFI
参数:
@param async 可选,默认 = false,是否开启异步扫描
@param show_hidden 可选,默认 = false,是否扫描隐藏WIFI
@param passive 可选,默认 = false,是否开启被动模式
@param max_ms_per_chan 可选,默认 = 300,超时时间
@param channel 可选,默认 = 0,扫描指定频道号的WIFI
@param ssid 可选,默认 = nullptr,扫描指定SSID的WIFI
@param bssid 可选,默认 = nullptr,扫描指定MAC地址的WIFI
@return 返回扫描到的WIFI数量
int16_t scanComplete();
获取扫描状态
参数:
@return 如果未开启扫描返回-2,如果正在扫描中返回-1,如果扫描完成返回扫描到的WIFI数量
void scanDelete();
删除最后扫描到的WIFI信息
bool getNetworkInfo(uint8_t networkItem, String &ssid, uint8_t &encryptionType, int32_t &RSSI, uint8_t* &BSSID, int32_t &channel);
获取网络信息
String SSID(uint8_t networkItem);
获取当前连接WIFI的SSID
wifi_auth_mode_t encryptionType(uint8_t networkItem);
获取WIFI的加密方式
int32_t RSSI(uint8_t networkItem);
获取WIFI的信号强度
uint8_t * BSSID(uint8_t networkItem);
获取WIFI的MAC地址
String BSSIDstr(uint8_t networkItem);
获取WIFI的MAC地址
int32_t channel(uint8_t networkItem);
获取WIFI的频道ID
static void * getScanInfoByIndex(int i);
指定一个索引来设定从哪个网络项目获取信息
void listenOnLocalhost();
监听本地主机
WiFiClient available();
WIFI客户端是否可用
WiFiClient accept();
WIFI客户端是否可用
void begin(uint16_t port=0);
void begin(uint16_t port, int reuse_enable);
启动服务端口
void setNoDelay(bool nodelay);
设置无延迟
bool getNoDelay();
获取延时状态
bool hasClient();
检查是否有客户端连接到服务器
void end();
void close();
void stop();
关闭或停止服务器
int setTimeout(uint32_t seconds);
设置超时时间
wl_status_t begin(const char* wpa2_ssid, wpa2_auth_method_t method, const char* wpa2_identity=NULL, const char* wpa2_username=NULL, const char *wpa2_password=NULL, const char* ca_pem=NULL, const char* client_crt=NULL, const char* client_key=NULL, int32_t channel=0, const uint8_t* bssid=0, bool connect=true);
wl_status_t begin(const char* ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true);
wl_status_t begin(char* ssid, char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true);
wl_status_t begin();
连接WIFI
bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000);
配置网络
bool reconnect();
强制断开连接,然后开始重新连接到AP
bool disconnect(bool wifioff = false, bool eraseap = false);
强制断开连接
bool isConnected();
获取连接状态
bool setAutoConnect(bool autoConnect);
设置自动连接
bool getAutoConnect();
获取是否自动连接状态
bool setAutoReconnect(bool autoReconnect);
设置自动重新连接
bool getAutoReconnect();
获取是否自动重新连接状态
uint8_t waitForConnectResult(unsigned long timeoutLength = 60000);
等待连接结果
void setMinSecurity(wifi_auth_mode_t minSecurity);// Default is WIFI_AUTH_WPA2_PSK
设置最小安全性
void setScanMethod(wifi_scan_method_t scanMethod);// Default is WIFI_FAST_SCAN
设置扫描方法
void setSortMethod(wifi_sort_method_t sortMethod);// Default is WIFI_CONNECT_AP_BY_SIGNAL
设置为集合排序方法
IPAddress localIP();
获取本地IP地址
uint8_t * macAddress(uint8_t* mac);
获取MAC地址
String macAddress();
获取MAC地址
IPAddress subnetMask();
获取子网掩码
IPAddress gatewayIP();
获取网关IP地址
IPAddress dnsIP(uint8_t dns_no = 0);
获取DNS地址
IPAddress broadcastIP();
获取广播IP地址
IPAddress networkID();
获取网络ID
uint8_t subnetCIDR();
获取子网掩码的CIDR码
bool enableIpV6();
开启IPv6
IPv6Address localIPv6();
获取IPv6地址
static wl_status_t status();
获取网络状态
String SSID() const;
获取SSID
String psk() const;
获取PSK码
uint8_t * BSSID();
获取BSSID
String BSSIDstr();
获取BSSID
int8_t RSSI();
获取RSSI
bool beginSmartConfig(smartconfig_type_t type = SC_TYPE_ESPTOUCH, char* crypt_key = NULL);
开始智能配置
bool stopSmartConfig();
停止智能配置
bool smartConfigDone();
获取智能配置是否完成状态