Последовательная связь между ESP8266 и Arduino Uno Отправка / получение данных вместе - PullRequest
0 голосов
/ 04 апреля 2020

Если я отправляю / получаю данные из Arduino на ESP8266 WiMos Mini WiFi по отдельности, это нормально работает, но если я отправляю и получаю данные вместе в одном и том же коде, то ESP получает данные успешно, но Arduino не получает никаких данных от ESP.

Это проблема с последовательным портом или что-то еще? Потому что Arduino получает данные успешно, когда он только получает, а не отправляет. Или это другой вопрос, пожалуйста, расскажите! Я использую серийный TX / RX.

Код Arduino

#include <SoftwareSerial.h>

#include <ArduinoJson.h>

void setup() {

Serial.begin(9600);

}

void loop() {

SendData();

delay(2000);

ReceiveData1();

delay(2000);

}

void SendData(){

StaticJsonBuffer<1000> jsonBuffer;

JsonObject& root = jsonBuffer.createObject();

String ali="AmAli";

String Sani="AmSani";

root["data1"] = ali;

root["data2"] = Sani;

if(Serial.available()==0)

{

Serial.println("Serial not available");

}

if(Serial.available()>0)

{

root.printTo(Serial);

}

return;

}

void ReceiveData1(){

StaticJsonBuffer<1000> jsonBuffer;

JsonObject& root1 = jsonBuffer.parseObject(Serial);

if (root1 == JsonObject::invalid()){

Serial.println("invalid Input :");

return;

}

Serial.println("JSON received and parsed");

root1.prettyPrintTo(Serial);

Serial.print("Sunny ");

int Sunny=root1["Sunny"];

Serial.println(Sunny);

Serial.print(" Saama ");

int Saama=root1["Saama"];

Serial.println(Saama);

Serial.println("---------------------xxxxx--------------------");

return;

}

Код ESP

#include <ArduinoJson.h>

void setup() {

// Initialize Serial port

Serial.begin(9600);

}

void loop() {

SendData();

delay(2000);

ReceiveData();

delay(2000);

}

void ReceiveData(){

StaticJsonBuffer<1000> jsonBuffer;

JsonObject& root = jsonBuffer.parseObject(Serial);

if (root == JsonObject::invalid()){

Serial.println("invalid Input :");

return;

}

Serial.println("JSON received and parsed");

root.prettyPrintTo(Serial);

Serial.print("Data 1 ");

Serial.println("");

String data1=root["data1"];

Serial.print(data1);

Serial.print(" Data 2 ");

String data2=root["data2"];

Serial.print(data2);

Serial.println("");

Serial.println("---------------------xxxxx--------------------");

return;

}

void SendData(){

StaticJsonBuffer<1000> jsonBuffer;

JsonObject& root1 = jsonBuffer.createObject();

root1["Sunny"] = 65;

root1["Saama"] = 56;

if(Serial.available()==0)

{

Serial.println("Serial not available");

}

if(Serial.available()>0)

{

root1.printTo(Serial);

}

return;

}
...