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.