Web-Enabled maison Thermostat (et domotique Hub)

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.

Articles Liés

Smart TV Homer Web-enabled à distance

Smart TV Homer Web-enabled à distance

Smart d'Homère, une marionnette distant compatible Web TVHomer intelligent est une marionnette de Web-enabled qui transforme le téléviseur lorsque Simpsons est activé. Comme Homer est trop paresseux pour naviguer sur le Web lui-même, un script dans l
OpenSprinkler : Contrôleur de vanne Open source Web-enabled arroseur

OpenSprinkler : Contrôleur de vanne Open source Web-enabled arroseur

vue d'ensembleJe suis fier de vous présenter OpenSprinkler : un contrôleur de vanne arrosage open source, programmable, compatible web. Il peut être utilisé pour planifier et de travailler avec vannes d'arrosage standard 24VAC trouves couramment dans
Web-enabled cardiofréquencemètre Polar

Web-enabled cardiofréquencemètre Polar

Utilisez un Polar cardiofréquencemètre, un Conseil de matériel bon marché connecté via USB et un peu de logiciel pour mettre votre fréquence cardiaque sur le Web. Les données actives est servi dès votre ordinateur et accessibles via le relais de Yale
WEB-ENABLED BACKYARD artillerie

WEB-ENABLED BACKYARD artillerie

Salut tout le monde ! Cette instructable est en fait l'aboutissement de nombreux autres projets de mine, mais ils ont tous été utilisés ensemble pour faire quelque chose de vraiment cool ! Fondamentalement, c'est un Canon qui vous pouvez de contrôler
Web Enabled contrôle piscine - framboise Pi

Web Enabled contrôle piscine - framboise Pi

L'année dernière j'ai eu une piscine construite. C'était excitant quand le constructeur piscine m'a montré que l'industrie de la piscine avait déménagé dans l'ère de la technologie et offre maintenant le contrôle des applications sur internet. Étant
Faites-vous anonyme sur le web !

Faites-vous anonyme sur le web !

« Comment puis-je voyager et communiquer sur Internet sans être suivis ou espionnés par n'importe qui? »Ce tutoriel va expliquer comment vous êtes arrivé à cela !Il y a une multitude de raisons de vouloir la vie privée pour les communications sur Int
Web contrôlé Arduino LED

Web contrôlé Arduino LED

Cette instructable vous montre comment construire un Web-enabled tri-color LED basées sur un Arduino et le bouclier WIZnet Ethernet, à partir de n'importe quel navigateur Web .Parce que la LED est exposée via un service web RESTful simple en cours d'
Cadre de photo numérique USB + WEB

Cadre de photo numérique USB + WEB

ces instructions décrira en détail les étapes nécessaires à la préparation des éléments du logiciel d'un cadre de photo numérique fait maison. J'espère pouvoir mettre des instructions sur les modifications physiques plus tard.Cadre photo numérique su
Mettre en place votre propre serveur Web !

Mettre en place votre propre serveur Web !

Vous avez toujours voulu avoir un endroit où vous pouvez garder vos fichiers et y accéder de n'importe où vous obtenez une connexion Internet ? Vous avez voulu dire avoir votre bibliothèque de musique disponible dans le cas où vous avez voulu donner
Sans fil Noël minuterie avec Raspberry Pi et Python

Sans fil Noël minuterie avec Raspberry Pi et Python

mise à jour 14/01/2014 : Merci à tous ceux qui ont voté pour ce projet dans le concours de Hacking Hardware ! Impatient de ma plume machine à nouveau.Mise à jour 31/12/2013: à la recherche d'une version plus avancée de ce projet ? Découvrez ma nouvel
Le Raspberry Pi-Arduino-SignalR Home Automation moyeu

Le Raspberry Pi-Arduino-SignalR Home Automation moyeu

Suite à un couple de mon prélude IBLEs publié ici et ici, ce projet prend la première étape vers la création d'une version de base d'un Home Automation Hub fonctionnelle.J'ai utilisé différentes technologies dans le but de comprendre comment je peux
Scripter votre RaspberryPi

Scripter votre RaspberryPi

JavaScript est un langage de programmation grand qui fonctionne partout. JavaScript s'exécute principalement sur votre navigateur web ; Cependant, personnes trouvent des grandes utilisations pour la langue dans d'autres endroits. Python est le langag
Bouton de pizza

Bouton de pizza

Étudiant en deuxième année collège hommes, New Yorkais, techies tard dans la nuit et les vraiment paresseux : Bienvenue à votre fantaisie. Présentation de la mise à niveau ultime dans la technologie gastronomique, le bouton de la Pizza. Pas besoin de
Accueil 9000 - la sonnette ultime

Accueil 9000 - la sonnette ultime

je viens d'acheter une maison à Las Vegas et, étant un bricoleur de longue date (et instructable maker / partageur), j'ai décidé qu'avant de passer, et tant que j'ai l'occasion de briser ouvrir les murs et exécuter n'importe quel fil je voulais, je l