Perdona pero creo que no has leído las normas del foro.
Lo digo porque de haber puesto el código seguramente ya te podríamos dar quizas alguna respuesta.
El reloj DS3231 va entre bornes A4 y A5 y el DHT no puedes conectarlo a esos pines. Si lo haces seguramente tendras un problema del tipo que mencionas, si no, ver el código ayudaría a responderte.
Yo he usado ambas cosas y no me ha dado problemas.
Perdona. Si he leido las normas, pero el código es grande y repartido en varios archivos cpp.
Evidentemente no he conectado el sensor dht11 al mismo pin de I2c.
pongo el codigo del dht11. Por cierto con la sola presencia del archivo .cpp y .h ya no va el reloj. por tanto lo tengo renombrado: (retorna un String porque solo estoy probando)
#include <Arduino.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void dht_setup(){
dht.begin();
}
String getTemp(){
// Leemos la humedad
float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados
float t = dht.readTemperature();
// Comprobamos si ha habido algún error en la lectura
if (isnan(h) || isnan(t)) {
return "error";
}
// Calcular el índice de calor en grados centígrados
float hic = dht.computeHeatIndex(t, h, false);
String s = "";
s = "h "+ String(h, 2);
s += " "+ String(t, 0);
s += "c "+ String(hic, 0);
return "";
}
Sigue siendo un código parcializado.
Nada puedo decirte porque no veo el loop.
Si tu código requiere zipearse, hazlo y lo adjuntas para entender que esta pasando.
Lo que veo ademas es una función incompleta o mal terminada.
s = "h "+ String(h, 2);
s += " "+ String(t, 0);
s += "c "+ String(hic, 0);
return "";
si lo que pretendes enviar es s al final debería ser un
return s;
no lo que tienes que es un String vacío.
igualmente no se puede afirmar mucho mas porque no se ve loop ni las dependencias de los .cpp y .h que mencionas ni su interacción con el reloj.