HardwareSerial Nucleo_Slave(D2, D8); // RX, TX
// on declare 2 variables pour socker le message et la reponse
String rep, msg;
// fonction qui lit et stock ce que l'on tape dans la com serie avec le pc
void readSerialPort(){
while (Serial.available()) { // quand la com serie est disponible
if (Serial.available() > 0) { // quand il y a quelque chose dans le buffer
msg = Serial.readString(); // On récupère le message
}
Serial.flush(); // on vide le buffer
}
}
void setup(){
Serial.begin(115200);
Serial.print("Sketch: "); Serial.println(__FILE__);
Serial.print("Uploaded: "); Serial.println(__DATE__);
Serial.println();
delay(1000);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Serial.println("envoie allume ou eteint ou autre chose ...");
Nucleo_Slave.begin(9600); // On démarre la com avec le module BT
}
void loop(){
// récupération du message à envoyer
readSerialPort();
// Reception d'une reponse de la F411RE (esclave)
while (Nucleo_Slave.available()) { // quand la com BT est disponible
if (Nucleo_Slave.available() > 0) { // quand il y a quelque chose dans le buffer
rep = Nucleo_Slave.readString(); // On récupère la réponse
}
}
// Envoie du message tapé vers la F411RE (esclave)
if(msg!=""){ // si notre message n'est pas vide
Serial.print("L476RG envoi : \""); // on affiche le message qu'on envoie à la F411RE
Serial.print(msg);
Serial.println("\" à F411RE");
Nucleo_Slave.print(msg); // on l'envoie
msg=""; // puis on vide notre variable
}
// Affichage de la réponse de la F411RE (esclave)
if(rep!=""){ // si la reponse n'est pas vide
Serial.print("F411RE à répondu : "); // on affiche la reponsee que l'on à reçu de la F411RE
Serial.println(rep);
if (rep.equals("OFF")) { // on execute la commande
digitalWrite(LED_BUILTIN, LOW);
} else if (rep.equals("ON")) {
digitalWrite(LED_BUILTIN, HIGH);
}
rep=""; // puis on vide notre variable
}
}