试图从一个ESP32与另一个ESP32进行通信,其中一个充当AP,另一个充当客户端,但似乎无法将esp客户端连接到esp AP,但使用智能手机works.Sorry连接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));
}
}发布于 2018-12-06 21:52:30
正如@juraj所提到的,在ESP32的Arduino代码中,当连接到AP的尝试已经在进行时,您不能启动扫描。
在尝试连接之前(在scanNetworks()之前)调用WiFi.begin(ssid, password);。
或
在建立到AP的连接后(在scanNetworks()之后)调用while (WiFi.status() != WL_CONNECTED){}。
我不认为在试图连接到已知的WiFi AP时扫描网络是有任何意义的。
发布于 2020-09-22 03:31:14
ESPnow (参见示例这里 )对于ESP到ESP通信来说很容易。(也包括ESP8266等)
https://stackoverflow.com/questions/53652583
复制相似问题