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

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Composants et fournitures

ComposantQuantité
Arduino UNO1
Shield Arduino OpenTherm1
Alimentation 24V1

À propos de ce projet

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

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent
Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Contexte

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

J'ai donc construit moi-même une passerelle OpenTherm qui m'a permis d'intercepter la communication entre le thermostat et la chaudière et de placer un algorithme qui ferait soit démarrer la chaudière, soit utiliser 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 - shield Arduino - qui permettrait à n'importe qui de contrôler très facilement son chauffage domestique.

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

À quoi sert le shield ?

Données et commandes disponibles

* Notez que ces données ne sont disponibles que si votre chaudière est équipée des accessoires nécessaires

Construction du shield

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

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Vous pouvez utiliser le schéma ci-dessus et les fichiers Gerber pour créer le shield vous-même. Je fais fabriquer mes cartes par PCBWay - PCB Prototype the Easy Way. Vous pouvez les faire créer et expédier ces belles cartes bleues en une semaine seulement. Le masque de soudure bleu coûte le 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 DIY préemballé.

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Utiliser le shield 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 :

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

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 à programmer. 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.valueHB = 0;
    message.valueLB = 0;
    Serial.print("-> ");
    OPENTHERM::printToSerial(message);
    Serial.println();
    OPENTHERM::send(BOILER_OUT, message); // envoyer message à la chaudière
  } else if (OPENTHERM::isSent()) {
    OPENTHERM::listen(BOILER_IN, 800); // attendre la réponse de la chaudière
  } else if (OPENTHERM::getMessage(message)) {
    // la chaudière a répondu
    OPENTHERM::stop();
    Serial.print("<- ");
    OPENTHERM::printToSerial(message);
    Serial.println();
    Serial.println();
    delay(100); // délai minimal avant la prochaine communication
  } else if (OPENTHERM::isError()) {
    OPENTHERM::stop();
    Serial.println("<- Timeout");
    Serial.println();
  }
}

D'abord, vérifiez s'il n'y a pas de commande en attente avec OPENTHERM::isIdle. Sinon, vous pouvez envoyer la suivante. Dans cet exemple, vous demandez les drapeaux 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 l'appel OPENTHERM::listen. La méthode OPENTHERM::getMessage renverra true dès qu'il y a une réponse en attente de l'esclave et si quelque chose s'est mal passé ou qu'un timeout s'est produit, la méthode OPENTHERM::isError renverra true. La bibliothèque contient la structure de message OpenTherm qui contient les données décodées du protocole, vous n'avez donc pas à vous soucier des formats. Consultez le code source, il est bien documenté. Tous les types de messages sont listés dans les constantes ou vous pouvez consulter la documentation OpenTherm.

struct OpenthermData {
  byte type;
  byte id;
  byte valueHB;
  byte valueLB;
  float f88();
  void f88(float value);
  uint16_t u16();
  void u16(uint16_t value);
  int16_t s16();
  void s16(int16_t value);
}

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

Le deuxième exemple vous montrera comment attacher un dispositif "man-in-the-middle" au bus OpenTherm pour surveiller la chaudière et le thermostat ou intercepter leur communication. Ce dont vous avez besoin :

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Connectez le shield 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 rompue à moins que vous ne téléversiez un logiciel de passerelle dans votre Arduino qui transférera les commandes et les réponses du thermostat vers 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); // transférer le message à la chaudière
      mode = MODE_LISTEN_SLAVE;
    }
  } else if (mode == MODE_LISTEN_SLAVE) {
    if (OPENTHERM::isSent()) {
      OPENTHERM::listen(BOILER_IN, 800); // la réponse doit être renvoyée en 800ms
    } else if (OPENTHERM::getMessage(message)) {
      Serial.print("<- ");
      OPENTHERM::printToSerial(message);
      Serial.println();
      Serial.println();
      OPENTHERM::send(THERMOSTAT_OUT, message); // renvoyer le message au thermostat
      mode = 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 requête est détectée, elle l'analyse et la transmet à la chaudière. La passerelle commence alors à écouter la réponse de la chaudière. Si une réponse est reçue dans les 800ms, la passerelle la renvoie 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 (statut, températures, pression, statistiques...). Vous pouvez même remplacer ou jeter les requêtes ou réponses que vous n'aimez pas.

Comme vous pouvez le voir, il est vraiment 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

Intégrez votre chauffage central avec Arduino pour un contrôle intelligent

Processus de fabrication

  1. Surveillance de votre chaudière centrale avec Raspberry Pi – Matériel, Logiciel et Guide de configuration
  2. Construire un réseau de capteurs sans fil abordable pour votre maison
  3. Connecter un capteur de gaz TGS2600 à un Raspberry Pi pour la détection de gaz nocifs
  4. Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
  5. Connecter GrabCAD Print à votre imprimante 3D Stratasys — Guide étape par étape
  6. Maximisez vos profits : stratégies éprouvées d'efficacité du fioul de chauffage
  7. Contrôler votre ventilateur de plafond avec Alexa : Guide étape par étape
  8. Construire un Spybot Arduino piloté par Bluetooth
  9. FlickMote : Télécommande IR à gestes pour maison connectée