HardwareSerial Nucleo_Master(D2, D8); // RX, TX
// on declare 2 variables pour socker le message reçu
String msg_recu;
// fonction qui lit et stock ce que l'on tape dans la com serie avec le pc
void readSerialPort(){
while (Nucleo_Master.available()) { // quand la com serie est disponible
if (Nucleo_Master.available() > 0) { // quand il y a quelque chose dans le buffer
msg_recu = Nucleo_Master.readString(); // On récupère le message
}
}
Nucleo_Master.flush(); // on vide le buffer
}
void setup(){
Serial.begin(115200);
Nucleo_Master.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}
void loop(){
// récupération du message à envoyer
readSerialPort();
// Envoie de la réponse vers la L476RG (esclave)
if(msg_recu!=""){
Serial.print("Tu m'as envoyé : " );
Serial.println(msg_recu);
if (msg_recu.equals("allume")) { // si le message recu est allume
digitalWrite(LED_BUILTIN, HIGH); // on allume la led
Nucleo_Master.print("ON"); // et on envoie ON en réponse
} else if (msg_recu.equals("eteint")) { // si le message recu est eteint
digitalWrite(LED_BUILTIN, LOW); // on eteint la led
Nucleo_Master.print("OFF"); // et on envoie OFF en réponse
} else {
Nucleo_Master.print(msg_recu); // sinon on répond juste par le message recu
}
msg_recu=""; // puis on vide notre variable
}
}