Sensor de temperatura dht11 acionando um rele

Estou tendo problema para ligar um sensor dht11 com um relé simples para ligar em 18 graus e desligar em 9 graus alguém pode me ajudar com um cód fonte

Seria bom se desse mais detalhes do seu projeto, tipo qual placa está usando (Esp32, Esp8266, Arduino…).

Zellmer, Desenvolvi uma placa que, entre outras coisas, faz exatamente o que você precisa. Lê a temperatura dos sensores e aciona o relê quando necessário. E funciona muito bem. Ocorre que é necessário desenvolver um pequeno algoritmo, porque as leituras não são precisas e corre o risco de o relê ficar mudando de estado muito rapidamente.
Só que precisei de dois CI’s então as informações são trocadas via RX/TX.
O calculo que usei para ter uma leitura mais precisa foi o seguinte:

void Entrada() {
int i;
int a;
int aux;
int cont = 6;
for (i = 0; i < cont; i++) {
Thermistor temp(A2);
entrada = temp.getTemp();
media[i] = entrada;
delay(500);
}
for (a = 1; a < cont; a++) {
for (i = 0; i < cont - 1; i++) {
if (media[i] > media[i + 1]) {
aux = media[i];
media[i] = media[i + 1];
media[i + 1] = aux;
}
}
}
entrada = 0;
for (i = 1; i < cont - 1; i++) {
entrada += media[i];
}
cont = cont - 2;
entrada = entrada / cont;
lcd.setCursor(0, 0);
lcd.print("Entrada: “); lcd.print(entrada); lcd.print(” C ");

O código para acionar o relê no CI master

void Ajusta_temp() {

if (Relay1_State == 0) {
if (cooler <= 6) {
digitalWrite(6, HIGH);
Serial.print(’'); Serial.print("Relay1_OF"); delay(10); digitalWrite(8, LOW); Relay1_State = 1; } if (cooler > 6) { digitalWrite(6, LOW); } if (entrada <= tempMin) { Serial.print('’); Serial.print(“Relay1_OF”);
delay(10);
Relay1_State = 1;
}
if (entrada > tempMin && entrada <= tempMax) {
Serial.print(’'); Serial.print("Relay1_OF"); delay(10); Relay1_State = 1; } } if (Relay1_State == 1) { if (entrada > tempMax && cooler > 6) { Serial.print('’); Serial.print(“Relay1_ON”);
delay(10);
Relay1_State = 0;
}
if (retorno >= tempMax * 1.1 && cooler > 6 && entrada > tempMin) {
delay(10);
Serial.print(’$’); Serial.print(“Relay1_ON”);
Relay1_State = 0;
}
}
}

acionamento no no CI Slave:

void Incoming_Relay1() {

if (Serial.available() > 0) {
delay(10);
while (Serial.available()) {
inChar = (char)Serial.read();
relay1 += String(inChar);
}
}
inChar = “”;
index = relay1.lastIndexOf(’'); relay1 = relay1.substring(index + 1, 11); if (relay1.equals("Relay1_OF")) { digitalWrite(Relay_1, Relay_OFF); delay(50); if (analogRead(Relay_1 ) == 0) { Serial.print('’); Serial.print(“OF”);
}
}
if (relay1.equals(“Relay1_ON”)) {
digitalWrite(Relay_1, Relay_ON);
delay(50);
if (analogRead(Relay_1 ) == 1) {
Serial.print(’$’); Serial.print(“ON”);

}
relay1 = "";

}
}