[Duda]como saber cuando un sensor esta funcionando

tengo una duda , sobre como saber cuando un sensor dht22 esta en funcionamiento, se que si este no funciona en la impresion serial muestra el error pero quiero que en lugar de imprimir el error , compruebe que si este funciona y si no pase al siguiente sensor( otro dht22 pero en otro pin)

tenia una idea de como hacerlo pero al tratar de implementarlo no tengo idea como :o alguien me puede ayudar ? ps: es una estación meteorológica simple, solo presion ,humedad y temperatura están separados en modulo porque si deja de funcionar uno, asi solo cae un servicio.

DHT temp1(3,DHT22);//pin 3 para sensor primer de temperatura dht22

DHT temp2(4,DHT22);//pin 4 para sensor segundo de temperatura dht22

DHT hume(2,DHT11);//pin 2 para sensor de humedad dht11

void setup() {

Serial.begin(9600);//Se inicia la comunicación serial 

//temp.begin(); //Se inicia el sensor de temperatura

hume.begin(); //Se inicia el sensor de humedad

pressure.begin(); //se inicia el sensor de presion

if (temp1.begin()==true)
{
temp1.begin()
}
else
{
  temp2.begin()
}

}

No entiendo muy bien qué quieres hacer exactamente. Yo inicializaría los 2 sensores y tomaría medida de ambos y sacaría la media (esto además te va a servir para pequeños errores de medida). Antes de realizar la media comprobar que la medida no es el error que dices que da si no esta operando y si uno de los dos da error sacar solo la temperatura medida por el otro.

Si lo quieres hacer un poco más "inteligente" puedes ir guardando en un vector los datos de cada sensor (las ultima x mediciones) y si de repente un dato varía solo en uno de los sensores y tiene una desviación muy grande respecto a los valores que estaba dando anteriormente el sensor puedes suponer que ha habido algún tipo de error, si ya te varían los dos en la misma medida entonces no porque es algo que ha hecho subir o bajar drásticamente la temperatura, las coincidencias no existen, ya lo decía grison.

Espera haberte dado una idea de por donde tirar.

Un saludo!

Cual es la librería que usas?
Pon el link por favor!!
En función es eso mi respuesta.

perdon por no poner el codigo completo :confused: , aqui lo tengo ya con algunas ediciones, lo que me refiero es que si se deconecta un dispositivo de temperatura , en este caso el que solo uso como sensor de temperatura son los dht 22, el dht11 es para humedad y el bmp180 solo para presion(aunque este mismo saca temperatura).aqui no se si se hagan la idea de como va el proyecto

#include <DHT.h>//cargamos la librería DHT
#include <DHT_U.h>
#include <SFE_BMP180.h>
#include <Wire.h>

SFE_BMP180 pressure;

DHT temp1(3,DHT22);//pin 3 para sensor primer de temperatura dht22
DHT temp2(4,DHT22);//pin 4 para sensor segundo de temperatura dht22
DHT hume(2,DHT11);//pin 2 para sensor de humedad dht11
void setup() {
  Serial.begin(9600);//Se inicia la comunicación serial 
   temp2.begin(); //Se inicia el sensor de temperatura 2

  temp1.begin(); //Se inicia el sensor de temperatura 1
  hume.begin(); //Se inicia el sensor de humedad
  pressure.begin();//se inicia el sensor de presion
 
}
void loop() {
  
  bool v=true;
  bool f=false;
  
if(temp1.readTemperature(true)) // si toma una lectura correcta el sensor 1 ejecuta lo siguiente
{
    
  double P;//variable auxiliar para leer presion
  float h = hume.readHumidity(); //Se lee la humedad
  double t = temp1.readTemperature(); //Se lee la temperatura
  //Se imprimen las variables 
  String humedad ="";
  humedad+=h;
  String linea=humedad+","+t;
  String linea2=","+linea;
  
  ///leer presion
 // String status;

      ///status = pressure.startPressure(3); //Inicio lectura de presión          
        P= pressure.getPressure(P,t); //Obtenemos la presión     
          //impresion serial de todos los datos
          double pre=P;
          String presion="";
          String pres=presion+pre;
          String linea3=pres+linea2;
          Serial.println(linea3);
          //todo esto se lee en un programa piloto en C# , solo lee lo que se imprime en serial
          // se lee en un arreglo en el programa

  delay(5000); //Se espera 5 segundos para seguir leyendo //datos
  }
else if (temp1.readTemperature(false)) //cambia al sendor 2 si el sensor 1 no da una lectura correcta
  {
    
    double P;//variable auxiliar para leer presion
  float h = hume.readHumidity(); //Se lee la humedad
  double t = temp2.readTemperature(); //Se lee la temperatura
  //Se imprimen las variables 
  String humedad ="";
  humedad+=h;
  String linea=humedad+","+t;
  String linea2=","+linea;
  
  ///leer presion

      ///status = pressure.startPressure(3); //Inicio lectura de presión          
        P= pressure.getPressure(P,t); //Obtenemos la presión     
          //impresion serial de todos los datos
          double pre=P;
          String presion="";
          String pres=presion+pre;
          String linea3=pres+linea2;
          Serial.println(linea3);
        
 //todo esto se lee en un programa piloto en C# , solo lee lo que se imprime en serial
          // se lee en un arreglo en el programa      

  delay(5000); //Se espera 5 segundos para seguir leyendo //datos
  }
}

Y de nuevo cual es tu librería?
Hay 20 librerías llamadas DHT.h!!!

Coloca un enlace por favor!!

QUiero ver en la librería algo que me ayude a responderte.

surbyte:
Y de nuevo cual es tu librería?
Hay 20 librerías llamadas DHT.h!!!

Coloca un enlace por favor!!

QUiero ver en la librería algo que me ayude a responderte.

aqui esta el enlace , esta es la que estoy usando
Libreria DHT22

No sé si mi módulo dth11 está funcionando porque me sale -999

Moderador:
No revivas hilos con mas de 120 dias sin cambios.
Hilo cerrado.