Cómo hacer una rejilla motorizada con control de temperatura

Facebook
Twitter
WhatsApp

En este post vamos a explicar cómo hacer una rejilla motorizada con control de temperatura de forma económica (20€), así podrás independizar zonas en sistemas centralizados de climatización por aire. Para el control de la temperatura utilizaremos el popular Arduino Uno y la parte mecánica la haremos con una impresora 3D (si no tienes una puedes encargar la impresión en cualquier sitio que tengan este servicio). Como era de esperar hemos bautizado a este engendro como NergiZone.

Nergizone, rejilla motorizada

El sistema sería similar al los controles comerciales de los que hemos hablado aquí, con la ventaja de que el NergiZone es mucho más económico, configurable y además 100% autónomo ya que se alimenta con baterías de litio y no necesita cableado externo.

¿Cómo funciona Nergizone?

El sistema de compone de dos partes, la rejilla motorizada y la central de control, ambas interconectadas pero sin necesidad de alimentación exterior ni cableado externo.

La sonda de temperatura que veis en las imágenes tiene varias opciones de colocación:

  • Orificio en el frontal de la rejilla: es el lugar más sencillo pero la lectura de temperatura se verá algo afectada por el caudal de aire caliente/frío que sale de la rejilla, aunque con el sistema de control proporcional que lleva incorporado no debería de ser muy problemático.
  • Conducto de retorno: si el sistema tiene un conducto/rejilla de retorno y podemos meter ahí la sonda sería ideal, ya que tendríamos una medida real de la temperatura ambiente.
  • Ambiente: otra opción es buscarse la vida posicionando la sonda directamente en el ambiente en una zona que no se vea afectada por el chorro de aire de la rejilla.

Nergizone 2

Una vez posicionada la sonda y sustituida la rejilla de impulsión de tu sistema de climatización por la NergiZone tendrás el siguiente control en base a la temperatura leída por la sonda:

  • Tª ambiente > consigna+0,5ºC: Compuerta cerrada completamente
  • Consigna - 0,5ºC < Tª ambiente < consigna+0,5ºC: Compuerta abierta parcialmente (ver línea 33 del código) en función de la diferencia entre la temperatura ambiente y la de consigna, de esta forma el sistema buscará un punto de equilibrio donde la potencia térmica que aporte el caudal de aire se iguale con las pérdidas de la zona.
  • Tª ambiente < consigna+0,5ºC: Compuerta abierta completamente

Este es el funcionamiento para calefacción, para refrigeración habría que darle la vuelta a los "mayor que" y "menor que" del código. También es posible implementar un interruptor que haga este cambio, o hacerlo en base a la temperatura del aire impulsado (con otra sonda), pero esto lo dejo para los Nergizos de la primera fila.

Ejemplo (calefacción): Ponemos una consigna de 22ºC (en el código) y el sistema detecta 19ºC en el ambiente, por lo tanto abre completamente la compuerta y la temperatura ambiente empieza a subir, cuando alcanzamos los 21,5ºC la compuerta empieza a cerrar parcialmente y al llegar al entorno de los 22ºC habría un punto donde se equilibraría el sistema con cierto porcentaje de compuerta abierta. Si Fulgencio abre una ventana y entra aire frío, el sistema vuelve a abrir completamente la compuerta hasta equilibrarse de nuevo con la consigna configurada.

 

Vídeo NergiZone

Aquí os dejo un pequeño vídeo de la rejilla en funcionamiento para que os hagáis una idea de como queda el montaje.

Si nos sigues en YouTube o le das al "dedito arriba" nos ayudas bastante 🙂

Montaje de la Nergizone

El primer paso es imprimir rejilla y compuerta en una impresora 3D, si no tienes una puedes usar un servicio de impresión 3D online o buscar por ejemplo en Wallapop/Milanuncios que siempre encontrarás gente de tu ciudad que te imprimirá lo que necesites por un módico precio, aunque si eres un Nergizo "de verdad" deberías montarte una impresora 3D como hemos hecho en este post.

No es imprescindible imprimir la caja donde va el Arduino y las baterías, puede hacerse perfectamente con una caja de empalmes o similar.

Aquí os dejo los archivos .stl para imprimir la rejilla y la caja:

Nergizone en FreeCad

Ahora solo queda unir los componentes como se muestra en este esquema:

Esquema Nergizone

La alimentación eléctrica la hemos hecho con dos baterías 18650 en serie, encontrarás el soporte para las baterías en la lista de ingredientes del final. Si no quieres usar baterías y prefieres enchufar el sistema a la red eléctrica puedes usar una fuente de alimentación, pero no lo hagas con una pila de 9V ya que no dan corriente suficiente para mover el servo correctamente.

 

Código NergiZone

Este sería el código para implementar en el Arduino Uno:

// Nergizone, la rejilla motorizada de Nergiza.com
 
#include <Servo.h>
#include <OneWire.h>
 
int servoPin = 6;
const int chipSelect = 10;
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
OneWire ds(DS18S20_Pin); // on digital pin 2
 
Servo servo;  
 
int servoAngle = 0;   // servo position in degrees
float consigna=22;    // consigna de temperatura
float apertura;
 
 
 
void setup()
{
  Serial.begin(9600);  
  servo.attach(servoPin);
}
 
 
void loop()
 
 
{
 
float temperature = getTemp();
 
apertura = (90*(temperature-(consigna+0.5)))+180; // calcula el grado de apertura
 
 
if (temperature>(consigna+0.5)) {
servo.write(180);      // cierra
  delay(1000); // tiempo entre lecturas
 
}
 
   if (temperature<(consigna-0.5)) {
    servo.write(90);   // abre
    delay(1000); // tiempo entre lecturas
     }
        
if ((temperature>(consigna-0.5)) && (temperature<(consigna+0.5)))
 
          {
           servo.write(apertura);   // abre en punto intermedio
           delay(1000); // tiempo entre lecturas
            }
 
}
 
 
 
float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius
 
byte data[12];
byte addr[8];
 
if ( !ds.search(addr)) {
//no more sensors on chain, reset search
   ds.reset_search();
return -1000;
}
 
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC no valido!\n");
return -1000;
}
 
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Dispositivo no reconocido");
return -1000;
}
 
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
 
byte present = ds.reset();
ds.select(addr);  
ds.write(0xBE); // Read Scratchpad
 
 
for (int i = 0; i < 9; i++) { // we need 9 bytes
  data[i] = ds.read();
}
 
ds.reset_search();
 
byte MSB = data[1];
byte LSB = data[0];
float CONT_REMAIN = data[6];
float CONT_PER_C = data[7];
 
float tempRead = ((MSB << 8) | LSB); //using two's compliment
 
float TemperatureSum = tempRead/16;
 
return TemperatureSum;
 
}

 

¿Cuánto cuesta hacer la Nergizone?

Estos son los pesos de las piezas impresas en 3D y el coste total del plástico:

  • Rejilla - 89g
  • Compuerta - 28g
  • Caja - 29g
  • Tapa caja - 69g

Total: 215g / 4,3€ (0,02€/g)

El consumo eléctrico para imprimir todo esto ha sido de 450Wh, lo que serían unos 0,07€ con una tarifa 2.0A normal.

NergiZone

Los principales materiales necesarios para el montaje son:

Si necesitas que te ayude con tu caso particular, puedes usar el servicio de consulta PRO para enviarme tu duda junto con toda la información necesaria (planos, presupuestos recibidos, etc.) y te responderé en un plazo de 2 días.

31 comentarios en «Cómo hacer una rejilla motorizada con control de temperatura»

  1. El código seria muchísimo mas sencillo y fácil de entender usando la librería DallasTemperature, y para ir a por nota está la librería PID que citando la Wikipedia:

    "Un PID (Proporcional Integral Derivativo) es un mecanismo de control por realimentación que calcula la desviación o error entre un valor medido y el valor que se quiere obtener, para aplicar una acción correctora que ajuste el proceso."

    Responder
    • Tienes razón, es lo que tiene reciclar código de otros proyectos XDD.

      Lo del PID lo consideré pero me pareció liar demasiado el tema ya que luego hay que sintonizar parámetros y no es sencillo, además el margen de temperatura donde regula es muy pequeño (1K) y no creo que haya mucha diferencia entre un control lineal y un control PID.

      Gracias por las recomendaciones!!

      Responder
  2. Buen invento.
    Lo que me ha impresionado ha sido el precio del arduino, no sabia que eran tan baratos, yo cuando le compre me costo 20€.

    De todas formas me parece un poco complejo.
    Impresora 3d, arduino, cables sensor, escribir codigo, recargar las baterias...

    Yo soy mas analogico. seguro que hay un sistema termostato-piston. que se use para eso

    Responder
    • No es que sea mas analogico, suelo usar el arduino para cosas mas complejas, pero mi lema es, hazlo lo mas sencillo posible, hay menos posibilidades de que falle.

      Responder
      • Es curioso, tu comentas que sería mejor simplificarlo y hacerlo más "analógico" e Iván propone que el control se haga con un regulador PID integrado en el Arduino XDDD

        Responder
    • Sí, claro que se puede hacer de otra forma, la manera "tradicional" sería:
      -Rejilla de aluminio
      -Compuerta de regulación
      -Servomotor (proporcional si quieres que el funcionamiento sea el mismo que el de este post)
      -Termostato con salida proporcional 0-10v
      -Fuente de alimentación 24Vdc
      El tema es que todo esto puede llegar a los 200€ fácilmente 🙁

      Responder
      • Buen invento, me ha recordado al mío de hace tiempo, pero con la difererencia que fue instalar un ventilador para ventilar un local por una rejilla regulado por temperatura y humedad. Por si os interesa lo publiqué como colaborador en CómoHacer:
        http://comohacer.eu/como-eliminar-la-humedad-de-tu-casa/

        Un saludo!

        Responder
        • Buen DIY, yo estoy con un proyecto similar pero que accionará un deshumidificador, en vez de display le he puesto un sistema para que vuelque la información en thingspeak, incluyendo la temperatura de rocío que me parece muy interesante.

          Si en el futuro te apetece hacer algún DIY de este tipo en nergiza escríbeme 😉

          Responder
          • Sí, tiene el doble de precisión, pero me valía con el +-5% que tiene en humedad el DHT11 en mi caso (con diferencias tan grandes). En verano se apaga de vez en cuando, pero en invierno casi nunca.
            Gracias por el ofrecimiento :), un saludo!

            Responder
  3. Buenas,

    Muy buen invento y me vendria de perlas para poner en la habitacion del "enano" y asi regular la temperatura con el A/A de conductos que tengo puesto en casa.

    Pero por desgracia para mi ni tengo los conocimientos, ni las habilidades para llevarlo a cabo.

    Y solo por curiosidad una duda .....

    Se pueden modificar las dimensiones de la rejilla, porque yo creo que la rejilla de mis conductos es mas ancha y menos alta ......

    Gracias por el aporte y el trabajo.

    Saludos.

    Responder
    • Hola Teo.

      Este brico puede resultar complicado hacerlo desde cero como lo he hecho yo, pero con el programa arduino aquí, los archivos para imprimir las piezas y el esquema de conexionado no es tan complicado.

      La rejilla se puede hacer de las dimensiones que se quiera, yo me he limitado a este tamaño porque el area que imprime mi impresora es de 20x20cm máximo.

      Un saludo

      Responder
  4. Hola Carlos seguramente me disponga a hacer el proyecto me parece una magnifica idea, actualmente estoy estudiando instalaciones frigorificas y climatización y me encanta este mundillo solo queria preguntarte si los codigos que has dejadoo para el arduino son para calefaccion o refrigeracion, gracias de antemano

    Responder
  5. Buen brico, pero seria más efectivo si los alabes fueran los que giraran y no una tapa tan grande. Además el coste de las pieza impresas no lo has sumado al total.

    Responder
    • En lo primero tienes razón, podría plantearse así y quizás sería más funcional. En lo segundo no tienes razón, sí que están dentro de los 20€

      Responder
      • Tienes toda la razón no había leído desde el principio.
        También puedes usar un ATMEGA328 Pro Mini 5V/16MHz que vale la mitad en aliexpress y ocupa menos espacio.

        Responder
  6. buen dia, me podrias sacar de duda? el sensor de temperatura que utilizas no lo consegui en donde vivo, ni en internet, podria sustituirlo por un lm35? si es asi, que habria que modificar en el codigo?

    Responder
  7. Hola. Y como se podría hacer una rejilla con temporizador que simplemente se abra una hora al día, por ejemplo, ya que el aire normalmente se puede programar a la hora que tú quieras. En mi caso hablo de un extractor con temporizador.
    Gracias

    Responder
    • Fácil, modificando el código para que haga eso que tu quieres. De todas formas no entiendo porqué lo quieres hacer así si el extractor ya tiene temporizador.

      Responder
      • Bueno, hay un extractor y dos entradas de aire, una de ella más ancha que otra. quiero abrir las dos durante 1 hora, y luego dejar tan solo abierta la estrecha durante otra hora.

        Responder
      • En realidad sólo necesito una rejilla o puertecita muy pequeña, 15 por 15 cm con un temporizador para abrirse y cerrarse y buscando in internet he visto este post, que es muy interesante pero soy novato en estas cosas. Un saludo

        Responder
        • Puedes hacerlo de la forma tradicional, comprar una compuerta, motorizarla y poner un programador, aunque será más caro que hacer algo como lo del post, el problema es que para modificar lo del post a tus medidas y programación necesitarás echarle horas 🙁

          Un saludo

          Responder
  8. que tal amigo, buen aporte, una duda, si quiero controlar mas rejillas, como tendria que modificar el codigo??
    cuantas podria soportar??

    Responder
    • No lo se, no hacemos customizaciones del código personalizadas, tendrás que investigar tu mismo o contratar a alguien para que te lo haga, supongo que habrá que declarar variables para todas las rejillas y sondas y luego duplicar la parte del código que controla la rejilla.

      Responder
  9. Genial, me voy a poner...ya controlo la calefacción con el móvil desde cualquier parte del mundo, volcando los datos a thingspeak, usando un esp3866, un sensor de tª y un relé.
    El tema es que me voy a hacer una reforma integral en el piso y quiero meter un A/A por conductos, así me gestionaré las rejillas con arduino wifi y android. Pero me surge una duda. Pon que tengo 5 estancias y 5 rejillas motorizadas, pon que el sensor de tª principal del equipo viene integrado en el control de pared, supongo que irá ahí. Pon que selecciono la tª de 24 grados y que tengo en estado ON 4 rejillas, y una quinta que no estoy usando en estafo OFF. Pon que las 4 estancias se ponen a 24 grados, teniendo en cuenta la estancia en la que está el sensor de temperatura del equipo, el que está en el panel de pared. Pon que me voy a meter en la estancia número 5 y está a 16 grados y la quiero calentar. Ahora viene el dilema, si la estancia principal en la que está el sensor de temperatura principal se encuentra a 24 grados, el equipo dejará de tirar aire, pero claro, la estancia número 5 la tengo a 16 grados....¿cómo se puede hacer para calentar esta habitación número 5?

    Responder
    • Pues o usas algún tipo de comunicación con la máquina: modbus, conexiones cnt, etc... o pones el termostato más bajo, no hay otra 🙂

      Responder
  10. Hola!
    Me he puesto a buscar sobre este tipo de rejilla con Arduino porque tenía en mente hacer algo parecido. Ha sido una alegría encontrarme un tutorial tan sencillo. Quiero intentar poner además control por bluetooth o wifi. El problema es el consumo. Quiero evitar usar baterías para olvidarme de cargar, desmontar,etc.
    Tengo la preinstalacion de los conductos hecha y me pondré la máquina por conductos en un par de semanas. Puedo tirar un cable normal por los conductos desde el falso techo del baño (donde irá la unidad interior) a cada rejilla? O es peligroso? Me refiero por tema de incendios, seguridad, etc. Los conductos son de fibra de vidrio climaver plus.
    Ya puestos, no se si sabes si sería mejor llegar la corriente ya transformada (desde el falso techo del baño)? Es decir llevar 220v y transformar al lado la rejilla, o transformar en el falso techo y llevar 9v por ejemplo.
    Gracias de antemano.
    Muchas gracias de antemano

    Responder
    • No creo que haya problema en llevarlo por dentro, aunque no es lo habitual.
      Los 9V si es mucha distancia seguramente caerán mucho, va a ser mejor que lleves 220V

      Responder
  11. Muy interesante proyecto, aunque le veo una pega importante al diseño "mecánico" de la compuerta, ya que al estar accionada desde un extremo obliga al servo a mantener un par de fuerza constante (es decir, no sólo durante el movimiento, sino también cuando está parado) para contrarrestar la acción aerodinámica de la corriente de aire que tendería a cerrar la compuesta. Esto se traduce en un consumo de corriente del servo (incluso parado) que no es muy conveniente, especialmente para un proyecto accionado por baterías.

    Una solución simple es hacer bascular la compuerta por su centro, de manera que las fuerzas aerodinámicas a uno y otro lado del eje se compensen (y más idealmente, como se ha sugerido en un comentario anterior, subdividir la compuerta en varias lamas articuladas o engranadas entre sí para ahorrar espesor, aunque esto sí que complica bastante el diseño)

    Responder

Deja un comentario

Los datos de carácter personal que proporciones rellenando el presente formulario serán tratados por Carlos Gutiérrez (Nergiza) como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales solicitados es gestionar los comentarios que realizas en este blog y/o suscribirte a los mismos. Legitimación: Consentimiento del interesado. Te informo que los datos que me facilitas estarán ubicados en los servidores de Cubenode (proveedor de hosting de Nergiza) dentro de la UE. Política de privacidad de Cubenode. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en [email protected] así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar información adicional sobre Protección de Datos en: https://nergiza.com, así como consultar mi política de privacidad.