【发布时间】:2018-12-06 13:31:48
【问题描述】:
尝试从一个 ESP32 到另一个 ESP32 进行通信,其中一个充当 AP,另一个充当客户端,但似乎无法将 esp 客户端连接到 esp AP,但使用我的智能手机连接到 AP 有效。如果这看起来很抱歉作为一个简单的问题,我是 esp32s 和 WiFi 通信的新手。
接入点代码
#include <WiFi.h>
const char* ssid = "ESP32-Access-Point";
const char* password = "SyedAhmedAli";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
Serial.println("Setting AP (Access Point)…");
WiFi.softAP(ssid, password);
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
Serial.print("MAC address: ");
Serial.println(WiFi.softAPmacAddress());
server.begin();
}
void loop(){
WiFiClient client = server.available(); // Listen for incoming clients
if (client)
{ Serial.println("New Client.");
while (client.connected())
{
Serial.println(client.connected());
Serial.println("Client connected.");
Serial.println("");
}
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}
客户端代码
#include <WiFi.h>
#include <SPI.h>
const char* ssid = "ESP32-Access-Point";
const char* password = "SyedAhmedAli";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
scanNetworks();
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
}
void loop() {
}
void scanNetworks() {
// scan for nearby networks:
Serial.println("** Scan Networks **");
byte numSsid = WiFi.scanNetworks();
// print the list of networks seen:
Serial.print("SSID List:");
Serial.println(numSsid);
// print the network number and name for each network found:
for (int thisNet = 0; thisNet<numSsid; thisNet++) {
Serial.print(thisNet);
Serial.print(") Network: ");
Serial.println(WiFi.SSID(thisNet));
}
}
【问题讨论】:
-
从电台代码中删除
scanNetworks()呼叫。你在 esp 应该连接到 AP 时执行它 -
我应该在客户端使用站模式吗?
-
WiFi 有接入点和站点。没有客户
-
@Juraj 嘿!我在客户端收到一条消息它已连接,但服务器端没有打印客户端已连接,也许你知道为什么?
-
@Atizs,你发送一些数据吗?许多 Arduino 网络库一直等到客户端提供数据
标签: c++ arduino wifi microcontroller esp32