Медленная связь между Wemos и Raspberry через WiFi - PullRequest
1 голос
/ 15 января 2020

У меня есть контроллер PTZ , Wemos D1 Mini (на основе ESP8266-12F) и Raspberry, и я хочу прочитать данные с PTZ с помощью Wemos и отправить их через Wi-Fi в Raspberry. Это мой код на RPi:

import socket
s = socket.socket()
# host = socket.gethostname()
host = '192.168.0.26'
port = 9999
s.connect((host, port))

try:
    while True:
        response1 = s.recv(1024).decode("utf-8")
        print(response1)

except KeyboardInterrupt:
    s.close()

И мой код на Wemos:

#include "ESP8266WiFi.h"

int msg = 0;
String str = String(0,HEX);
bool startReading = false;
String command = "";

const char *ssid = "MyName";
const char *password = "MyPassword";

WiFiServer wifiServer(9999);

void setup() {

  Serial.begin(9600);
  Serial.setDebugOutput(true);

  for(uint8_t t = 4; t > 0; t--) {
      Serial.printf("[SETUP] BOOT WAIT %d...\n", t);
      Serial.flush();
      delay(1000);
  } 
  delay(1000);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting..");
  }

  Serial.print("Connected to WiFi. IP:");
  Serial.println(WiFi.localIP());

  wifiServer.begin();
}

void loop() {

  WiFiClient client = wifiServer.available();

  if (client) {

    while (client.connected()) {

      msg = Serial.read();
      if (msg != -1) {
        command = String(msg,HEX);
        client.print(command);
      }
      delay(1);
    }

    client.stop();
    Serial.println("Client disconnected");

  }
}

Все работает нормально, считывание данных с PTZ происходит мгновенно, но отправка данных на RPi идет медленно, я можно увидеть значительную задержку. Уменьшение расстояния от роутера не улучшает ситуацию. Я пытался использовать #include <WebSocketsServer.h>, но эта библиотека еще хуже. У меня вопрос, как я могу увеличить скорость связи? Поможет ли поставить сервер на rpi вместо wemos? Есть ли еще подходящие библиотеки, которые я мог бы использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...