Diese Instructable erklärt wie ich WiFi-fähige Thermostate für mein Haus gebaut. Die Thermostate sind programmierbar mit 6 verschiedenen Zeiträumen während des Tages, obwohl die, die auf jede beliebige Anzahl zunehmen wäre ziemlich trivial. Sie sowohl programmiert (im Sinne von Rüstzeiten und Temperaturen) als auch über das Internet gesteuert werden können, und sie haben ein Touchscreen-LCD-Display für Vorort-Steuerung. Und ich verbrachte (und weiterhin ausgeben) eine ganze Menge Zeit damit, zu anständig; Immerhin ist dies etwas, das an meiner Wand hängt, und meine Familie und ich werden sehen es jeden Tag.
Eine offensichtliche Frage ist "warum jemand wollen würde, dies zu tun, wenn es viele WiFi-fähigen Thermostate für Verkauf im Handel gibt?" Eine mögliche Antwort wäre, Geld zu sparen. Aber es stimmt, zwar, dass diese weniger als einige kommerzielle Modelle zu errichten, wenn Sie in Ihrer Zeit Faktor Kosten könnte wird dies eine schlechte Antwort! Bessere Antworten würde, haben Spaß dabei (Ich habe), oder einen Thermostat zu bauen, den Sie programmieren können, ausführen und interagieren mit anderen Geräten in irgendeiner Weise gewünscht. Ich baute diese als Teil eines größeren Hauptenergie-Management-Systems, und vielleicht werde ich ein anderes Instructable auf, die später. Und als Bonus: die Drehscheibe für die Thermostate ist als Drehscheibe für eine komplette home-Automation-System einsatzbereit!
Eine zweite offensichtliche Frage ist welche Art der formalen Qualifikationen oder einschlägige Erfahrungen habe ich in diesem Bereich, und die Antwort ist absolut nichts – kein Hintergrund mit HLK-Anlagen, ohne Hintergrund in der Programmierung, ohne Hintergrund in der Elektronik. Also, wenn Sie sich entscheiden, Ihre eigenen Thermostaten zu bauen, sollten Sie nicht einfach blind kopieren, genau das, was ich hier habe, und schließen Sie ihn an Ihre Wand. Dieses Projekt erfordert präzise, analytische Denken, und Sie müssen verstehen, die Art der HVAC-System haben, überprüfen und ändern alle Code und Strecken je nach Bedarf und stellen Sie sicher, dass Sie verstehen, was du tust und die Folgen der immer falsch. Nichtbeachtung könnte Ihr HVAC System zerstören, einen Stromschlag Ihre lieben oder Ihr Haus niederbrennen. Ernst! Ich begrüße natürlich Feedback von Wer hat Kenntnisse in diesen Bereichen, wie ich diese Thermostate besser machen könnte.
Und natürlich, ich hätte nicht ohne all die harte Arbeit von den Leuten, die die verschiedenen Bibliotheken verwendet, erstellt die Menschen nahm sich die Zeit zu setzen Informationen über das Web in Instructables, Foren und Blogs und die vielen Menschen, die mir geholfen mit Beratung und Antworten auf meine Fragen haben. Besonderen Dank an Mark Pendrith, war besonders hilfsbereit und gab mir den Code, der die Grundlage der Arduino Skizze bildet.
Zu guter Letzt in den Prozess der ändern von Dateien mit nur die Thermostate (im Gegensatz zu den größeren Hauptenergie-Management-System) zu arbeiten, sowie die Erinnerung an alles, was ich im Laufe der Zeit, diese zu arbeiten, werden ohne Zweifel einige Fehler hier. Lass es mich wissen, wenn Sie alle fangen und ich versuchen werde, ihnen so schnell wie möglich korrigiert.
Mit all dem aus dem Weg, hier ist getan was ich habe:
Das System verwendet ein Raspberry Pi als zentrale Drehscheibe, die Web-Seiten dient, so dass ich die Thermostate von überall steuern können. Der Hub auch kümmert sich um alle die drahtlose Kommunikation über Funk-Module-nRF24L01 + (ich weiß, ich sagte "WiFi" und das nRF24L01 + Funk-Modul ist nicht technisch WiFi, aber dazu später mehr), und unterhält eine MySQL-Datenbank mit dem Thermostat Programmierung so gut wie jede Datenaufzeichnung ich tun. Und schließlich die Nabe läuft zwei Servern in Python geschrieben – einer steuert der Thermostat (als Vermittler zwischen der Webseite und der Thermostat) und den anderen Griffe Daten protokollieren. Ich glaube, dass dies wahrscheinlich mit den Thermostaten jede dienen eigene einfache Webseite und senden von Daten direkt an die MySQL-Datenbank getan werden könnte. Dies würde den Lighttpd Webserver und die zwei Python-Server überflüssig. Aber ich habe das Gefühl, tun dies auf der Nabe bietet die Einfachheit einer einzigen Website, und die Python-Server bieten viel Flexibilität. Außerdem habe ich nicht, den Code an den Thermostaten zu aktualisieren, wann immer ich, diese Aspekte zu ändern will.
Wenn Sie wirklich in diesem Graben, werden Sie wahrscheinlich Fragen, warum mit einer MySQL-Datenbank anstelle des Schreibens nur ein wenig Daten in eine Textdatei bei Bedarf. Die primäre Antwort ist, dass ich die MySQL-Datenbank für andere Teile von meinem System brauche, aber wenn alles was, die ich hatte die Thermostate waren, es wäre ziemlich einfach nur zu beseitigen die Datenbank und mit Text-Dateien zu ersetzen.
So funktioniert der Kommunikationsfluss im Wesentlichen wie folgt.
Benutzerupdates auf Website
Ein Benutzer steuert oder Programme einen Thermostat auf eine Web-Seite in PHP (meist ein wenig Javascript) geschrieben.
Diese Website speichert alle Änderungen an der MySQL-Datenbank und sendet eine Anweisung auf dem Python-Kontroll-Server.
Die Python-Kontroll-Server interpretiert diese Anweisungen aktualisiert eine interne Repräsentation des Thermostats und sendet die entsprechenden Anweisungen an den physischen Thermostat über das RFX-Netzwerk.
Benutzerupdates am Thermostat
Ein Benutzer steuert einen Thermostat mit der Touchscreen-Steuerung.
Das Thermostat sendet die Änderungen an den Python-Kontroll-Server.
Die Python-Kontroll-Server aktualisiert eine interne Repräsentation des Thermostats und speichert alle Änderungen an der MySQL-Datenbank.
Thermostat hat Daten zum Protokoll oder Nachrichten speichern
Das Thermostat sendet Daten oder eine Nachricht an den Python-Datenlogging-Server anmelden.
Der Datenlogging-Server speichert entweder, dass Daten in die MySQL-Datenbank oder in einer Log-Datei auf dem Typ der Nachricht basierend.
Thermostat Temperatur verändert sich automatisch nach einem Programm festgelegt
Die Python-Kontroll-Server überwacht das Programm für den Thermostat und bestimmt, wenn die eingestellte Temperatur ändern sollte.
Die Python-Kontroll-Server aktualisiert eine interne Repräsentation des Thermostats und sendet die neue eingestellte Temperatur an den Thermostaten.
Also, mit diesen Überblick hinter uns unten sind Details wie ich dies eingestellt werden. Der erste Schritt listet die Versorgungsmaterialien und Werkzeuge, die ich verwendet. Die nächsten Schritten die Instructable decken, wie ich die Hardware und Software-Infrastruktur für den Hub einrichten. Die meisten davon enthalten Anweisungen unter Bezugnahme – es gibt viele Orte, um gute Informationen darüber, wie, zum Beispiel, einzurichten, eine MySQL-Datenbank auf einem Raspberry Pi, so dass ich nicht versuchen, die Replikation. Dann, wenn die Infrastruktur vorhanden ist, gebe ich deutlich mehr Details auf, wie ich gebaut, die tatsächliche Thermostate sowie den Code, den ich verwenden, um sie zu kontrollieren.