Web-Enabled huis thermostaat (en huisautomatisering Hub)


Dit Instructable legt uit hoe ik WiFi toegelaten thermostaten gebouwd voor mijn huis. De thermostaten zijn programmeerbaar met 6 verschillende perioden tijdens de dag, hoewel steeds meer die op elk willekeurig nummer zou vrij onbeduidend. Ze kunnen worden geprogrammeerd (in de zin van instelling tijden en temperaturen), alsook via het internet gecontroleerd, en ze hebben een touchscreen LCD display voor lokale controle en. En ik besteed (en blijven uitgeven) een behoorlijke hoeveelheid tijd proberen om hen te kijken fatsoenlijk; immers, dit is iets die op mijn muur hangt, en ik en mijn familie zal zien het elke dag.

Een voor de hand liggende vraag is "Waarom zou iemand willen om dit te doen wanneer er tal van WiFi-toegelaten thermostaten te koop commercieel zijn?" Een mogelijke oplossing zou zijn om geld te besparen. Maar, hoewel het klopt dat dit misschien goedkoper te bouwen dan sommige commerciële modellen, zodra u factor in uw tijd, dit wordt een slecht antwoord! Betere antwoorden zou zijn om plezier doen (deed), of om te bouwen van een thermostaat die u kunt uitvoeren en communiceren met andere apparaten op geen enkele manier programmeren gewenst. Ik heb deze als onderdeel van een groter huis energie managementsysteem gebouwd, en misschien zal ik post een andere Instructable daarover later. En als bonus: de hub voor de thermostaten is klaar om te gaan als een hub voor een compleet domoticasysteem!

Een tweede voor de hand liggende vraag is welke soort van formele kwalificaties of relevante ervaring heb ik in dit gebied, en het antwoord is absoluut geen – geen achtergrond met systemen HVAC, geen achtergrond in programmeren, geen achtergrond in de elektronica. Dus, als u besluit om te bouwen van uw eigen thermostaten, u moet niet alleen maar blindelings kopiëren precies wat ik hier heb en sluit deze dan aan uw muur. Dit project vereist nauwkeurig, analytisch denken, en moet u het type van HVAC-systeem u hebben, bekijken en wijzigen van alle code en circuits als passende en zorg ervoor dat u begrijpt wat u doet en de gevolgen van verkeerd begrijpen. Niet te doen zou kunnen vernietigen uw HVAC-systeem, elektrocuteer uw dierbaren of afbranden van je huis. Serieus! Ik ben zeker blij met feedback van iemand die beschikt over kennis op deze gebieden over de vraag hoe ik deze thermostaten beter kon maken.

En natuurlijk, ik kon niet hebben dit gedaan zonder al het harde werk van de mensen die gemaakt van de verschillende bibliotheken gebruikt, de mensen die de tijd genomen om informatie stak op het web in Instructables, forums, en blogs, en de vele mensen die me met advies en antwoorden op mijn vragen geholpen. Speciale dank aan Mark Pendrith die was bijzonder nuttig en gaf me de code die de basis voor de arduino schets vormt.

Tot slot, in het proces van het wijzigen van bestanden om te werken met alleen de thermostaten (in tegenstelling tot de grotere huis energie managementsysteem) evenals het onthouden van alles wat die ik deed na verloop van tijd te halen zulks voor werkzaamheden, er zullen ongetwijfeld enkele fouten hierin. Laat het me weten als u om het even welk vangen, en ik proberen zal ze zo snel mogelijk gecorrigeerd te krijgen.

Met al dat uit de weg, hier van deed wat ik:

Het systeem maakt gebruik van een Raspberry Pi als een centrale hub die serveert van webpagina's, zodat ik de thermostaten vanaf elke locatie kunt bepalen. De hub ook behandelt alle van de draadloze communicatie over nRF24L01 + radio modules (ik weet dat ik zei "WiFi", en de nRF24L01 + radio module is niet technisch WiFi, maar daarover later meer), en onderhoudt een MySQL-database met de thermostaat programmering zo goed als elke gegevensregistratie ik doen. En tot slot de hub draait twee servers in Python geschreven-een regelt de thermostaat (als intermediair tussen de webpagina en de thermostaat) en de andere grepen gegevens vastleggen. Ik denk dat dit kan waarschijnlijk gebeuren met de thermostaten elke serveren eigen eenvoudige web-pagina en het verzenden van gegevens rechtstreeks naar de MySQL database. Dit zou elimineren de noodzaak voor de lighttpd webserver en de twee python-servers. Maar ik voel me als dit te doen op de hub biedt de eenvoud van een enkele website, en de python-servers een heleboel flexibiliteit bieden. Plus ik heb niet de code op de thermostaten bijwerken wanneer ik wijzigingen wilt aanbrengen aan deze aspecten.

Als je echt in dit graven, zult u waarschijnlijk zich afvragen waarom ik moeite met een MySQL-database in plaats van gewoon een beetje gegevens te schrijven naar een tekstbestand wanneer dat nodig is. Het primaire antwoord is dat ik de MySQL database voor andere delen van mijn systeem moet, maar als alles wat die ik had waren de thermostaten, kan het zijn vrij gemakkelijk enkel te elimineren van de database en tekstbestanden te vervangen.

Dus, de communicatiestroom in wezen werkt als volgt.

Gebruiker Updates op website

Een gebruiker bepaalt of een programma van een thermostaat op een web-site geschreven in PHP (meestal een beetje javascript).

Deze web-site slaat wijzigingen op in de MySQL database en stuurt een instructie naar de python control server.

De python control server interpreteert deze instructies, bijgewerkt een interne representatie van de thermostaat en de passende instructies stuurt naar de fysieke thermostaat via de RFX netwerk.

Gebruiker Updates op thermostaat

Een gebruiker bepaalt een thermostaat met behulp van het touchscreen controles.

De thermostaat stuurt de wijzigingen naar de server van python controle.

De python control server updates een interne representatie van de thermostaat en slaat wijzigingen op in de MySQL database.

Thermostaat heeft gegevens naar logboek of berichten op te slaan

De thermostaat stuurt gegevens of een bericht aan de logserver python gegevens te melden.

De gegevensregistratie server slaat ofwel dat gegevens naar de MySQL-database of naar een logboekbestand op basis van het type bericht.

Thermostaat temperatuur automatisch gewijzigd volgens een programma instellen

De python control server het programma instellen voor de thermostaat controleert en bepaalt u wanneer de ingestelde temperatuur moet wijzigen.

De python control server updates een interne representatie van de thermostaat en stuurt de nieuw ingestelde temperatuur op de thermostaat.

Dus, met dat overzicht achter ons, hieronder vindt u informatie over hoe ik dit instellen op. De eerste stap worden de leveringen en de hulpmiddelen die ik gebruikte. De volgende stappen van de Instructable dekken hoe ik het opzetten van de hardware en software-infrastructuur voor de hub. De meeste van deze zal instructies bevatten aan de hand van-er zijn tal van plaatsen om grote informatie over hoe, bijvoorbeeld, instellen van een MySQL-database op een Raspberry Pi, zodat ik niet proberen te repliceren die. Dan, wanneer de infrastructuur aanwezig is, geef ik aanzienlijk meer informatie over hoe ik de werkelijke thermostaten, evenals de code die ik gebruik om hen gebouwd.

Gerelateerde Artikelen

Slimme Homer Web-enabled TV remote

Slimme Homer Web-enabled TV remote

Slimme Homer, een Web-enabled TV remote marionetSlimme Homer is een Web-enabled marionet dat op uw TV draait als Simpsons is ingeschakeld. Zoals Homer te lui om te surfen op het Web zelf is, controleert een script in de wolk de online TV-programma vo
OpenSprinkler: Open-source Web-enabled Sprinkler Valve Controller

OpenSprinkler: Open-source Web-enabled Sprinkler Valve Controller

overzichtIk ben trots om te introduceren OpenSprinkler: een open-source programmeerbare, web-enabled sprinkler valve controller. Het kan worden gebruikt om te plannen en te werken met standaard 24VAC sprinkler kleppen vaak aangetroffen in huishoudeli
PIGate, deur/gate opener van de garage van de web-enabled

PIGate, deur/gate opener van de garage van de web-enabled

Bouwen van een opener van de externe poort met behulp van een expressjs en een Raspberry PiintroductieEr is iets heel bevredigend over te klikken op een web-interface of het raken van een knop op een app en het zien van enkele fysieke gebeurtenis opt
Web-Enabled lui studie lichten Controller

Web-Enabled lui studie lichten Controller

Dit Instructable is een schrijven van mijn eerste ooit Arduino project.Zoals in het algemeen het geval met de technici van de hobbyist, ik dacht lang en hard om te komen met een project dat werd niet alleen cool maar sommige werkelijke gebruikswaarde
Web-enabled Polar hartslagmeter

Web-enabled Polar hartslagmeter

Gebruik een Polar hartslagsensor, een goedkope hardwarekaart aangesloten via USB en een beetje van software om te zetten uw hartslag op het Web. De live-gegevens is geserveerd vanaf uw computer en toegankelijk gemaakt via de Yaler estafette (disclosu
Arduino standalone web-enabled bell

Arduino standalone web-enabled bell

geïnspireerd door deze post, mij wilden voor wekken een Arduino aangedreven Bel dat volledig standalone was.Met een beetje PHP en (desgewenst) sommige jQuery op een website, kunt u deze bell ring wanneer een specifieke actie wordt uitgevoerd.Deze sta
WEB-ENABLED ACHTERTUIN artillerie

WEB-ENABLED ACHTERTUIN artillerie

howdy iedereen! Dit instructable is eigenlijk het hoogtepunt van vele projecten van mij, in het verleden, maar ze allemaal zijn samen gebruikt hebben om iets echt cool te doen! in principe is het een kanon dat kan u meer controle over het web via een
Web-Enabled zwembad Control - Raspberry Pi

Web-Enabled zwembad Control - Raspberry Pi

Vorig jaar had ik een zwembad gebouwd. Het was spannend toen de zwembad bouwer heeft me laten zien dat de industrie zwembad had verplaatst naar het tijdperk van de informatietechnologie en nu bood Programmacontrole via het internet. Wordt een compute
Web-Enabled garagedeur (Raspberry Pi)

Web-Enabled garagedeur (Raspberry Pi)

Doel om een webpagina te maken op basis van garage deuropener die moeten achteraf aan de meeste standaard openers. Getest met circa 1990s Chamberlain 1/2 hp opener. Nam eenmaal deel uw garagedeur kan openen vanaf uw mobiele telefoon of computer.Raspb
RAS-uw huis Alarm

RAS-uw huis Alarm

Ik maakte dit project me externe toegang geven tot mijn huis Alarm Panel - als ik weten wilde als de wekker op mijn huis uit was gegaan, terwijl ik weg was. Ik wilde ook de mogelijkheid om te lezen van de logs - en het alarm te resetten indien ze zij
Arduino Web ingeschakeld RGB verlichting

Arduino Web ingeschakeld RGB verlichting

ik heb net toevallig om te zien sommige grote strips van LED-verlichting als ik was het oppakken van sommige delen op Maplin die waren te koop (als ik me herinner juiste ze waren ongeveer £12 per ca. 2m strip) stuurprogramma voor de controller/was ec
Bouwen van een Web ingeschakeld deurslot met Rest API en Raspberry PI

Bouwen van een Web ingeschakeld deurslot met Rest API en Raspberry PI

In dit instructable, bouwen we een web-enabled elektronische deurslot vanaf nul RESTFUL API, knooppunt JS en Raspberry PI gebruikt om de web-service die wordt verbruikt door de mobiele app of een REST-client.De architectuur is verdeeld in twee 3 dele
Web gecontroleerde Valentine

Web gecontroleerde Valentine

met deze mix van software en hardware, kunt u een hart-versierd nacht licht van overal met internettoegang oplichten. Dus of je nog op het werk, in een café, thuis, of op uw (web-enabled) mobiele telefoon, kunt u vertellen uw Valentijn dat u bent nog
Web gecontroleerde Arduino LED

Web gecontroleerde Arduino LED

Dit instructable toont u hoe te bouwen een Web-enabled tri-color LED gebaseerd op een Arduino en de WIZnet Ethernet-shield, beheersbare vanuit elke webbrowser .Omdat de LED wordt blootgesteld kunnen door middel van een eenvoudige RESTful web-service