首页 > 解决方案 > Python TCP 服务器与 ESP32 通信

问题描述

我有一个使用以下代码运行的 Python 服务器:

import socket

s = socket.socket()
s.bind(('192.168.1.11', 5000))
s.listen(0)

while True:
    client, addr = s.accept()

    while True:
        content = client.recv(32)
        if len(content) == 0:
            break
        else:
            print(content)

    client.send(bytes('{\"accel\",\"gyro\",\"time\":1}', "utf-8"))
    print("Closing connection")
    client.close()

我希望我的 ESP32 与服务器进行双向通信。

这是Arduino代码:

#include <WiFi.h>

const char* ssid = "#########";
const char* password =  "######";
 
const uint16_t port = 5000;
const char * host = "192.168.1.11";
 
void setup() {
  Serial.begin(115200);
 
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.println("...");
  }
 
  Serial.print("WiFi connected with IP: ");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  WiFiClient client;
 
  if (!client.connect(host, port)) {
    Serial.println("Connection to host failed");
    delay(1000);
    return;
  }
 
  Serial.println("Connected to server successful!");
 
  client.print("Hello from ESP32!");

  if (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

    char c = client.read();
  
    Serial.println("Disconnecting...");
    client.stop();
 
    delay(10000);
}

到目前为止,我已经成功地将数据从 ESP32 发送到服务器。但我一直无法从服务器向 ESP32 发送命令。

我想将 JSON 从服务器发送到 ESP32。任何帮助,将不胜感激

标签: pythonarduinoesp32python-socketsarduino-c++

解决方案


推荐阅读