如果我分别从Arduino向ESP8266 WiMos Mini WiFi发送/接收数据,它可以正常工作,但是如果我以相同的代码一起发送和接收数据,则ESP可以成功接收数据,但是Arduino无法从ESP接收任何数据。
是串行端口问题还是其他问题?由于Arduino成功接收数据,因此仅接收而不发送。还是请讲另一个问题!我正在使用TX / RX串行。
#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;
}
#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;
}