如何在 ESP32 作为接入点和本地服务器之间建立连接

Posted

技术标签:

【中文标题】如何在 ESP32 作为接入点和本地服务器之间建立连接【英文标题】:How establish connection between ESP32 as access point and local server 【发布时间】:2022-01-13 23:03:41 【问题描述】:

我必须向本地服务器发送文件,所以我使用httpClient 并尝试在主机上使用帖子:http://127.0.0.1:5000/show-version,在串行监视器中,但它不起作用,ESP 又是接入点模式


    void SendVersion ()
        client.begin(HOST);
        client.addHeader("Content-Type", "text/plain");
        int response = client.POST(version);
        if(response>0)
      
          String response = client.getString();  //Get the response to the request
        
          Serial.println(response);   //Print return code
          Serial.println(response);           //Print request answer
    
        else
      
          Serial.print("Error on sending POST: ");
          Serial.println(response);
      
        
        client.end(); 
    

【问题讨论】:

【参考方案1】:

127.0.0.1 是一个特殊的 IP 地址,意思是“这台计算机或设备”。当您在 ESP32 上使用它时,它意味着 ESP32,而不是您尝试连接的服务器。它也被称为localhost - 同样是运行软件的计算机或设备的简写。它不能识别外部计算机。

您需要使用您尝试连接的服务器的实际 IP 地址。如何找到取决于服​​务器运行的操作系统 - 如果您不知道如何操作,请使用 Google 查找。

当然,如果 ESP32 处于 AP 模式,那么它尝试与之通信的服务器需要连接到 ESP32 的 wifi 网络,以便 ESP32 能够与之通信。

【讨论】:

以上是关于如何在 ESP32 作为接入点和本地服务器之间建立连接的主要内容,如果未能解决你的问题,请参考以下文章

握手问题 Tornado 服务器和 ESP32 客户端

我的 ESP32 代码在 Arduino uno 之间建立 UART 通信是不是正确?

ESP32 如何使用 http.addHeader() 添加主机标头

Arduino OTA 将固件从服务器上传到 ESP32

使用 esp32 接入点流式传输 UDP 数据包会导致大量数据包丢失

STM32+ESP8ESP8266+SoftAP一键配网接入物联网平台