如何通过esp32 ap模式连接互联网
How to connect internet via esp32 ap mode
大家。
我现在有问题...
我想做一个类似ESP32 AP + STA模式的东西
我的客户端是iPAD并且iPAD(STA)连接到ESP32(AP + STA模式)
还有我的 ESP32(STA) 连接到我的路由器。
根据arduino的串行日志,我的esp32得到了一个ip。
正好两个ip。 AP ip 和 STA ip.
我从路由器通过 icmp 发送了一个 ping。
ipTime 路由器成功向 esp32(STA) 发送 ping。
对不起我愚蠢的英语..无论如何.
我想做一个这样的
iPAD <-> ESP32(AP+STA) <-> 路由器(互联网)
ESP32 工作在 AP 和 STA 两种模式。
iPAD 是 ESP32 站,我想通过 ESP32 使用互联网
iPAD -> ESP32 -> 路由器(互联网)
有人给我解决方案吗?
下面是我的代码。
#include <WiFi.h>
#define LOG Serial
#define AP_SSID "ESP32_AP_STA"
#define AP_PASS "123456789a"
#define STA_SSID "jeong"
#define STA_PASS "jong1992"
IPAddress ip(192, 168, 0, 50);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
WiFiServer TCPServer(1234, ip);
WiFiClient TCPClient;
void setup(void)
{
LOG.begin(115200);
while(!LOG)
{
;
}
WiFi.disconnect(true);
// WiFi.onEvent(WiFiEvent);
WiFi.mode(WIFI_AP_STA);
WiFi.softAPConfig(ip, gateway, subnet);
WiFi.softAP(AP_SSID, AP_PASS);
delay(100);
TCPServer.begin();
TCPServer.setNoDelay(true);
WiFi.begin(STA_SSID, STA_PASS);
WiFi.setHostname(AP_SSID);
while(WiFi.status() != WL_CONNECTED)
{
delay(200);
LOG.print("+");
}
LOG.print(STA_SSID);
LOG.print(" : ");
LOG.println(WiFi.localIP());
LOG.print(AP_SSID);
LOG.print(" : ");
LOG.println(WiFi.softAPIP());
}
void loop(void)
{
}
您可以实现具有 NAT 功能的路由器。由于这很重要,我将只向您推荐搜索“esp32 nat router”时弹出的第一个项目:https://github.com/martin-ger/esp32_nat_router
大家。
我现在有问题...
我想做一个类似ESP32 AP + STA模式的东西
我的客户端是iPAD并且iPAD(STA)连接到ESP32(AP + STA模式)
还有我的 ESP32(STA) 连接到我的路由器。
根据arduino的串行日志,我的esp32得到了一个ip。
正好两个ip。 AP ip 和 STA ip.
我从路由器通过 icmp 发送了一个 ping。
ipTime 路由器成功向 esp32(STA) 发送 ping。
对不起我愚蠢的英语..无论如何.
我想做一个这样的
iPAD <-> ESP32(AP+STA) <-> 路由器(互联网)
ESP32 工作在 AP 和 STA 两种模式。
iPAD 是 ESP32 站,我想通过 ESP32 使用互联网
iPAD -> ESP32 -> 路由器(互联网)
有人给我解决方案吗?
下面是我的代码。
#include <WiFi.h>
#define LOG Serial
#define AP_SSID "ESP32_AP_STA"
#define AP_PASS "123456789a"
#define STA_SSID "jeong"
#define STA_PASS "jong1992"
IPAddress ip(192, 168, 0, 50);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
WiFiServer TCPServer(1234, ip);
WiFiClient TCPClient;
void setup(void)
{
LOG.begin(115200);
while(!LOG)
{
;
}
WiFi.disconnect(true);
// WiFi.onEvent(WiFiEvent);
WiFi.mode(WIFI_AP_STA);
WiFi.softAPConfig(ip, gateway, subnet);
WiFi.softAP(AP_SSID, AP_PASS);
delay(100);
TCPServer.begin();
TCPServer.setNoDelay(true);
WiFi.begin(STA_SSID, STA_PASS);
WiFi.setHostname(AP_SSID);
while(WiFi.status() != WL_CONNECTED)
{
delay(200);
LOG.print("+");
}
LOG.print(STA_SSID);
LOG.print(" : ");
LOG.println(WiFi.localIP());
LOG.print(AP_SSID);
LOG.print(" : ");
LOG.println(WiFi.softAPIP());
}
void loop(void)
{
}
您可以实现具有 NAT 功能的路由器。由于这很重要,我将只向您推荐搜索“esp32 nat router”时弹出的第一个项目:https://github.com/martin-ger/esp32_nat_router