Table des matières:

Température HRV vers OpenHAB via ESP8266 (exemple de code série !): 3 étapes
Température HRV vers OpenHAB via ESP8266 (exemple de code série !): 3 étapes

Vidéo: Température HRV vers OpenHAB via ESP8266 (exemple de code série !): 3 étapes

Vidéo: Température HRV vers OpenHAB via ESP8266 (exemple de code série !): 3 étapes
Vidéo: Tour a Smart Home GeenStar Gut rehab with OA Awesome Wall (Corrected) 2024, Novembre
Anonim
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)
Température HRV vers OpenHAB via ESP8266 (exemple de code série !)

HRV - Sans fil vers OpenHAB

Cette instructable est spécifiquement pour ceux qui ont un système HRV (chauffage recirculation ventilation) - bien que des parties de la carte de circuit imprimé, la configuration openhab ou le code Arduino (comme la lecture de données série TTL) puissent être utiles pour vos propres projets ou bien servir pour l'apprentissage. Cela suppose que vous avez une connaissance raisonnable de l'IDE Arduino et de ce qu'est une puce ESP8266.

introduction

Ce qui suit explique comment construire un ESP8266 qui se connecte à un système HRV et envoie les températures du toit et de la maison, la température du panneau de commande et la vitesse du ventilateur via des messages MQTT à OpenHAB. Ceci est conçu pour fonctionner avec une carte ESP8266-01 (bien que cela devrait fonctionner avec n'importe quelle version ESP8266 3.3V) Si vous avez un système de type HRV similaire d'un autre fournisseur, vous devrez déterminer si les données sont envoyées en série TTL et si c'est le cas, sous quelle structure les données sont envoyées.

OpenHAB et Mosquitto

Le code ESP8266 a été écrit spécifiquement pour fonctionner avec OpenHAB (logiciel domotique open source) et un courtier MQTT tel que Mosquitto (un protocole de type abonnement/publication de messagerie qui est léger et idéal pour la communication entre les appareils) Ne laissez pas les noms ou les acronymes vous font peur, ils sont vraiment assez simples à utiliser une fois que vous savez comment ils fonctionnent. J'utilise OpenHAB sur un NTC C. H. I. P (ordinateur à 9 USD), mais de nombreuses personnes utilisent un Raspberry Pi ou similaire. Ce didacticiel suppose que vous avez implémenté OpenHAB (si vous avez besoin d'aide pour configurer OpenHAB, suivez cet excellent article du site Web makeuseof). Vous devez également télécharger et installer Mosquitto (broker MQTT) et la liaison OpenHAB associée. Vous pouvez l'installer ailleurs sur votre réseau, mais la plupart des gens l'installent simplement sur la même machine qu'OpenHAB pour rester simple.

Pour installer Mosquitto, suivez ce lien puis sélectionnez le type d'appareil que vous utilisez et suivez les instructions. Étant donné que C. H. I. P exécute Debian (Jessie), vous pouvez suivre les instructions de Raspberry Pi si vous utilisez C. H. I. P pour votre appareil domotique (notez également qu'il est préférable de reconfigurer CHIP pour démarrer à partir de la CLI. Il y a des instructions pour cela ici)

Une fois que vous avez exécuté OpenHAB et Mosquitto, vous devez préparer l'IDE Arduino pour l'ESP8266 et le code. Tout d'abord, vous devez ajouter la bibliothèque "PubSubClient". Dans l'IDE Arduino, dans le menu, accédez à Sketch, Inclure la bibliothèque, Gérer les bibliothèques Dans la zone de recherche du filtre, tapez PubSubClient, puis mettez le résultat de la recherche en surbrillance et cliquez sur Installer (au moment de la rédaction, la dernière version est la 2.6.0). il faut également ajouter la carte ESP8266 à l'IDE Arduino, ce qui peut être fait en suivant les instructions ici

Qu'est-ce que cela me donne ?

Comme indiqué précédemment, ce projet vous permettra de visualiser le toit de votre panneau de commande HRV, la maison, les températures du panneau de commande et la vitesse du ventilateur dans l'interface graphique OpenHAB (en temps réel !). Les images montrent à quoi cela ressemble de mon iPhone, ainsi que les graphiques que vous obtiendra en forant dans les différentes températures.

Pour obtenir les graphiques, vous devrez également installer et configurer la liaison RRD4J (c'est très simple) Cela vous permettra de cliquer sur « Maison » ou « Toit » et d'obtenir un historique des températures HRV pour chacun au cours du passé heure, jour ou semaine (ou plus, si vous modifiez la configuration en fonction) Les images présentées sont en Celsius, et clairement son hiver dans l'hémisphère sud lorsque j'ai fait cela !

De plus, j'ai créé une vue OpenHAB qui montre une comparaison entre la température extérieure (fournie par le module complémentaire de liaison météo, dans mon cas en utilisant Wunderground) par rapport aux températures du toit et de la maison en cliquant sur l'option « Contrôle » (l'image montre le graphique avec maison, toit et température extérieure tracés). Je prévois d'utiliser ces données dans les règles pour allumer les appareils de chauffage selon les besoins. Ajoutez simplement l'élément Météo à l'URL de votre image dans le fichier plan du site et incluez-le sur le même graphique (par exemple: …items=houseTemp, roofTemp, weatherTemp…)

Étape 1: Pièces nécessaires / Assemblage

Pièces nécessaires / Assemblage
Pièces nécessaires / Assemblage
Pièces nécessaires / Assemblage
Pièces nécessaires / Assemblage
Pièces nécessaires / Assemblage
Pièces nécessaires / Assemblage

Vous aurez besoin des pièces suivantes

  • Un répartiteur RJ11 (cela répartit le signal du contrôleur dans le toit, vers le panneau de commande et l'ESP8266)
  • Un câble plat et une prise RJ11 (pour faire passer les fils du répartiteur à l'ESP8266)
  • ESP8266-01 (les autres versions 3.3V devraient fonctionner)
  • Convertisseur de niveau logique TTL (pour changer les données de 5V -> 3.3V)
  • Régulateur de tension AMS1117 3.3V (ou similaire, pour changer la tension de HRV 5V -> 3.3V pour alimenter ESP8266)
  • Diode Schottky 1N5817 (pour une raison quelconque, cela a aidé à arrêter la réinitialisation du panneau de commande du VRC à la mise sous tension de l'ESP)
  • Résistance 10K ohm (résistance pullup entre le régulateur de tension 3,3 et ESP CH_PD)
  • Condensateur 10V 10uF (ou similaire, pour lisser et stabiliser la puissance entrante du VRC)
  • Condensateur 10V 1uF (ou similaire, pour lisser et stabiliser la puissance sortante vers ESP)
  • Bouton coulissant en option pour programmer l'ESP (sinon, besoin de tirer manuellement GPIO0 sur GND pour programmer)
  • Un adaptateur FTDI (pour programmer l'ESP, convertit USB en série)

Assembler selon le schéma

L'image de la maquette montre comment les pièces doivent être assemblées. Notez qu'il y a 6 broches qui descendent du câble plat de l'unité de contrôle HRV dans le plafond:

Les broches 1 et 6 sont 5V VCC

Les broches 2 et 5 sont GND

Les broches 3 et 4 sont des données.

Vous n'avez besoin d'utiliser que les broches 1, 2, 3 et 6 (1 et 6 VCC alimentent ESP8266 et le côté haut du convertisseur logique TTL, 2 est une masse commune et 3 est pour lire les données série TTL)

Le répartiteur dont vous avez besoin sera simplement un répartiteur RJ11, assurez-vous simplement que c'est un répartiteur où les broches sont droites (par exemple: la broche 1 va à la broche 1, la broche 2 à la broche 2 et ainsi de suite) Notez que les broches femelles supplémentaires (comme montré dans les images) sont pour connecter un FTDI pour reprogrammer l'ESP plus tard, et le commutateur montré le met en mode "programmation". Ceux-ci sont facultatifs, mais recommandés (par exemple, si vous modifiez votre mot de passe WiFi car le point d'accès WiFi et le mot de passe sont programmés en dur dans le code, que vous devrez télécharger une fois votre ESP8266 construit)

Étape 2: Télécharger le code et tester

Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test
Téléchargement de code et test

Changements de code

Lien de téléchargement alternatif vers le code Arduino ICI

Ouvrez dans l'IDE Arduino, assurez-vous que la carte ESP est installée ainsi que le PubSubClient et que vous avez sélectionné la carte ESP8266 (Outils, Carte, Carte générique ESP8266) Modifiez le code et modifiez le nom et le mot de passe WiFi AP et l'adresse IP de votre courtier MQTT (ce sont les seules choses que vous devriez changer) comme indiqué ci-dessous. Cliquez sur le bouton « Vérifier » pour vous assurer qu'il compile correctement, puis assurez-vous que le bon port COM est sélectionné (Outils, Port) et téléchargez le code sur votre ESP8266. Il existe de nombreux articles sur la façon de procéder, je ne vais pas réinventer la roue ici.

// Wifi

const char* ssid = "votre_wifi_ssid_ici"; const char* mot de passe = "votre_mot_de_passe_wifi_ici"; // Adresse IP du courtier MQTT MQTT_SERVER (192, 168, 222, 254);

Tests MQTT

Pour les tests, vous pouvez laisser votre adaptateur FTDI connecté et ouvrir le moniteur série dans l'IDE Arduino, vous devriez voir des messages imprimant les informations de température dans la console. Si vous devez dépanner les messages MQTT entrants de l'ESP8266 vers votre courtier MQTT, exécutez l'une des commandes suivantes sur le serveur Mosquitto pour vous abonner aux messages entrants:

mosquitto_sub -d -t openhab/hrv/status

Vous devriez voir des messages PUBLIER entrants provenant de l'ESP8266 toutes les 30 secondes environ avec le numéro "1" (ce qui signifie "Je suis en vie") Si vous voyez des "0" constants (ou rien du tout), alors il n'y a pas de communication. Une fois que vous voyez le numéro 1 entrer, cela signifie que l'ESP8266 communique avec le courtier MQTT (recherchez "MQTT Last Will and Testament" pour plus d'informations sur son fonctionnement, ou consultez cette très bonne entrée de blog)

Vous pouvez désormais suivre les données de température et de vitesse du ventilateur, abonnez-vous à l'un des programmes suivants. Cependant, notez que le code n'envoie les données de température que si des données ont changé. Il garde une trace des dernières données de température, de vitesse du ventilateur, etc. qui ont été envoyées, de sorte que vous ne verrez peut-être pas les informations entrer immédiatement.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Astuce: abonnez-vous à la température du panneau de commande ci-dessus, puis appuyez sur le bouton de température du panneau de commande lui-même, vous devriez voir le nouveau réglage de température entrer.

Lorsque vous commencez à souder cela, un PCB de 3 cm x 7 cm s'intègre parfaitement dans la boîte de chasse derrière le panneau de commande HRV. Je recommanderais de ne le faire que s'il s'agit d'une boîte de chasse d'eau en plastique, car une boîte en métal peut interférer avec les signaux Wifi ou éventuellement court-circuiter les connexions sur la carte PCB. Alternativement, vous pouvez imprimer un boîtier 3D en plastique pour y monter la carte.

Étape 3: Modifications OpenHAB

Configuration OpenHAB

Les modifications OpenHAB requises sont les suivantes:

fichier 'articles':

/* HRVNumber hrvStatus "HRV Status [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Number houseTemp "House [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Numéro houseTemp_Chart_Period "Chart Period"Number roofTemp "Roof [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Number roofTemp_Chart_Period "Chart Period"Number controlTemp "Control [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Vitesse du ventilateur [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

fichier 'plan du site':

Frame label="Température HRV" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mappings=[0="Hour", 1="Day", 2="Week"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Visibility=[roofTemp_Chart_Period==0, roofTemp_Chart_Period=="Uninitialized"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Visibility= [roofTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Visibility=[roofTemp_Chart_Period==2] } } Text item=houseTemp { Frame { Switch item=houseTemp_Chart_Period label="Période " mappings=[0="Hour", 1="Day", 2="Week"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Visibility=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Non initialisé"] URL de l'image="https://localhost:8080/rrdchart.png" refresh=30000 Visibility=[houseTemp_Chart_Period==1] Url de l'image="https://localhost:8080/rrdchart.png" refresh =30000 Visibilité=[houseTemp_Chart_Period==2] } } Text item=controlTemp { Frame { Switch item=Combin ed_Chart_Period label="Period" mappings=[0="Hour", 1="Day", 2="Week"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Visibility=[Combined_Chart_Period ==0, Combined_Chart_Period=="Uninitialized"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Visibility=[Combined_Chart_Period==1] Image url="https://localhost:8080/ rrdchart.png" refresh=30000 visibilité=[Combined_Chart_Period==2] } } Text item=fanSpeed }

Des icônes supplémentaires pour OpenHAB sont incluses (clic droit et enregistrez les images)

Enregistrez ces fichiers dans le dossier..\OpenHAB Home\webapps\images sur votre serveur OpenHAB

Conseillé: