つのArduinosがシリアルで通信する方法.


私たちが知っているように、Arduinoはあまりにも多くのセンサーを処理することはできませんし、すべてのそれらを計算することができないので、時々私たちはソースを他のArduinoにセンサーを必要とし、それは値を計算し、マスターに私たちに送ってください.

配線



Rx = == > TX
この関数は、
GND = = = GND
私は他のArduinoにデータを送信する必要があり、それを計算し、マスターに私にそれを送ってください.

マスターコード


char number  = ' ';
String message = "";
bool send_data = true;
void setup()
{
  Serial.begin(9600);

}

void loop()
{

  while(send_data){

  Serial.println("Little bord Hi!! ");

   readData();
  delay(2000);
  if(message != ""){
      if(message == "2222"){
      send_data = false;

      Serial.println("Message received");
      Serial.println("******************");
      Serial.println(message);
      Serial.println("******************");
      }
  }
      message = "";

  }


}

void readData(){
  while(Serial.available()){

   if(Serial.available())
   {
      char number = Serial.read();
      message += number ;
   }
  }
}

スレーブコード


char number  = ' ';
String message = "";
bool is_not_sent = true; 
void setup() 
{
  pinMode(LED_BUILTIN, OUTPUT);
   Serial.begin(9600);
   Serial.println("START");
}


void loop()
{


 readData();
  delay(2000);
 if(is_not_sent)
  {
    if(message != ""){
      message = "Big bro said : " + message;
      // Serial.println(message);
      digitalWrite(LED_BUILTIN, HIGH); 
      delay(500);
      Serial.print(2222);
      delay(500);

      // Todo check wach correct data
      is_not_sent = false;
      message = "";
  }
  }
}



void readData(){
  while(Serial.available()){

   if(Serial.available())
   {
      char number = Serial.read();
      message += number ;
   }
  }
}