/* Programme de dialogue très simplifié pour initialiser et interroger le module
   Bluetooth de type HC-05. Il faut gérer entièrement les majuscules et les minuscules.

Comportement du programme :   (Voir le didacticiel)
---------------------------
 • On frappe des commandes AT et on observe le retour du module.
 
 BRANCHEMENTS à effectuer :
--------------------------
  • Le +5V va sur VCC du HC-05.
  • GND va sur GND  du HC-05.
  • 3,3V va sur EN  du HC-05. (Ou +5V avec 1kohm et 2kohm
  • D2 d'Arduino va sur TX du HC-05.
  • D3 d'Arduino va sur RX (1k,2k) du HC-05.
  
                         PGM                   RAM dynamique 
Compilateur v1.7.9 :   5792 Octets (17%)      327 Octets (15%)  */

//------------------------ Constantes du programme --------------------------
#define Version "03/07/2025" // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#include <SoftwareSerial.h>

//------------------- Définition des broches binaires -----------------------
#define RX_Arduino 2 // D2 d'Arduino va sur TX du HC-05.
#define TX_Arduino 3 // D3 d'Arduino va sur RX (1k,2k) du HC-05.
#define Vitesse 9600

//------------------------- Variables du programme --------------------------
String TEXTE;
SoftwareSerial Module_HC_05(RX_Arduino ,TX_Arduino);

//======================== Procédures de servitude ==========================

void Lire_le_port_serie(){
    TEXTE = "";
    while (Serial.available()) {
    delay(10);
    if (Serial.available() >0) {
    char CARACTERE = Serial.read(); // Lecture d'un caractère dans le tampon série.
    TEXTE += CARACTERE; }}} // Concaténer le caractère.
    
//========================== Corps du programme =============================

void setup(){
  pinMode(RX_Arduino,INPUT); pinMode(TX_Arduino,OUTPUT);
  Serial.begin(Vitesse); Serial.println("Commande AT :");
  Module_HC_05.begin(38400);}

void loop(){
  Lire_le_port_serie();
  if(TEXTE != "") Module_HC_05.println(TEXTE);
  if (Module_HC_05.available() > 0){
  Serial.write(Module_HC_05.read());}}
    
