簡體   English   中英

ESP32 接入點

[英]ESP32 access point

我有 2 個 ESP32 板,我想在 Arduino IDE 中使它們成為服務器/客戶端。 只有兩塊板,中間沒有路由器。

到目前為止,我已經按照教程進行操作,並且已經能夠從手機連接到 ESP32。

#include <WiFi.h>
WiFiServer server;
const char *ssid = "Zupa";
const char *password = "12345678";
void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.print("Configuring access point...");

  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);

}

void loop() {

}

但是,我無法從其他 ESP32 連接。 代碼如下:

#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti WiFiMulti;

void setup()
{
    Serial.begin(115200);
    delay(10);
    enter code here
    // We start by connecting to a WiFi network
    WiFiMulti.addAP("Zupa", "12345678");

    Serial.println();
    Serial.println();
    Serial.print("Wait for WiFi... ");

    while(WiFiMulti.run() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    delay(500);
}


void loop()
{
    const uint16_t port = 80;
    const char * host = "192.168.1.4"; // ip 



    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;

    if (!client.connect(host, port)) {
        Serial.println("connection failed");
        Serial.println("wait 5 sec...");
        delay(5000);
        return;
    }

    // This will send the request to the server
    client.print("Send this data to server");

    //read back one line from server
    String line = client.readStringUntil('\r');
    client.println(line);

    Serial.println("closing connection");
    client.stop();

    Serial.println("wait 5 sec...");
    delay(5000);
}

發生的事情是它只是說它無法連接。 IP地址是默認的,我在服務器端仔細檢查了! 為什么我可以通過手機而不是 ESP32 連接?

此外,我將如何在兩者之間進行通信? 我嘗試在線閱讀,但似乎每個人都在做電話到 ESP 的通信,而不是 ESP 到 ESP。 我也嘗試閱讀 Kolbans 先生關於 ESP32 的書,但沒有成功。 我對此很陌生,感覺被卡住了。

我要做的只是將WiFi庫從ESP8266wifi.h更改為與ESP32兼容的Wifi.h。

來源

在代碼示例中,只需更改代碼即可滿足您的特定需求。

#include <WiFi.h>
#include <WiFiClient.h>

void setup()
{
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network
    WiFi.mode(WIFI_STA); //Set wifi mode as station
    WiFi.begin("Zupa", "12345678");//Connect to other ESP32

    Serial.println();
    Serial.println();
    Serial.print("Wait for WiFi... ");

    //Wait for WiFi to connect
    while(WiFi.waitForConnectResult() != WL_CONNECTED){      
      Serial.print(".");
      delay(1000);
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    delay(500);
}


void loop()
{
    const uint16_t port = 80;
    const char * host = "192.168.1.4"; // ip 



    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;

    if (!client.connect(host, port)) {
        Serial.println("connection failed");
        Serial.println("wait 5 sec...");
        delay(5000);
        return;
    }

    // This will send the request to the server
    client.print("Send this data to server");

    //read back one line from server
    String line = client.readStringUntil('\r');
    client.println(line);

    Serial.println("closing connection");
    client.stop();

    Serial.println("wait 5 sec...");
    delay(5000);
}

嗯,這是四年前我讀到這篇文章的時候寫的。 這是一個 教程 我希望這能解決你的問題。

嘗試將客戶端代碼的IP更改為:

const char * host =“ 192.168.4.1”

提示:我使用Android或iOS中的Finger應用程序來掃描網絡,非常高興看到所連接的每個設備的IP。 (在您的情況下,您需要在使用Finger之前將移動設備連接到Esp32的熱點)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM