Однонаправленная связь между NodeMCU и Arduino выплевывает мусор

Я отправляю данные с ESP8266 (NodeMCU) на Arduino, используя последовательный порт и скорость 9600 бод с обеих сторон. Поскольку он однонаправленный и от NodeMCU к Arduino, я не использую регулятор напряжения и подключил tx (Software Serial) NodeMcu к Rx Arduino. Я подключил usb nodeMCU к компьютеру. Я сделал то же самое для питания Arduino.

Вот пример кода на NodeMCU:

#define Arduino_RX 4 // D2
#define Arduino_TX 5 // D1
SoftwareSerial ArduinoSerial(Arduino_RX, Arduino_TX); // Прием | Передача

void setup() {
  Serial.begin(115200);
  ArduinoSerial.begin(9600);
  delay(10);

  // Подключаемся к сети Wi-Fi
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Запускаем сервер
  server.begin();
  Serial.println("Server started"); 
}

void loop() 
{
    ArduinoSerial.println("hi");
    Serial.println("hi");
    delay(1); 
} 

Код на Arduino

#define ESP8266_RX   2
#define ESP8266_TX   3
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(ESP8266_RX, ESP8266_TX); // RX | TX

void setup() {
  // put your setup code here, to run once:
    Serial.begin(9600);     // communication with the host computer
    ESPserial.begin(9600);  
    Serial.println("Ready");

}

void loop() {
  if ( ESPserial.available() )   {  
    Serial.write( ESPserial.read() ); 
  }
}

, 👍2

Обсуждение

Спасибо Вам за Ваш вопрос. Не могли бы вы отредактировать его и действительно прояснить свой вопрос. Например, что вы ожидаете получить и что на самом деле получаете?, @sa_leinad

Программный серийный номер не всегда хорошо работает на 9600. Попробуйте 56k. Также учтите, что esp составляет 3,3 В, а Arduino — 5 В., @Visual Micro

многие модули ESP8266 по умолчанию имеют скорость 74880 бод, @Jaromanda X

Пробовал со всеми возможными скоростями безрезультатно. Стоит отметить, что это сработало пару дней назад, и недавно я начал видеть мусор., @Nikhil

Почему бы вам не попробовать использовать выводы Rx и Tx по умолчанию на nodeMCU. или в коде Arduino, почему бы не изменить скорость передачи данных на 115200., @rahul0201

Вы пытались увеличить задержку на ESP, чтобы у него была возможность очистить буфер перед отправкой дополнительных данных?, @Code Gorilla


1 ответ


1
  1. https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

  2. Заземляете ли вы их через USB-порт компьютера? Попробуйте также подключить их GND.

  3. Внешнее питание также может быть проблемой, я не знаю об энергопотреблении ESP, когда они что-то делают с Wi-Fi.

,