Как добиться быстрой и надежной связи между NodeMCU?
У меня есть два NodeMCU, которые должны отправлять данные на сервер (также NodeMCU). Я хочу добиться скорости не менее 10 Гц, потому что датчик отправляет ее с такой скоростью. Я пробовал веб-сокеты и не мог получить скорость передачи более 1 Гц, а данные помещались в буфер.
Есть идеи, как я могу достичь скорости 10 Гц через Wi-Fi?
Спасибо за любую помощь.
@Harry Karwasra, 👍0
Обсуждение1 ответ
Лучший ответ:
Объект WiFiClient является оболочкой для сокета TCP. Обычный сокет TCP подключен к IP-адресу и порту. WiFiServer запускает прослушивающий сокет на порту. Если к серверу в сокете для прослушивания обращается удаленный клиентский сокет, он создает локальный сокет, связанный с удаленным клиентским сокетом на свободном порту, и возвращает объект WiFiClient, обертывающий сокет. Все, что вы пишете или печатаете в WiFiClient, отправляется на этот удаленный сокет.
Если одна из ваших клиентских плат создает WiFiClient и подключает его к IP-адресу и порту WiFiServer на вашей «серверной» плате, вы получаете там WiFiClient из server. available(), и эти два объекта WiFiClient связаны. То, что вы пишете/печатаете на одной стороне, вы читаете из объекта WiFiClient на другой стороне.
клиентский сокет
if (client.connect(serverIP, PORT)) {
client.print("request\n");
String response = client.readStringUntil('\n');
Serial.println(response);
client.stop();
}
на стороне сервера
WiFiClient client = server.available();
if (client && client.connected()) {
String request = client.readStringUntil('\n');
Serial.println(request);
client.print("response\n");
client.stop();
}
- ESP8266 не подключается к Wi-Fi
- WebSocketsServer.h: No such file or directory
- Каково использование зарезервированных контактов и контактов SDD2, SDD3 NodeMCU?
- Как получить текущий уровень сигнала WiFi?
- Обнаружение ESP8266 в сети
- NodeMCU продолжает отключаться
- Соединение сетей Wi-Fi на nodemcu: как настроить esp8266 в качестве расширителя Wi-Fi, простейший случай
- Я получаю сброс сторожевого таймера в NodeMCU. Как навсегда отключить или остановить это?
символ единицы измерения частоты "Гц", а не "Гц" ... пожалуйста, исправьте свой вопрос, @jsotola