Table des matières:
- Étape 1: Pièces nécessaires / Assemblage
- Étape 2: Télécharger le code et tester
- Étape 3: Modifications OpenHAB
Vidéo: Température HRV vers OpenHAB via ESP8266 (exemple de code série !): 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:11
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
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
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é:
Raspberry PI 3 - Activer les communications série vers TtyAMA0 vers BCM GPIO 14 et GPIO 15 : 9 étapes
Raspberry PI 3 - Activer les communications série vers TtyAMA0 vers BCM GPIO 14 et GPIO 15 : j'ai récemment eu intérêt à activer UART0 sur mon Raspberry Pi (3b) afin de pouvoir le connecter directement à un périphérique de niveau de signal RS-232 à l'aide d'un 9 standard connecteur d-sub à broches sans avoir à passer par un adaptateur USB vers RS-232. Une partie de mon intérêt
Écran LCD I2C/IIC - Utilisez un écran LCD SPI vers l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : 5 étapes
Écran LCD I2C/IIC | Utilisez un écran LCD SPI sur l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : Salut les gars, car un SPI LCD 1602 normal a trop de fils à connecter, il est donc très difficile de l'interfacer avec arduino, mais il existe un module disponible sur le marché qui peut convertir l'affichage SPI en affichage IIC, vous n'avez donc besoin de connecter que 4 fils
Enregistreur de données de température et d'humidité d'Arduino vers un téléphone Android avec module de carte SD via Bluetooth : 5 étapes
Enregistreur de données de température et d'humidité d'Arduino à un téléphone Android avec module de carte SD via Bluetooth : Bonjour à tous, c'est mon tout premier Instructable, j'espère aider la communauté des fabricants car j'en ai bénéficié. Souvent, nous utilisons des capteurs dans nos projets, mais nous trouvons un moyen de collecter les données, de les stocker et de les transférer immédiatement. Téléphones ou autres appareils
Micrologiciel de commande Flash AT vers module ESP01 (nécessite un adaptateur USB vers TTL): 5 étapes
Micrologiciel de commande Flash AT vers module ESP01 (nécessite un adaptateur USB vers TTL) : par Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
Utilisation de la RAM du PC vers Arduino via le port série : 7 étapes
Utilisation de la RAM du PC vers Arduino via le port série : Un de mes amis m'a inspiré avec son petit projet Arduino. Ce petit projet implique l'Arduino UNO R3, qui lit les données par un programme réalisé en Arduino IDE envoyé à un port série (port USB) par un programme C# réalisé en Visual Studio. Comme ceci