Problema con ESP8266Wifi Relay 1 Channel PCB

Buenos dias,

Estoy teniendo un problema con el modulo ESP8266 Wifi Relay 1 Channel 5V. La conexion actual al relay es el cable de termostato de una caldera de gasoil.

La finalidad es apagar y encender la caldera controlando la conexion destinada a la caldera de termostato. A priori todo parece funcionar correctamente, el relay recibe la señal via wifi desde un servidor web para encender y apagar el relay.

Las pruebas de programación las realice conectando una bombilla o cualquier dispositivo. El problema por el que realizo esté POST es por que cuando la caldera pasa a modo : stand by (reposo por temperatura interna del agua en la caldera), este me apaga el relay que en ese momento estaba encendido debido a que la temperatura del termostato ambiente era inferior a la solicitada (el temostato ambiente es externo a esté esquema y se comunica con una servidor web encargado de realizar la petición de apagado y encendido al ESP8266Wifi) y ya no se vuelve activar el relay tras la bajada de temperatura de agua debiendo de continuar calentando hasta alcanzar la temperatura ambiente deseada.

¿Puede que tenga que realizar algo parecido al compañero de este post : [SOLUCIONADO] Problema Nodemcu+relé+downlight - Hardware - Arduino Forum?

Código ESP8266Wifi :

class Response {
  public:
  // Variables declaration
    boolean _state;
    String _response;

    boolean getState()
    {
      return _state;
    }
    void setState(bool new_state)
    {
      _state = new_state;
    }
    String getResponse()
    {
      return _response;
    }
    void setResponse(String new_response)
    {
      _response = new_response;
    }
};

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266WebServer.h>
#include <Ticker.h>
#include <ip_addr.h>

const char* ssid     = "LAN_XXXXX";
const char* password = "XXXXX";
ESP8266WebServer server(80);
IPAddress ip(192,168,0,200);
IPAddress gateway(192,168,0,1);
IPAddress subnet(255,255,255,0);

const byte ON[]  = { 0xA0, 0x01, 0x01, 0xA2 };
const byte OFF[] = { 0xA0, 0x01, 0x00, 0xA1 };
boolean status_relay = false;
Ticker wifiReconnect;
static Response * respuesta = new Response();

void setup() {
  //9600 Obligatorio para activar el rele ESP8266WIFI
  Serial.begin(9600, SERIAL_8N1);

  Serial.println();
  Serial.print("Conectando a ");
  Serial.println(ssid);

  WiFi.setAutoConnect (true);                                             // Autoconnect to last known Wifi on startup
  WiFi.setAutoReconnect (true);
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
  WiFi.mode(WIFI_STA);
  WiFi.onEvent(eventWiFi);  
  
  if ( !isAutoConnected() || hasWifiConfigChanged() ) {                       // If no aout-connection or if config has changed
    connectWiFi();                                                            // connect to Wifi.
  }

  wifiReconnect.attach(5.0,reconnectWiFi);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  Serial.write(OFF, sizeof( OFF ) );

  server.on("/", new_client);
  server.begin();
  Serial.println("Servidor arracando, esperando peticiones");
}

void loop() {
  //Leer accion recibida en el servidor
  server.handleClient();
  if(status_relay)
  {
    Serial.write(ON, sizeof( ON ) );
  }else{
    Serial.write(OFF, sizeof( OFF ) );
  }
  delay(1000);
}

void new_client() {
    Serial.println("Conexión recibida");
    if (server.hasArg("key") == false || server.hasArg("activo") == false){ //Check if body received
      server.send(400, "text/plain", "Parámetros incorrectos");
      Serial.println("Parámetros incorrectos");
      return;
    }
    
    if (server.arg("activo") == "PSi") {
      status_relay = true;
    }
    if (server.arg("activo") == "PNo") {
      status_relay = false;
    }

    if(respuesta->getState() == true)
    {
      server.send(200, "text/html", "Accion realizada correctamente");
      Serial.println("Accion realizada correctamente");
    }else{
      server.send(500, "text/html", "Accion no realizada correctamente");
      Serial.println("Accion no realizada correctamente");
    }
}

pd: He probado a activar el relay y apagarlo sin utilizar la variable : status_relay, es decir, en la función : new_client. Mismo resultado.

Gracias por la ayuda de antemano.

El problema reside cuando la caldera hasta alcanzar la temperatura deseada sufre varios parones de standby por temperatura interna del agua hace que el relay se desactive y creo que provoca un reinicio, haciendo que la siguentr comunicacion al controlador wifi ya no funcione.

Hay varias cosas que que no comprendo:

  1. no has posteado tu código y eso es básico para entender esto.
  2. tampoco un esquema electrico que muestre las conexiones existentes. ESP+Rele nada mas? no hay sensor de temperatura?

Estos dos puntos son básicos para que nosotros podamos comprender lo que pasa. Imagina si tu ahí con todo delante no puedes, vienes y planteas tu consulta suponiendo que es suficiente pero no lo es.

Te pido que leas las Normas del foro.

Este es tu módulo? link

Surbyte, es que se trata de una FE infinita en los foreros.
Si teniendo el código, el esquema de conexiones, los componentes, las mediciones de voltajes, la depuración de variables por el serial, etc no halla el problema hay que tener esa FE para esperar una solución de los que no tienen ninguno de esos datos.
Bueno, paro, que escribir mucho a mi también me cansa.

Agrego el esquema de conexión y código ESP8266Wifi para poder comprender mejor el problema.

Espero que podais ayudarme a encontrar el problema de por que se me apaga el relay cuando la caldera entra en stand by por temperatura de agua sanitaria sin alcanzar la temperatura ambiente deseada.

pd : Surbyte efectivamente ese es el RELAY

Un saludo