Получение мусорных значений при последовательной связи между Arduino Uno и ESP8266 NodeMCU

Я создал метеостанцию на ESP8266 NodeMCU, которая имеет веб-интерфейс с журналами. Я подключил DHT22 на ESP8266 NodeMCU и BMP180 на Arduino Uno. Arduino Uno посылает давление на ESP8266 NodeMCU через последовательную связь, и ESP8266 регистрирует все данные, полученные от Arduino Uno. Проблема в том, что, когда я получить доступ к журналу иногда я получаю хороший выход, например 1022.23 гПа, но иногда браузер просит скачать логи и когда я открываю его, я получаю вывод мусора как LLÉ'Ňrš'Ň'ŞŇŠĘŇŠŠrŞÂŇŠ"šr'ţ. Это код последовательной связи:

#include <SoftwareSerial.h>
#include <ESP8266WebServer.h>

ESP8266WebServer server(80);
SoftwareSerial s(D6, D5);

String logs = "";

void logFunc(String logstring) {
  logs += logstring + "\n";
}

void setup() {
s.begin(9600);
server.on("/logs", handleLogs);
}

void loop(){
if (s.available() > 0)
  {
    serial = s.readString();
    logFunc(serial); //функция для ведения журнала
  }
}
void handleLogs() {
  server.send(200, "text/plain", logs);
}

В чем может быть причина и как я могу ее исправить?

, 👍1

Обсуждение

Вы уверены, что UNO отправляет правильные данные?, @Majenko

Да, я получал четкие выходные данные, когда читал выходные данные на последовательном мониторе., @Janko Pjer

это не может компилироваться, @Juraj