У меня есть контроллер 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? Есть ли еще подходящие библиотеки, которые я мог бы использовать?