[SOLUCIONADO] Obtener datos de sensores

Hola, mi proyecto se basa en obtener la temperatura y humedad con el sensor dht11, además de medir el pulso cardíaco de una persona, con el sensor de pulso que tiene un corazón estampado, estos datos los envío a una aplicación móvil mediante bluetooth con el módulo HC-06. Cuando se pulse un botón en la app esta envía una letra para recibir los datos de un sensor, ya sea temperatura y humedad o pulso.
En el código que tengo utilizo case, pero solamente se muestra el resultado una vez, lo que quiero es hacer que hasta que se pulse el otro botón no deje de mostrar los datos recopilados por un solo sensor, de antemano muchas gracias.

#include "DHT.h" 
#define DHTPIN 2 //pin a utilizar para el dht11
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

int pulso=0; //variable que almacena el pulso

void setup()
{
  dht.begin(); //Inicializamos la lectura del dht11
  pinMode(A5,INPUT);//Seleccionamos el pin análogo 5 como entrada del pulso
  Serial.begin(9600);//Inicializamos el valor de transmisión.
}

void loop()
{
  while (Serial.available())//Declaramos un sentencia, Mientras el puerto Serial este disponible se empieza el ciclo 
  {
    char dato= Serial.read(); //Declaramos una variable de tipo carácter y Seo lee la variale enviada desde el Bluetooth.
    switch(dato)
    {
    case 'A': //Si en el caso de ser A la variable enviada, entonces:
      {
        int hum = dht.readHumidity(); //variable que almacena la humedad
        int temp = dht.readTemperature();//variable que almacena la temperatura
        Serial.print("La temperatura es: ");//Se mostrará el mensaje.
        Serial.print(temp);
        Serial.print("°C, ");
        Serial.print("La humedad ambiente es: ");
        Serial.print(hum);
        Serial.println("%");//Se muestra la temperatura y la humedad
        delay(1500);
        break;//El caso se detiene.
      }
    case 'B': //Si en el caso de ser B la variable enviada:
      {
        pulso=analogRead(A5); //iniciamos la lectura del pin de pulso
        Serial.println(pulso); //se muestra el pulso
        break;
      }
    }       
  }
}

Hola, creo que con el HC-06 solo puedes recibir no enviar para eso tienes el HC-05. Suerte.

Hola, he conseguido enviar los datos de los sensores a la app con el módulo, este permite enviar y recibir datos, lo que no permite es iniciar la conexión, hasta que un dispositivo BT inicie la conexión, lo que no consigo es crear el loop para cada sensor dependiendo de la opción que se elija desde la app, ya que muestro los datos obtenidos pero solamente una vez, en vez de mostrarlos como 'bucle' hasta que se seleccione el otro sensor mediante un botón.

No se si te sirve como ejemplo este loop que yo lo use para un auto que tenia un HC-06
este respondia a varias opciones y funciono al pelo

void loop() {

if(BT.available())   {
    dato=BT.read(); //Guarda UN carácter  en la variable "dato"

if(dato=='A')    {  // velocidad 1
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,200);  //5.05v a 220 5.30v a 240
        analogWrite(ena,205);  //4.16v a 220 5.08v a 240
    }
if(dato=='B')    {  // velocidad 2
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,255);  //5.05v a 220 5.30v a 240
        analogWrite(ena,250);  //4.16v a 220 5.08v a 240
    }  
      
      if(dato=='C')       { // parar motores
       analogWrite(enb,0);
       analogWrite(ena,0);
      }

 if(dato=='D')    {  // marcha atras
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, LOW); //atras
        digitalWrite (in4, HIGH);
        digitalWrite (in2, HIGH); //atras
        digitalWrite (in1, LOW);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,230);  //5.05v a 220 5.30v a 240
        analogWrite(ena,230);  //4.16v a 220 5.08v a 240
    } 

if(dato=='E')    {  // doblar derecha   rueda derecha (enb) gira hacia atras y rueda izq (ena) gira haica adelante
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, LOW); //atras
        digitalWrite (in4, HIGH);
        digitalWrite (in2, LOW); //adelante
        digitalWrite (in1, HIGH);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,240);  //5.05v a 220 5.30v a 240
        analogWrite(ena,240);  //4.16v a 220 5.08v a 240          
   }

if(dato=='F')    {  // doblar izquierda   rueda derecha (enb) gira hacia adelante y rueda izq (ena) gira haica atras
     //Preparamos la salida para que los motores giren en un sentido
        digitalWrite (in3, HIGH); //adelante
        digitalWrite (in4, LOW);
        digitalWrite (in2, HIGH); //atras
        digitalWrite (in1, LOW);
      // Aplicamos PWM al pin ENB y ENA, haciendo girar el motor a una velocidad que le indicamos en analogWrite
        analogWrite(enb,240);  //5.05v a 220 5.30v a 240
        analogWrite(ena,240);  //4.16v a 220 5.08v a 240          
   }

if(dato=='G' and n!= 1)    {  // luces rosas prende
 digitalWrite (ledr, HIGH); 
 dato='y'; 
 n=1;           
   }   
if(dato=='G' and n!= 0)    {  // luces rosas apaga
 digitalWrite (ledr, LOW); 
 dato='w'; 
 n=0;           
   }  

if(dato=='H' and nn!= 1)    {  // luces blancas prende
 digitalWrite (ledb, HIGH); 
 dato='x'; 
 nn=1;           
   }   
if(dato=='H' and nn!= 0)    {  // luces blancas apaga
 digitalWrite (ledb, LOW);  
 dato='z'; 
 nn=0;           
   }  

if (dato=='I') {
nota(d[1],120);noTone(spk);delay(10);
nota(d[1],120);noTone(spk);delay(10);
nota(d[1],120);noTone(spk);delay(10);
nota(g[1],675);noTone(spk);delay(35);
nota(d[2],675);noTone(spk);delay(10);
nota(c[2],120);noTone(spk);delay(10);
nota(b[1],120);noTone(spk);delay(10);
nota(a[1],120);noTone(spk);delay(10);
nota(g[2],675);noTone(spk);delay(35);
nota(d[2],675);noTone(spk);delay(20);
dato='r'; 
}
      
  }
}

Tu logica esta incluida dentro de un condicional a la que solo se accede en el caso de que haya datos disponibles para leer en el buffer serial,por lo tanto,una vez leidos ,ya no entra en el bucle while.Define dato como global antes del setup() y dale un valor inicial para empezar a leer un sensor aunque no le hayas indicado nada(por ejemplo 'A') ,luego ,el bucle while solo debe servir para asignar el caracter que envies a la variable dato,y el switch case tiene que quedar fuera del bucle while para que se ejecute en el loop.

Gracias, finalmente lo dejé de esta manera

#include "DHT.h" 
#define DHTPIN 2 //pin a utilizar para el dht11
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

int pulso=0; //variable que almacena el pulso
char dato=' ';//variable que almacena la opción a seguir

void setup()
{
  dht.begin(); //Inicializamos la lectura del dht11
  pinMode(A5,INPUT);//Seleccionamos el pin análogo 5 como entrada del pulso
  Serial.begin(9600);//Inicializamos el valor de transmisión.
}

void loop()
{
  while (Serial.available())//Declaramos un sentencia, Mientras el puerto Serial este disponible se empieza el ciclo 
  {
    dato= Serial.read(); //Declaramos una variable de tipo carácter y Seo lee la variable enviada desde el Bluetooth.
         
  }
  if(dato=='A') //Si en el caso de ser A la variable enviada, entonces:
      {
        int hum = dht.readHumidity(); //variable que almacena la humedad
        int temp = dht.readTemperature();//variable que almacena la temperatura
        Serial.print("La temperatura es: ");//Se mostrará el mensaje.
        Serial.print(temp);
        Serial.print("°C, ");
        Serial.print("La humedad ambiente es: ");
        Serial.print(hum);
        Serial.println("%");//Se muestra la temperatura y la humedad
        delay(1500);
      }
    if(dato=='B') //Si en el caso de ser B la variable enviada:
      {
        pulso=analogRead(A5); //iniciamos la lectura del pin de pulso
        Serial.print("El pulso es: ");
        Serial.println(pulso); //se muestra el pulso
      }
   if(dato=='C')
   {
    
   }
}