7. ESP32

您所在的位置:网站首页 wifi接入代码希尔顿是什么 7. ESP32

7. ESP32

2024-07-13 08:59:17| 来源: 网络整理| 查看: 265

ESP32-WIFI

Wi-Fi是一种基于IEEE 802.11标准的无线局域网技术,是Wi-Fi联盟制造商的商标作为产品的品牌认证。它可以让电脑、手机、平板电脑等设备通过无线信号连接到互联网 。 在无线网络中,AP(Access Point)和 STA(Station)是两个重要的概念。AP即无线接入点,它是一个无线网络的中心节点,负责向周围的设备提供无线信号,例如路由器或无线基站。另一方面,STA指的是接收无线信号的终端设备,比如笔记本电脑、智能手机、平板电脑等。这些设备可以通过连接AP热点来连接到网络

官方手册

Wi-Fi API 简介

Wi-Fi API 提供对 802.11b/g/n 协议驱动程序的支持。此 API 包括:

Station 模式(STA 模式或 Wi-Fi 客户端模式)。ESP32 连接到接入点

AP 模式(又名 Soft-AP 模式或接入点模式)。设备连接到 ESP32

安全模式(WPA2、WPA3 等)

扫描接入点

WIFI终端(STA)

STA 模式用于将 ESP32 连接到接入点提供的 Wi-Fi 网络

1. 连接WIFI

WiFi.begin(ssid, password); ssid 是Wi-Fi网络的名称password 是Wi-Fi网络的密码

2. 检查是否连接成功:

// 等待Wi-Fi连接成功 while (WiFi.status() != WL_CONNECTED) { // 打印提示信息 Serial.println("正在连接"); // 延时1秒 delay(1000); }

WiFi.status()用于获取当前WiFi连接的状态。返回值类型为 wl_status_t,表示连接状态的整数值。

以下是一些返回值及其含义:

WL_NO_SHIELD: 没有连接到任何WiFi模块或扩展板。WL_IDLE_STATUS: WiFi处于空闲状态,未连接到任何网络。WL_CONNECTED: 已连接到WiFi网络。WL_CONNECT_FAILED: 尝试连接到WiFi网络失败。WL_CONNECTION_LOST: 与WiFi网络的连接丢失。

3. 重新连接

bool reconnect();

reconnect()尝试重新连接

4. 断开连接

bool disconnect(bool wifioff = false, bool eraseap = false); wifioff:默认值为false,表示不关闭WiFieraseap:默认值为false,表示不擦除接入点信息

5. 返回连接状态

bool isConnected();

isConnected()返回连接状态的bool值

在ESP32 Arduino框架下配置网络参数,特别是针对Wi-Fi的设置,主要包括以下步骤和概念:

6. 配置STA模式下的其他参数 除了基本的SSID和密码之外,还可以对Wi-Fi连接进行更详细的配置,例如连接超时、重试次数等,通过调用WiFi.begin()的扩展形式:

int32_t connectionTimeout = 10000; // 连接超时时间,单位毫秒 bool wifiConnected = WiFi.begin(ssid, password, 0, nullptr, connectionTimeout);

7. 动态IP与静态IP 默认情况下,ESP32会通过DHCP自动获取IP地址。如果您希望ESP32使用静态IP地址,可以这样配置:

IPAddress local_IP(192, 168, 1, 100); // 静态IP IPAddress gateway(192, 168, 1, 1); // 网关 IPAddress subnet(255, 255, 255, 0); // 子网掩码 if (!WiFi.config(local_IP, gateway, subnet)) { Serial.println("STA Failed to configure"); }

7. 保存网络配置到非易失性存储 为了使ESP32在重启后能记住网络配置,可以使用Preferences库或SPIFFS等非易失性存储方式保存SSID和密码:

#include Preferences preferences; preferences.begin("myPrefs", true); // "myPrefs" 是命名空间 preferences.putString("ssid", ssid); preferences.putString("password", password); preferences.end(); 连接WIFI的程序示例: #include #include void setup() { // 初始化串口通信,波特率为115200 Serial.begin(115200); // 开始连接Wi-Fi网络,使用SSID为"HUAWEI-NZX_2.4G",密码为"987654321" WiFi.begin("HUAWEI-NZX_2.4G", "987654321"); // 等待Wi-Fi连接成功 while (WiFi.status() != WL_CONNECTED) { // 打印提示信息 Serial.println("正在连接"); // 延时1秒 delay(1000); } // 打印连接成功的IP地址 Serial.print("ip:"); Serial.println(WiFi.localIP()); } void loop() { } WIFI主机(AP)

在AP模式下ESP32 配置为接入点 ,它能够通过提供 Wi-Fi 网络

1. 将 Wi-Fi 作为接入点启动

bool WiFiAPClass::softAP(const char* ssid, const char* passphrase, int channel, int ssid_hidden, int max_connection, bool ftm_responder)

WiFiAPClass::softAP() 是一个用于启动一个开放网络的函数,它接受以下参数:

ssid:网络名称,即SSID。passphrase:网络密码。channel:网络使用的频道。ssid_hidden:是否隐藏SSID,0表示不隐藏,1表示隐藏。max_connection:最大连接数。ftm_responder:是否作为FTM(Fast Track Management)响应器,0表示不作为,1表示作为。

返回值:如果成功启动开放网络,则返回 true;否则返回 false。

2. 将 IP 配置为静态(固定)以及网关和子网

bool softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet);

用于配置ESP32的SoftAP(软件接入点)的函数。它接受三个参数:

local_ip:设置本地 IP 地址gateway:设置网关 IPsubnet:设置子网掩码

函数返回一个布尔值,表示配置是否成功

3. softAP断开连接

bool softAPdisconnect(bool wifioff = false);

softAPdisconnect函数的作用是断开当前设备的软接入点AP连接。

wifioff :为false时断开软接入点连接后,设备将自动切换回WiFi模式;为true时,断开软接入点连接后,设备将保持关闭状态。

4. 获取AP客户端数量

uint8_t softAPgetStationNum();

softAPgetStationNum(); 可以获取当前软接入点(Soft Access Point)连接的客户端设备数量。一个无符号8位整数,用于表示设备数量。

5. 获取 AP IPv4 地址的函数

IPAddress softAPIP();

softAPIP()获取当前设备的软接入点的IP地址,以IPAddress 格式返回地址

6.获取SSID

SSIDAddress softAPSSID(); 创建WIFI接入点程序示例: #include #include "WiFi.h" // 引入WiFi库 const char* ssid="ESP32AP"; // 定义一个字符串常量,表示WiFi接入点的SSID const char* password="123456789"; // 定义一个字符串常量,表示WiFi接入点的密码 void setup() { Serial.begin(115200); // 初始化串行通信,波特率为115200 WiFi.softAP(ssid,password); // 创建一个名为ESP32AP的WiFi接入点,并设置密码为"123456789" Serial.print("\n WiFi接入点ip:"); // 在串行监视器上打印提示信息 Serial.println(WiFi.softAPIP()); // 在串行监视器上打印WiFi接入点的IP地址 } void loop() { } WiFi扫描

对网络执行 Wi-Fi 扫描,获取周围网络环境中的可用WIFI

1. 扫描可用的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);

scanNetworks该函数会返回一个包含所有可用网络SSID(服务集标识符)的个数。

扫描周边WiFi网络,并串口打印 网络名称,信号强度,MAC地址 void scanNetworks(){ int numberOfNetworks= WiFi.scanNetworks(); // 扫描周边WiFi网络,并获取网络数量 Serial.print("周围可用WILI数量:"); // 打印网络数量 Serial.println(numberOfNetworks); for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭