Hola a todos, vengo con la continuación (o mas bien culminación) del proyecto que inicié hace unos 6 años (ahí es nada, que malo es no tener tiempo ), dejo el link por si sirve como antecedentes Proyecto control de chimenea (ampliable)
Ha pasado mucho desde que comencé a domotizar la vivienda, y han cambiado mucho las cosas desde entonces, aquellos "nodos" que pretendía hacer se quedaron en el cajón de los recuerdos y fueron sustituidos por sensores comerciales para evitar el engorro del cableado físico, al final encontré la combinación "casi" perfecta para domotización de vivienda: mini-pc + Home Assistant + MQTT + Node-RED + dispositivos zigbee / WiFi / ESP32.
He dicho lo de "casi" porque sigo opinando que como los dispositivos cableados no hay nada, de vez en cuando me toca volver a "emparejar" algún dispositivo zigbee, pero son pequeños problemas con los que se puede convivir mientras no sean elementos críticos.
Toca ahora meter mano al meollo del asunto, que es la chimenea y calefacción; ha estado funcionando estos años con dos termostatos digitales sin problemas, pero el sistema tiene sus carencias, como son el no estar integrado en el sistema domótico, el control de zonas y la estratificación térmica.
El objetivo base sigue siendo similar al inicial, controlar el distribuidor de aire de la chimenea (turbina) y controlar cada una de las salidas de aire mediante una válvula o compuerta que permita regular el flujo de aire que entra a cada habitación; modificando en parte la instalación actual, ya que en su día cometí algunos errores que solo ves después de...
El primero de ellos (por si le sirve a alguno la experiencia) fue colocar una turbina de poca potencia, pese a ser la recomendada, ya que el aire caliente al llegar a las diferentes habitaciones y salir con poca fuerza se queda "pegado" en el techo y cuesta muchísimo alcanzar la temperatura de confort; el segundo error fue usar las mismas salidas del sistema de aire climatización para conectar el conducto procedente de la chimenea, (digamos que cada salida / rejilla es una "Y" en la que desembocan los 2 sistemas), y el problema es que parte del aire caliente que llega de la chimenea se "escapa" por el otro conducto antes de salir por la rejilla.
(Adjunto una imagen de lo que sería un sistema de este tipo por ilustrar el tema)
Estos detalles los he detectado al comparar ambos sistemas; con la calefacción por bomba de calor el aire sale a unos 40-50º en las bocas de salida con una fuerza considerable y el "chorro" alcanza sin problemas la zona media de altura provocando una recirculación del aire que reduce la estratificación y calentando rápidamente las estancias; en cambio con el sistema de la chimenea, el aire es impulsado a bastante mas temperatura, 60-90º, pero al no salir con fuerza va formando capas de diferente temperatura llegando a tener hasta 9º de diferencia entre suelo y techo (2,5m), una barbaridad !!
Llevo como un mes dándole vueltas al tema, haciendo pruebas, estudiando diferentes opciones, buscando información de lo que me puede hacer falta y como instalarlo / programarlo y he llegado a algunas conclusiones, pero pese a tener algunas cosas claras me quedan dudas de otras.
La primera modificación va a ser el equipo impulsor, pasando de 400m3/hora a uno de 990m3/h, esto implica tener que poder regular la potencia del mismo por si el nuevo fuese demasiado, hay que tener en cuenta que a mas flujo de aire, este se calentara a menor temperatura.
La segunda será eliminar las salidas combinadas y colocar salidas individuales para la chimenea con difusores circulares de conos en el centro de las habitaciones, esto unido a mayor flujo de aire creo que solucionará en gran parte la estratificación.
En caso de que lo anterior no solucione el problema de estratificación, tengo pensado un plan "B" mas complejo que si toca explicaré mas adelante.
Decía antes que el objetivo sigue siendo el inicial, y no es cierto del todo; ahora lleva una modificación importante, que es regular la cantidad de aire que entra en la cámara de combustión de la chimenea, sería algo similar a regular la salida del tiro, pero a la inversa.
El sistema va a estar controlado por ESP32, la cantidad es una de las dudas, por el momento ya veo la necesidad de al menos dos de ellos por las pruebas que estoy haciendo, ya que necesito:
- Temperaturas de la chimenea (recuperador de calor, campana de chimenea y tubo de salida de humos).
- Temperaturas del equipo impulsor (temperatura de entrada de aire y del propio equipo).
- Temperatura del aire en las distintas bocas de salida repartidas por la casa.
- Actuar sobre la entrada de aire exterior a la cámara de combustión de la chimenea.
- Actuar sobre unos extractores ubicados en la campana de la chimenea para sacar el aire caliente cuando sea necesario.
- Actuar sobre el propio equipo impulsor para encenderlo o apagarlo en función de la temperatura del aire que llega de la chimenea y la temperatura de las estancias.
- Regular la velocidad del motor del equipo impulsor para que el aire caliente no se "enfríe" demasiado al llegar a las estancias y permita adaptarse a la temperatura a la que entra el aire al equipo.
- Actuar sobre una válvula maestra que permita mezclar aire mas frío cuando el que llega de la chimenea esté muy caliente (>120º) y, haga de by-pass en caso de corte de electricidad para que el equipo no se sobrecalliente.
- Actuar sobre cada una de las salidas de aire mediante válvulas regulables para poder priorizar zonas, regular temperaturas de forma independiente en cada estancia o cerrar alguna de ellas que no sea necesaria.
El proyecto (esta vez si !!), está ya en fase de pruebas, por el momento he modificado la instalación de la propia chimenea llevando la entrada de aire exterior a una válvula controlada por un servo y programados varios modos de funcionamiento de forma similar a los dispositivos comerciales que existen de este tipo, salvo que añadiendo alguno mas en función de mis necesidades, estos son: modo encendido, modo automático, modo noche, modo manual y modo apagar; todo ello controlado en la mayor parte por PID. Me falta pulir algunas cosas para, por ejemplo, poder mantener en el modo noche la calefacción "funcionando" el mayor tiempo posible, pero de momento pinta bien el tema.
Por otro lado me llegó hace unos de días la turbina nueva de 990m3/h, y me topé con un pequeño problema; la que tengo actualmente funciona con un motor a 220v que se puede regular fácilmente con un dimmer; la nueva lleva motor tipo brushless con lo que no es posible usar el dimmer previsto.
Afortunadamente el mismo equipo lleva integrado un sistema de 0-10v bastante típico en la industria y me he decantado por el, aunque me he llevado alguna sorpresa al tocar por primera vez el tema de PWM, y aquí empieza mi primera duda.
He visto muchos tutoriales sobre el pwm y muchos de ellos lo explican con la típica regulación del brillo de un led; no he montado el circuito del led pero si he usado el ejemplo del led para poder medir la salida pwm y ver si me servía para regular la velocidad a través de una placa "pwm to 0-10v"
La primera sorpresa ha sido al meter las puntas del tester en los pines pwm, el circuito es el que se muestra en la imagen inferior, vamos, mas simple que el mecanismo de un chicle...
... pues bien, al testear los valores de la salida, con la punta negativa del tester en GND y la positiva en el pin de salida pwm obtengo el valor en negativo cuando, entiendo, debería ser al revés (en mi caso es un ESP32-S con pin 33 como salida pwm), pero eso no es todo, también tengo el valor pwm invertido, es decir, cuando hago ledcWrite(canal, 255) debería obtener 3,3v y sin embargo es al revés, obtengo los 3.3 al escribir un valor de 0 en el pwm; no se si estoy haciendo algo mal o me he perdido en algún punto.
El código no tiene ningún misterio, lo pongo para que nadie tenga que andar buscando el ejemplo:
// Pin pwm
const int ledPin = 33;
//Propiedades PWM
const int frecuencia = 2000;
const int canal = 0;
const int resolucion = 8;
void setup()
{
Serial.begin(115200);
// Configurar pwm
ledcSetup(canal, frecuencia, resolucion);
// Asociar pin
ledcAttachPin(ledPin , canal);
}
void loop()
{
// Incrementar salida
Serial.println("Incrementar");
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++)
{
ledcWrite(canal, dutyCycle);
Serial.println(dutyCycle);
delay(200);
}
// Decrementar salida
Serial.println("Reducir");
for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--)
{
ledcWrite(canal, dutyCycle);
Serial.println(dutyCycle);
delay(200);
}
}
Vaya tochopost!, lo dejo aquí por ahora a ver si podéis iluminarme un poco con el tema pwm porque fijo que algo se me escapa.