Web-Enabled huis thermostaat (en huisautomatisering Hub) (6 / 10 stap)

Stap 6: Programmeren van de thermostaat

Ik mijn thermostaten (in de zin van het laden van de code in de thermostaat) het programma met behulp van de Arduino IDE en een ISP-programmeur, dus dat is wat ik hier zal bespreken.

De GitHub repository moet omvatten een map met de naam Thermostat_v1 waarin de arduino schets voor de thermostaat zelf. Kopiëren van deze map naar een plaats waar u wilt houden. Er zijn ook vier mappen genaamd Utouch2, die een bibliotheek voor het touchscreen bevat, privacy, die is een bibliotheek voor de temperatuursensor, en Adafruit_GFX en Adafruit_ILI9341, die bibliotheken voor het LCD-scherm. Alle vier van deze moeten worden gekopieerd naar een map voor uw bibliotheken Arduino – op windows-computers die \Documents\Arduino\libraries worden moeten. Een speciale dank aan aan alle mensen die schreef deze bibliotheken (Jim Studt - privacy; Adafruit - Adafruit_GFX en Adafruit_ILI93414, Henning Karlsen - Utouch, en Mark Pendrith die de Utouch-bibliotheek (UTouch2) zodanig aangepast dat het touchscreen SPI pinnen met de LCD delen kon).

Volgende, voordat de programmering de thermostaat met de Arduino IDE, moet de IDE hebben de benodigde bestanden te herkennen van de microcontroller 1284P. Deze kunnen worden gevonden hier. Opmerking Dit is voor versie 1.6.3 van de IDE-er zijn andere takken voor eerdere versies. Deze pagina bevat ook instructies voor de installatie.

Nu, wanneer je de Arduino IDE open en ga naar Tools/Board moet u "Bobduino en mager Bob" als een van de opties. Selecteer deze optie en schakel onder Tools/Prorammer AVR ISP mkII (of welke programmeur u gebruikt).

Nu, open de thermostaat schets, en kunt u overwegen de volgende aanpassen aan uw smaak te wijzigen:

Functionaliteit – zorg ervoor dat de thermostaat werkt op de manier om te werken en dat het is geprogrammeerd op een wijze die geschikt is voor uw HVAC-systeem!

#define COMM_PIN 4321 – dit moet worden gewijzigd in welke 4 cijferige PIN-code die u hebt gekozen om te gebruiken als de mededeling van de RFX PIN. Deze moet overeenkomen met de webpagina's en python-servers.

#define TOUCH_TIMEOUT 10000UL – dit is de time-out voor touchscreen input (in millis) na welke wijzigingen worden genegeerd.

#define TURN_OFF_INTERVAL 60000UL – dit is het interval van touchscreen inactiviteit, waarna de LED uitgeschakeld (in millis wordt)

#define LOG_PORT 1700 -poort voor logserver

#define MASTER_PORT 1800 -poort voor control server

Controleer of dat deze poorten zijn hetzelfde als de poorten waarop de python-servers wordt uitgevoerd.

Net onder dit zijn enkele opties die hoeveel informatie u wilt bepalen naar de log bestanden en of wilt u de thermostaat af te drukken een statusupdate naar seriële elke 5 seconden (dat kan worden bekeken met behulp van PuTTy te loggen op de poort voor de thermostaat) geschreven. In het algemeen moet DBGCHAT worden ingesteld op 0, tenzij je het nodig voor foutopsporing.

#define WDT 0 - inschakelen (1) in- of uitschakelen (0) de horloge hond timer (wellicht beter uitschakelen voor het opsporen van fouten, maar om bij het uitvoeren van het best)

#define FAHRENHEIT 1 – verandering op 0 als u wilt dat de temperatuur in celsius

Er zijn ook een hoop basisgewicht van lijn 159 variabelen die wanneer de Auxiliary hitte schakelt in en uit automatisch vanwege het vermeende onvermogen van de belangrijkste warmtepomp bepalen te houden. Deze waarden, evenals de functie aux_heat_cntrl(), controle van de ondersteunende warmte en speciale aandacht verdienen.

Op het tabblad Rfx_config.h, zult u moeten overstappen #define BOARD_ID 110 op het knooppuntnummer van elke thermostaat voor programmeren die thermostaat. Bijvoorbeeld, als u een thermostaat tat die u wilt worden van knooppunt 127 programmeert, moet dit lezen #define BOARD_ID 127. ID_STRING is een naam die de RFX systeem voor dit knooppunt gebruiken onder dit, maar het hoeft niet te koppelen terug naar alle andere delen van het systeem. Ik vond het gemakkelijkste is gewoon om lijnen in hier voor al mijn thermostaten en vervolgens commentaar degene die ik niet op dat moment programmeren ben.

Op het tabblad Touchscreen #define TEMP_MOVE 10 vertelt de thermostaat hoeveel tienden van een graad aan elke keer veranderen als de ingestelde temperatuur een pijl wordt geduwd omhoog of omlaag (maar als je met een enkele waarde dan veelvouden van 10, zult u waarschijnlijk wilt wijzigen van de ingestelde temperatuurweergave decimale waarden wilt weergeven).

Zodra dit alles is gebeurd haak de ISP tot uw thermostaat (voorzichtig van de oriëntatie), kies bestand/uploaden met behulp van programmeur, en programma van de thermostaat.

Nu kunt u spelen met haar en test het uit grondig om ervoor te zorgen dat deze zich gedraagt zoals verwacht. Ook, probeer de website te veranderen van het programma van de temperatuur en de instellingen wijzigen om te zien of dat alles lijkt te werken zoals verwacht.

Creëren van een programma van de temperatuur met de web-pagina

Nu is het tijd om het programma van de temperatuur op de thermostaat ingesteld, en het is zeer eenvoudig. Aan de bovenkant van de pagina, selecteert u de thermostaat gewenste programma en of dit programma is voor verwarming of koeling. Negeer de knoppen verzenden en ophalen-u verzenden wanneer u klaar bent met het programma, en ophalen in het bestaande programma trekt, maar er nog geen bestaande programma is.

De kleinere doos met de tijd en Temp koppen, voert u in de tijd van de dag wanneer een periode moet beginnen en de temperatuur voor die periode. Bijvoorbeeld, als je wilde de thermostaat om het huis te verwarmen tot 70 graden om 6 uur en laat als cool eigen tot 60 graden om 9 pm, voert u twee rijen in dit vak:

6:00 70

21:00 60

(sorry, ik heb niet geïmplementeerd de notatie am/pm hier). Schakel vervolgens de selectievakjes hieronder voor de dagen die u wilt gebruiken dit schema (of gebruik de keuzerondjes om te selecteren van meerdere dagen tegelijk zoals ma – vr), en klik op Update. Uw planning moet worden weergegeven in de grotere neer hieronder. Natuurlijk kunt u ook gewoon elke dag handmatig invoeren in het onderste vak als je wilt.

Wanneer het schema zoals u wilt eruitziet, klik op de verzendknop. Nu, als u op deze pagina terugkomen en klik op ophalen (voor dezelfde thermostaat en dezelfde verwarming of koeling van de instelling), moet het vullen het schema dus kan gemakkelijk zie je precies hoe je elke dag geprogrammeerd.

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