Ce Instructable explique comment j’ai construit des thermostats de WiFi activé pour ma maison. Les thermostats sont programmables avec 6 différentes périodes durant la journée, bien qu’augmentant celle de n’importe quel nombre arbitraire serait assez triviales. Ils peuvent être programmés (dans le sens du paramètre durée et température) ainsi que contrôlés via l’internet, et ils ont un écran tactile LCD de contrôle local ainsi. Et, j’ai passé (et continuer à dépenser) une bonne quantité de temps à essayer de les amener à regarder décent ; Après tout, c’est quelque chose qui pend sur mon mur, et j’ai ma famille verront et elle tous les jours.
Une question évidente est « pourquoi voudrait-on faire cela quand il y a beaucoup de thermostats compatibles WiFi en vente dans le commerce? » Une réponse possible serait d’économiser de l’argent. Mais, s’il est vrai que ceux-ci pourraient coûtent moins cher à construire que certains modèles commerciaux, une fois que vous prenez en compte votre temps, cela devient une mauvaise réponse ! Meilleures réponses serait d’avoir plaisir à le faire (je l’ai fait), ou de construire un thermostat que vous pouvez programmer pour exécuter et interagir avec d’autres appareils en aucune façon souhaitée. J’ai construit dans le cadre d’un grand système de gestion énergétique à la maison, et peut-être, je vais poster un autre Instructable là-dessus plus tard. Et en bonus : la plaque tournante pour les thermostats est prête à fonctionner comme une plaque tournante pour un système domotique complet !
Une deuxième question évidente est de quel type de formation ou expérience pertinente que j’ai en ce domaine, et la réponse est absolument aucun-aucune expérience avec les systèmes de CVC, aucune formation en ne programmation, aucun fond dans l’électronique. Donc, si vous décidez de construire votre propre thermostats, vous ne devez pas juste aveuglément copier exactement ce que j’ai ici et brancher à votre mur. Ce projet nécessite une pensée précise, analytique, et vous devez comprendre le type de système de CVC vous avez, revoir et modifiez tous les codes et les circuits selon qu’il conviendra et assurez-vous que vous comprenez ce que vous faites et les conséquences de se tromper. Faute de quoi pourrait détruire votre système HVAC, électrocuter vos proches ou brûler votre maison. Au sérieux ! Je me réjouis certainement vos commentaires de quiconque possède des connaissances dans ces domaines quant à comment je pourrais faire ces thermostats mieux.
Et bien sûr, je n'aurais pas pu faire cela sans tout le dur labeur des gens qui ont créé les différentes bibliothèques utilisées, les personnes qui ont pris le temps d’éteindre les informations sur le web en Instructables, les blogs et les forums et les nombreuses personnes qui m’a aidé avec les conseils et réponses à mes questions. Merci à Mark Pendrith qui a été particulièrement utile et m’a donné le code qui constitue le fondement de l’esquisse de l’arduino.
Enfin, en train de modifier les fichiers de travailler avec juste les thermostats (plutôt que le plus grand système de gestion énergétique à la maison) ainsi que de se souvenir de tout ce que j’ai fait au fil du temps pour que cela fonctionne, aura sans doute lieu quelques erreurs ici. S’il vous plaît laissez-moi savoir si vous attrapez un et je vais essayer d’obtenir leur corrigé aussi rapidement que possible.
Avec tout de cela de la route, ici ce que j’ai fait :
Le système utilise un Pi de framboise comme un point nodal qui sert des pages web, donc je peux contrôler les thermostats de n’importe où. Le hub gère également toute la communication sans fil over nRF24L01 + modules radio (je sais je l’ai dit "WiFi", et le module de radio nRF24L01 + n’est pas techniquement en WiFi, mais plus sur cela plus tard) et tient à jour une base de données MySQL avec le thermostat de programmation ainsi que n’importe quel enregistrement de données, je le fais. Et enfin, la plaque tournante tourne deux serveurs écrits en Python – on maîtrise le thermostat (en tant qu’intermédiaire entre la page web et le thermostat) et les autres poignées enregistrement de données. Je crois que cela pourrait probablement se faire avec les thermostats chaque servant ses propres pages web simple et l’envoi de données directement à la base de données MySQL. Cela éliminerait la nécessité pour le serveur web lighttpd et les serveurs de deux python. Mais, j’ai envie de faire cela sur le hub offre la simplicité d’un seul site web et les serveurs de python fournissent une grande flexibilité. De plus, je n’ai pas à jour le code sur les thermostats chaque fois que je veux apporter des modifications à ces aspects.
Si vous vraiment creusez dans ceci, vous vous demanderez sans doute pourquoi j’ai pris la peine avec une base de données MySQL au lieu d’écrire juste un peu de données dans un fichier texte lorsque c’est nécessaire. La réponse principale est que j’ai besoin de la base de données MySQL dans d’autres parties de mon système, mais si tous, j’ai eu étaient les thermostats, il pourrait être assez facile juste éliminer la base de données et de le remplacer dans les fichiers.
Ainsi, le flux de communication essentiellement fonctionne comme suit.
Mises à jour de l’utilisateur sur le site Web
Un utilisateur contrôle ou programmes un thermostat sur un site web écrit en PHP (pour la plupart, un peu de javascript).
Ce site web enregistre les modifications apportées à la base de données MySQL et envoie une instruction sur le serveur de contrôle de python.
Le serveur de contrôle de python interprète ces instructions, met à jour une représentation interne du thermostat et envoie les instructions appropriées au thermostat physique sur le réseau RFX.
Mises à jour utilisateur au Thermostat
Un utilisateur commande un thermostat en utilisant les contrôles de l’écran tactile.
Le thermostat envoie les modifications sur le serveur de contrôle de python.
Le serveur de contrôle de python met à jour une représentation interne du thermostat et enregistre les modifications apportées à la base de données MySQL.
Thermostat est muni de journal ou messages pour enregistrer les données
Le thermostat envoie un message pour ouvrir une session sur le serveur d’enregistrement de données python ou données.
Le serveur d’enregistrement de données soit enregistre que les données à la base de données MySQL, ou dans un fichier journal fondées sur le type de message.
Thermostat température modifiée automatiquement selon un programme défini
Le serveur de contrôle de python surveille le programme défini pour le thermostat et détermine quand la température de consigne devrait changer.
Le serveur de contrôle de python met à jour une représentation interne du thermostat et envoie la nouvelle température réglée au thermostat.
Ainsi, avec cet aperçu derrière nous, voici plus de détails sur comment j’ai mis cela vers le haut. La première étape répertorie les fournitures et les outils que j’ai utilisé. Les prochaines étapes plusieurs de l’Instructable couvrent comment mettre en place l’infrastructure matérielle et logicielle pour le moyeu. La plupart d'entre elles comprendront des instructions par référence – il y a beaucoup d’endroits pour obtenir des informations sur la façon dont, par exemple, de mettre en place une base de données MySQL sur un Pi de framboise, donc je ne cherche pas à répliquer que. Puis, lorsque l’infrastructure est en place, je donne beaucoup plus de détails sur comment j’ai construit les thermostats réels ainsi que le code que j’utilise pour les contrôler.