INHOUDSOPGAWE:
- Stap 1: Konfigurasie
- Stap 2: Relays instel
- Stap 3: Histerese -beheerder
- Stap 4: PID -beheerder
- Stap 5: Boodskapbus
- Stap 6: Libs
Video: Termostaat gebaseer op Arduino: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Hierdie keer gaan ons 'n termostaat bou op grond van Arduino, temperatuursensor en relais. U kan dit op github vind
Stap 1: Konfigurasie
Die hele opset word in Config.h gestoor. U kan PIN's verander wat relais, leestemperatuur, drempels of tydsberekeninge beheer.
Stap 2: Relays instel
Kom ons neem aan dat ons 3 relais wil hê:
- ID: 0, PIN: 1, temperatuur setpoint: 20
- ID: 1, PIN: 10, temperatuur setpoint: 30
- ID: 2, PIN: 11, temperatuur setpoint: 40
U moet eers seker maak dat die PIN van u keuse nog nie geneem is nie. Alle penne kan gevind word in Config.h, dit word gedefinieer deur veranderlikes wat begin met DIG_PIN.
U moet Config.h wysig en PIN's, drempels en hoeveelheid relais opstel. Uiteraard bestaan daar reeds 'n paar eiendomme, dus u moet dit net wysig.
const static uint8_t DIG_PIN_RELAY_0 = 1; const static uint8_t DIG_PIN_RELAY_1 = 10; const static uint8_t DIG_PIN_RELAY_2 = 11;
const static uint8_t RELAYS_AMOUNT = 3;
const static int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const static int16_t RELAY_TEMP_SET_POINT_2 = 40;
Nou moet ons relais en kontroleerder instel, dit gebeur in RelayDriver.cpp
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Stap 3: Histerese -beheerder
Dit is die een wat in die voorbeeld hierbo gekies is, en dit het min ekstra konfigurasies:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minute konstant statiese uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS gee wag tyd om die volgende aflos oor te skakel. Stel u voor dat die konfigurasie uit ons voorbeeld in 'n omgewing van 40 grade sal begin werk. Dit sal lei tot die moontlikheid van al drie relais op dieselfde tyd. Dit kan uiteindelik lei tot 'n hoë kragverbruik - afhangende van wat u beheer, verbruik die elektriese enjin byvoorbeeld meer krag tydens die aanvang. In ons geval het die skakelaar die volgende skakel: eerste relais gaan, wag 5 minute, tweede gaan aan, wag 5 minute, derde gaan aan.
RHC_RELAY_MIN_SWITCH_MS definieer histerese, dit is die minimum frekwensie vir 'n spesifieke relais om die toestand daarvan te verander. Sodra dit aan is, bly dit vir ten minste hierdie tydperk aan, sonder om temperatuurveranderinge te ignoreer. Dit is baie handig, aangesien u elektriese motors beheer, aangesien elke skakelaar 'n negatiewe uitwerking op lewendige tyd het.
Stap 4: PID -beheerder
Dit is 'n gevorderde onderwerp. Die implementering van so 'n kontroleerder is 'n eenvoudige taak; om die regte amplitude -instellings te vind, is 'n ander storie.
Om die PID -beheerder te kan gebruik, moet u initRelayHysteresisController (…..) verander na initRelayPiDController (….) en u moet die regte instellings daarvoor vind. Soos gewoonlik vind u dit in Config.h
Ek het 'n eenvoudige simulator in Java geïmplementeer, sodat dit moontlik is om die resultate te visualiseer. Dit kan gevind word in die gids: pidsimulator. Hieronder kan u simulasies sien vir twee beheerders PID 'n P. PID is nie heeltemal stabiel nie, want ek het geen gesofistikeerde algoritme toegepas om die regte waardes te vind nie.
Op albei plotte is die vereiste temperatuur ingestel op 30 (blou). Huidige temperatuur dui leeslyn aan. Relais het twee toestande AAN en UIT. As dit geaktiveer is, daal die temperatuur met 1,5, as dit uitgeskakel word, styg dit met 0,5.
Stap 5: Boodskapbus
Verskillende sagtewaremodules moet met mekaar kommunikeer, hopelik nie beide kante nie;)
Byvoorbeeld:
- statistiekmodule moet weet wanneer 'n spesifieke aflos aan en af gaan,
- Deur op 'n knoppie te druk, moet die inhoud van die skerm verander word, en die dienste moet opskort word wat baie CPU -siklusse sal verbruik, byvoorbeeld temperatuurlesing vanaf sensor,
- na 'n geruime tyd moet die temperatuurlesing hernu word,
- en so aan….
Elke module is gekoppel aan Message Bus en kan vir spesifieke geleenthede registreer en kan enige gebeurtenisse produseer (eerste diagram).
Op die tweede diagram kan ons die gebeurtenisvloei sien deur op die knoppie te druk.
Sommige komponente het 'n paar take as wat periodiek uitgevoer moet word. Ons kan hul ooreenstemmende metodes vanaf die hooflus noem, aangesien ons Message Bus het, is dit slegs nodig om die regte gebeurtenis (derde diagram) te versprei
Stap 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Aanbeveel:
Nest -termostaat, opsporing van besetting: 12 stappe
Nest -termostaat, gebruiksopsporing: my outomatiese verkoeling by die huis met my Nest -termostaat is tot onlangs deur IFTTT bestuur deur Life360 se "eerste om by die huis aan te kom" " en " laaste om die huis te verlaat " snellers. Dit was wonderlik, want ek kon familielede by my Li voeg
Slimme termostaat ESP8266: 6 stappe (met foto's)
Slimme termostaat ESP8266: Bienvenue sur ce nouvel -artikel. On se retrouve aujourd'hui pour un projet que j'ai réalisé durant tout ce temps libre que m'a offert le confinement. Ce projet m'a été proposé par mon père, en effet il vient de déménager dans une vieille maison et l
LapStat - die laptop -termostaat: 6 stappe
LapStat - die skootrekenaartermostaat: LapStat is die termostaat vir u skootrekenaar! Dit gebruik twee temperatuursensors aan elke kant van u skootrekenaar om die temperatuur van u skootrekenaar te meet. Dan beheer dit die snelheid van twee waaiers om u rekenaar af te koel. Die aanhangers is sterker as die
Arduino Kombucha -termostaat: 3 stappe (met foto's)
Arduino Kombucha -termostaat: ek was nog altyd lief vir Kombucha, maar in die winkel is dit so duur. Teen ongeveer $ 4 per 12 oz. ek kan dit nie bekostig om dit soveel te drink as wat ek wou nie. Ek het probeer om my eie kombucha te maak en besef dat dit glad nie so moeilik was nie, en dit het nie nodig gehad nie
Arduino HVAC Servo -termostaat/beheerder: 5 stappe (met foto's)
Arduino HVAC Servo Thermostat/Controller: Welkom by my 'groen' instruksies! Ek gaan jou wys hoe om 'n Arduino, twee servomotors, 'n temperatuursensor en metaal (of hout) te gebruik om 'n digitale termostaat vir 'n deur-muur HVAC-eenheid te maak. Volgens CB Richard Ellis ('n belangrike werklike