Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Conecte su calefacción central a Arduino

Componentes y suministros

Arduino UNO
× 1
Arduino OpenTherm shield
× 1
fuente de alimentación de 24 V
× 1

Acerca de este proyecto

¿Alguna vez te has preguntado cuándo y por qué funciona tu caldera y calienta tu casa? ¿Quieres automatizar tu sistema de calefacción con Arduino? El escudo OpenTherm está diseñado para ti. Le permitirá monitorear y controlar su caldera OpenTherm con Arduino.

Antecedentes

El año pasado quise combinar mi caldera de calefacción de gas con un regulador de chimenea. Mi caldera y termostato BAXI son bastante inteligentes, así que naturalmente quería extender la caldera para controlar la chimenea también. Estaba harto de todas esas costosas extensiones BAXI oficiales que me permitirían hacerlo.

Así que me construí una puerta de enlace OpenTherm que me permitió interceptar la comunicación entre el termostato y la caldera y colocar un algoritmo que encendería una caldera o usaría el calor de la chimenea - [más sobre el regulador].

Como había mucha gente que quería algo similar, decidí crear un módulo, el escudo Arduino, que permitiría a cualquiera controlar fácilmente la calefacción de su casa.

¿Para qué sirve el escudo?

  • Cree su propia caldera basada en Arduino con un termostato OpenTherm existente. Es muy poco probable que alguien haga eso, pero es posible.
  • Usa el escudo para construir tu propio termostato basado en Arduino para hacerse cargo de su caldera y calefacción de hogar. Perfecto para domótica. Esta aplicación solo requiere una fuente de alimentación externa de 5V.
  • Coloque un escudo OpenTherm en las líneas entre la caldera existente y el termostato y cree un monitor para ver cuándo y cómo la caldera está calentando su hogar. Incluso puede interceptar la comunicación para, por ejemplo, controlar la calefacción de forma inalámbrica.
  • OpenTherm permite tener un intermediario ( puerta de enlace ) Dispositivo que se comunica tanto con la caldera como con el termostato. Así es como usé el escudo para crear un regulador OpenTherm.

Datos y comandos disponibles

  • temperatura ambiente
  • punto de ajuste de la temperatura ambiente
  • temperatura del agua de calentamiento
  • temperatura del agua de retorno
  • temperatura del agua caliente sanitaria *
  • presión de agua caliente sanitaria *
  • caudal de agua caliente sanitaria *
  • temperatura exterior *
  • estado de la caldera (funcionando / no funcionando / error)
  • nivel de modulación
  • temperatura de escape *
  • estadísticas de cuánto tiempo estuvo funcionando la caldera

* tenga en cuenta que estos están disponibles solo si su caldera está equipada con los accesorios necesarios

Construyendo el escudo

El circuito electrónico se basa en el proyecto de puerta de enlace OpenTherm que utiliza un microcontrolador PIC. Lo adapté para Arduino y creé un buen diseño compatible con Arduino UNO.

Puede utilizar los archivos Gerber y el esquema anterior para crear el escudo por su cuenta. Estoy fabricando mis placas con PCBWay - Prototipo de PCB de la manera más fácil. Puede hacer que creen y envíen estas bonitas bellezas azules en solo una semana. ¡La máscara de soldadura azul tiene el mismo precio que la verde básica! También me encanta su servicio al cliente, nada es un problema. O puede solicitar un kit de bricolaje preenvasado.

Usando el escudo para crear un termostato

El primer ejemplo le mostrará cómo usar el escudo para crear su propio termostato personalizado. Qué necesitas:

  • Caldera OpenTherm
  • Arduino UNO, WeMos D1 o cualquier placa compatible con Arduino UNO. El único requisito para la placa es el soporte de interrupción de pines en los pines 2 y 3.
  • Fuente de alimentación de 5V. No se necesita una fuente de alimentación de 24 V en esta configuración, ya que solo es necesaria si se comunica con un termostato.

Conecte su caldera con el escudo Arduino OpenTherm como se muestra en la imagen de arriba, coloque el escudo en su Arduino y puede comenzar a programar. La biblioteca Arduino OpenTherm IO contiene el siguiente ejemplo para mostrarle cómo comunicarse con la caldera.

  void loop () {if (OPENTHERM ::isIdle ()) {message.type =OT_MSGTYPE_READ_DATA; message.id =OT_MSGID_SLAVE_CONFIG; message.valueHB =0; message.valueLB =0; Serial.print ("->"); OPENTHERM ::printToSerial (mensaje); Serial.println (); OPENTHERM ::enviar (BOILER_OUT, mensaje); // enviar mensaje a la caldera} else if (OPENTHERM ::isSent ()) {OPENTHERM ::listen (BOILER_IN, 800); // esperar a que la caldera responda} else if (OPENTHERM ::getMessage (mensaje)) {// la caldera respondió OPENTHERM ::stop (); Serial.print ("<-"); OPENTHERM ::printToSerial (mensaje); Serial.println (); Serial.println (); retraso (100); // retraso mínimo antes de la próxima comunicación} else if (OPENTHERM ::isError ()) {OPENTHERM ::stop (); Serial.println ("<- Tiempo de espera"); Serial.println (); }}  

Primero, verifique si no hay ningún comando pendiente con OPENTHERM ::isIdle . Si no, puede enviar el siguiente. En este ejemplo, solicita los indicadores de configuración de esclavos. Si el comando se envió con éxito, debe comenzar a escuchar una respuesta de la caldera con OPENTHERM ::listen llamar. Método OPENTHERM ::getMessage devolverá verdadero tan pronto como haya una respuesta pendiente del esclavo y si algo salió mal o se agotó el tiempo de espera, método OPENTHERM ::isError devuelve verdadero. La biblioteca contiene una estructura de mensajes OpenTherm que contiene datos decodificados del protocolo, por lo que no necesita preocuparse por los formatos en absoluto. Consulte el código fuente que está bien documentado. Todos los tipos de mensajes se enumeran en las constantes o puede consultar la documentación de OpenTherm.

  struct OpenthermData {tipo de byte; ID de byte; byte valueHB; byte valueLB; flotar f88 (); void f88 (valor flotante); uint16_t u16 (); void u16 (valor uint16_t); int16_t s16 (); void s16 (valor int16_t);}  

Usando el escudo para crear un monitor, puerta de enlace o regulador

El segundo ejemplo le mostrará cómo conectar un dispositivo de intermediario al bus OpenTherm para monitorear la caldera y el termostato o interceptar su comunicación. Qué necesitas:

  • Termostato OpenTherm
  • Fuente de alimentación de 24 V 500 mA

Conecte el blindaje en el bus entre la caldera y el termostato como se muestra en la imagen de arriba. Puede ver que interrumpe el bus entre estos dos dispositivos. Ahora su comunicación se interrumpe a menos que cargue un software de puerta de enlace en su Arduino que enviará comandos y respuestas del termostato a la caldera y viceversa. Nuevamente, hay un excelente ejemplo en la biblioteca Arduino OpenTherm IO.

  void loop () {if (mode ==MODE_LISTEN_MASTER) {if (OPENTHERM ::isSent () || OPENTHERM ::isIdle () || OPENTHERM ::isError ()) {OPENTHERM ::listen ( THERMOSTAT_IN); } else if (OPENTHERM ::getMessage (mensaje)) {Serial.print ("->"); OPENTHERM ::printToSerial (mensaje); Serial.println (); OPENTHERM ::enviar (BOILER_OUT, mensaje); // reenviar mensaje al modo caldera =MODE_LISTEN_SLAVE; }} else if (modo ==MODE_LISTEN_SLAVE) {if (OPENTHERM ::isSent ()) {OPENTHERM ::listen (BOILER_IN, 800); // la respuesta debe enviarse en 800ms} else if (OPENTHERM ::getMessage (message)) {Serial.print ("<-"); OPENTHERM ::printToSerial (mensaje); Serial.println (); Serial.println (); OPENTHERM ::enviar (THERMOSTAT_OUT, mensaje); // enviar mensaje de vuelta al modo termostato =MODE_LISTEN_MASTER; } else if (OPENTHERM ::isError ()) {mode =MODE_LISTEN_MASTER; Serial.println ("<- Tiempo de espera"); Serial.println (); }}}  

La puerta de enlace simplemente comienza a escuchar los comandos del termostato. Si se detecta una solicitud, la analizará y la enviará a la caldera. Gateway ahora comenzará a escuchar la respuesta de la caldera. Si se recibe una respuesta en 800ms, la puerta de enlace reenviará la respuesta al termostato. Tanto el termostato como la caldera nunca sabrán que hay algo extra entre ellos. Como puede ver, hay mucho espacio para escribir su propio código que puede capturar los mensajes y leer información útil de ellos (estado, temperaturas, presión, estadísticas, ...). Incluso puede anular o descartar solicitudes o respuestas que no le gusten.

Como puede ver, es muy fácil comunicarse con su sistema de calefacción inteligente y hacerlo aún más inteligente. En el próximo artículo le mostraré un uso más práctico de este hardware en mi regulador OpenTherm.

Código

Biblioteca de E / S de Opentherm para Arduino
https://github.com/jpraus/arduino-opentherm

Esquemas


Proceso de manufactura

  1. Supervisión de mi caldera de calefacción central
  2. Creación de una red de sensores inalámbricos en su hogar
  3. ¡Conecte un sensor a su Raspberry Pi para advertirle cuando haya gases nocivos!
  4. Cree su robot de transmisión de video controlado por Internet con Arduino y Raspberry Pi
  5. Cómo conectar GrabCAD Print con su impresora 3D Stratasys
  6. Consejos para mejorar la eficiencia del aceite de calefacción para su empresa
  7. Habilita el control de Alexa en tu ventilador de techo
  8. Arduino Spybot
  9. FlickMote
  10. Agregue iluminación animada (marquesina) a sus proyectos
  11. ¡Conoce la temperatura de tu hogar desde cualquier lugar con Arduino Cloud!