Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Connectez votre chauffage central à Arduino

Composants et fournitures

Arduino UNO
× 1
Bouclier Arduino OpenTherm
× 1
Alimentation 24V
× 1

À propos de ce projet

Vous êtes-vous déjà demandé quand et pourquoi votre chaudière fonctionne et chauffe votre maison ? Vous souhaitez automatiser votre système de chauffage avec Arduino ? Le bouclier OpenTherm est conçu pour vous. Il vous permettra de surveiller et de contrôler votre chaudière OpenTherm avec Arduino.

Contexte

L'année dernière, j'ai voulu combiner ma chaudière à gaz avec un régulateur de cheminée. Ma chaudière et mon thermostat BAXI sont assez intelligents, j'ai donc voulu naturellement étendre la chaudière pour contrôler également la cheminée. J'en avais marre de toutes ces extensions officielles BAXI coûteuses qui me permettraient de le faire.

Je me suis donc construit une passerelle OpenTherm qui m'a permis d'intercepter la communication entre le thermostat et la chaudière et de placer un algorithme qui allumerait une chaudière ou utiliserait la chaleur de la cheminée - [en savoir plus sur le régulateur].

Comme il y avait beaucoup de gens qui voulaient quelque chose de similaire, j'ai décidé de créer un module - Arduino shield - qui permettrait à n'importe qui de contrôler très facilement le chauffage de sa maison.

A quoi sert le bouclier ?

  • Créez votre propre chaudière basée sur Arduino avec un thermostat OpenTherm existant. Il est très peu probable que quelqu'un fasse cela, mais c'est possible.
  • Utilisez le shield pour construire votre propre thermostat basé sur Arduino pour prendre en charge entièrement votre chaudière et votre chauffage domestique. Idéal pour la domotique. Cette application ne nécessite qu'une alimentation externe de 5 V.
  • Placez un bouclier OpenTherm dans les lignes entre la chaudière et le thermostat existants et créez un moniteur pour surveiller quand et comment la chaudière chauffe votre maison. Vous pouvez même intercepter la communication pour par exemple contrôler sans fil le chauffage.
  • OpenTherm permet d'avoir un homme du milieu (passerelle ) dispositif qui communique à la fois avec la chaudière et le thermostat. C'est ainsi que j'ai utilisé le shield pour créer un régulateur OpenTherm.

Données et commandes disponibles

  • température ambiante
  • point de consigne de la température ambiante
  • température de l'eau de chauffage
  • température de l'eau de retour
  • température eau chaude sanitaire*
  • pression d'eau chaude sanitaire*
  • débit d'eau chaude sanitaire*
  • température extérieure*
  • état de la chaudière (en marche/pas en marche/erreur)
  • niveau de modulation
  • température d'échappement*
  • statistiques de la durée de fonctionnement de la chaudière

* notez que ceux-ci ne sont disponibles que si votre chaudière est équipée des accessoires nécessaires

Construire le bouclier

Le circuit électronique est basé sur le projet de passerelle OpenTherm qui utilise un microcontrôleur PIC. Je l'ai adapté pour l'Arduino et créé une belle mise en page compatible Arduino UNO.

Vous pouvez utiliser les fichiers schématiques et Gerber ci-dessus pour créer le bouclier vous-même. Je fabrique mes cartes par PCBWay - Prototype de PCB en toute simplicité. Vous pouvez leur demander de créer et d'expédier ces jolies beautés bleues en une semaine seulement. Le masque de soudure bleu est au même prix que le vert de base ! J'aime aussi leur service client, rien n'est un problème. Ou vous pouvez commander un kit de bricolage préemballé.

Utiliser le bouclier pour créer un thermostat

Le premier exemple vous montrera comment utiliser le shield pour créer votre propre thermostat personnalisé. Ce dont vous avez besoin :

  • Chaudière OpenTherm
  • Arduino UNO, WeMos D1 ou toute carte compatible Arduino UNO. La seule exigence pour la carte est la prise en charge de l'interruption des broches sur les broches 2 et 3.
  • Alimentation 5V. Pas besoin d'alimentation 24 V dans cette configuration, car elle n'est nécessaire que si vous communiquez avec un thermostat.

Connectez votre chaudière avec le shield Arduino OpenTherm comme indiqué sur l'image ci-dessus, fixez le shield sur votre Arduino et vous pouvez commencer la programmation. La bibliothèque Arduino OpenTherm IO contient l'exemple suivant pour vous montrer comment communiquer avec la chaudière.

void loop() { if (OPENTHERM::isIdle()) { message.type =OT_MSGTYPE_READ_DATA; message.id =OT_MSGID_SLAVE_CONFIG; message.valeurHB =0 ; message.valeurLB =0 ; Serial.print("-> "); OPENTHERM::printToSerial(message); Serial.println(); OPENTHERM::send(BOILER_OUT, message); // envoyer un message à la chaudière } else if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // attend que la chaudière réponde } else if (OPENTHERM::getMessage(message)) { // la chaudière a répondu OPENTHERM::stop(); Serial.print("<- "); OPENTHERM::printToSerial(message); Serial.println(); Serial.println(); retard (100); // délai minimal avant la prochaine communication } else if (OPENTHERM::isError()) { OPENTHERM::stop(); Serial.println("<- Timeout"); Serial.println(); }} 

Tout d'abord, vérifiez s'il n'y a pas de commande en attente avec OPENTHERM::isIdle . Sinon, vous pouvez envoyer le suivant. Dans cet exemple, vous demandez les indicateurs de configuration esclave. Si la commande a été envoyée avec succès, vous devez commencer à écouter une réponse de la chaudière avec OPENTHERM::listen appeler. Méthode OPENTHERM::getMessage retournera vrai dès qu'il y a une réponse en attente de l'esclave et si quelque chose ne va pas ou si un délai d'attente s'est produit, méthode OPENTHERM::isError retourner vrai. La bibliothèque contient une structure de message OpenTherm qui contient des données décodées du protocole, vous n'avez donc pas du tout besoin de vous soucier des formats. Consultez le code source, il est bien documenté. Tous les types de messages sont répertoriés dans les constantes ou vous pouvez consulter la documentation OpenTherm.

struct OpenthermData { type d'octet ; identifiant d'octet ; valeur d'octetHB ; valeur d'octetLB ; flotteur f88(); void f88 (valeur flottante); uint16_t u16(); void u16 (valeur uint16_t); int16_t s16(); void s16(int16_t value);} 

Utiliser le bouclier pour créer un moniteur, une passerelle ou un régulateur

Le deuxième exemple vous montrera comment connecter un dispositif d'interception au bus OpenTherm pour surveiller la chaudière et le thermostat ou intercepter leur communication. Ce dont vous avez besoin :

  • Thermostat OpenTherm
  • Alimentation 24 V 500 mA

Connectez le blindage dans le bus entre la chaudière et le thermostat comme indiqué sur l'image ci-dessus. Vous pouvez voir qu'il interrompt le bus entre ces deux appareils. Maintenant, votre communication est interrompue à moins que vous ne téléchargiez un logiciel de passerelle dans votre Arduino qui transmettra les commandes et les réponses du thermostat à la chaudière et vice versa. Encore une fois, il y a un excellent exemple dans la bibliothèque 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(message)) { Serial.print("-> "); OPENTHERM::printToSerial(message); Serial.println(); OPENTHERM::send(BOILER_OUT, message); // transmettre le message au mode chaudière =MODE_LISTEN_SLAVE; } } else if (mode ==MODE_LISTEN_SLAVE) { if (OPENTHERM::isSent()) { OPENTHERM::listen(BOILER_IN, 800); // la réponse doit être renvoyée dans 800 ms } else if (OPENTHERM::getMessage(message)) { Serial.print("<- "); OPENTHERM::printToSerial(message); Serial.println(); Serial.println(); OPENTHERM::send(THERMOSTAT_OUT, message); // renvoie le message en mode thermostat =MODE_LISTEN_MASTER; } else if (OPENTHERM::isError()) { mode =MODE_LISTEN_MASTER; Serial.println("<- Timeout"); Serial.println(); } }} 

La passerelle commence simplement à écouter les commandes du thermostat. Si une demande est détectée, elle l'analysera et la transmettra à la chaudière. Gateway va maintenant commencer à écouter la réponse de la chaudière à la place. S'il y a une réponse reçue en 800 ms, la passerelle transmettra la réponse au thermostat. Le thermostat et la chaudière ne sauront jamais qu'il y a quelque chose de plus entre eux. Comme vous pouvez le voir, il y a beaucoup de place pour écrire votre propre code qui peut capturer les messages et lire des informations utiles à partir d'eux (état, températures, pression, statistiques,...). Vous pouvez même ignorer ou rejeter les demandes ou les réponses que vous n'aimez pas.

Comme vous pouvez le voir, il est très facile de communiquer avec votre système de chauffage intelligent et de le rendre encore plus intelligent. Dans le prochain article, je vous montrerai une utilisation plus pratique de ce matériel dans mon régulateur OpenTherm.

Code

Bibliothèque Opentherm IO pour Arduino
https://github.com/jpraus/arduino-opentherm

Schémas


Processus de fabrication

  1. Surveillance de ma chaudière de chauffage central
  2. Construire un réseau de capteurs sans fil dans votre maison
  3. Connectez un capteur à votre Raspberry Pi pour vous avertir de la présence de gaz nocifs !
  4. Créez votre robot de streaming vidéo contrôlé par Internet avec Arduino et Raspberry Pi
  5. Comment connecter GrabCAD Print avec votre imprimante 3D Stratasys
  6. Conseils pour améliorer l'efficacité du mazout de chauffage pour votre entreprise
  7. Activez le contrôle Alexa sur votre ventilateur de plafond
  8. Arduino Spybot
  9. FlickMote