Если я отправляю / получаю данные из 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;
}