Tartalomjegyzék:
- 1. lépés: Konfiguráció
- 2. lépés: A relék konfigurálása
- 3. lépés: Hiszterézis szabályozó
- 4. lépés: PID vezérlő
- 5. lépés: Üzenetbusz
- 6. lépés: Libs
Videó: Arduino alapú termosztát: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ezúttal egy termosztátot építünk az Arduino, a hőmérséklet -érzékelő és a relé alapján. Megtalálható a github -on
1. lépés: Konfiguráció
A teljes konfigurációt a Config.h tárolja. Módosíthatja a reléket, az olvasási hőmérsékletet, a küszöbértékeket vagy az időzítéseket vezérlő PIN -kódokat.
2. lépés: A relék konfigurálása
Tegyük fel, hogy 3 relét szeretnénk:
- ID: 0, PIN: 1, Hőmérséklet alapjel: 20
- ID: 1, PIN: 10, Hőmérséklet alapjel: 30
- ID: 2, PIN: 11, Hőmérséklet alapjel: 40
Először győződjön meg arról, hogy a választott PIN -kódot még nem vette fel. Minden csap megtalálható a Config.h -ban, ezeket a DIG_PIN -vel kezdődő változók határozzák meg.
Módosítania kell a Config.h -t, és be kell állítania a PIN -kódokat, a küszöbértékeket és a relék mennyiségét. Nyilvánvaló, hogy néhány tulajdonság már létezik, ezért csak szerkeszteni kell őket.
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;
Most be kell állítanunk a reléket és a vezérlőt, ez történik a RelayDriver.cpp fájlban
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
3. lépés: Hiszterézis szabályozó
Ezt választotta a fenti példában, kevés további konfigurációval rendelkezik:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 perces statikus uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
A RELAY_DELAY_AFTER_SWITCH_MS várakozási időt ad a következő relé kapcsolására. Képzelje el, hogy a példánkból származó konfiguráció 40 fokos környezetben kezd működni. Ez azt eredményezné, hogy mindhárom relé egyszerre engedélyezhető. Ez végül nagy áramfogyasztáshoz vezethet - attól függően, hogy mit vezérel, például az elektromos motor több energiát fogyaszt az indítás során. Esetünkben a kapcsolórelék a következő áramlást mutatják: az első relé megy, várjon 5 percet, a második megy tovább, várjon 5 percet, a harmadik tovább.
Az RHC_RELAY_MIN_SWITCH_MS definiálja a hiszterézist, ez az a minimális frekvencia, amely az adott relé állapotának megváltoztatásához szükséges. Ha be van kapcsolva, akkor legalább ennyi ideig bekapcsolva marad, figyelmen kívül hagyva a hőmérsékletváltozásokat. Ez csendes, hasznos, ha elektromos motorokat vezérel, mivel minden kapcsoló negatív hatással van az élő időre.
4. lépés: PID vezérlő
Ez egy fejlett téma. Egy ilyen vezérlő megvalósítása egyszerű feladat, a megfelelő amplitúdó beállítások megtalálása más történet.
A PID vezérlő használatához az initRelayHysteresisController (…..) értéket az initRelayPiDController (…) formátumra kell cserélnie, és meg kell találnia a megfelelő beállításokat. Szokás szerint ezeket a Config.h oldalon találja
Egy egyszerű szimulátort valósítottam meg a Java -ban, hogy az eredmények láthatóvá váljanak. Ez a mappában található: pidsimulator. Az alábbiakban két PID és P kontroller szimulációit láthatja. A PID nem tökéletesen stabil, mert nem használtam kifinomult algoritmust a megfelelő értékek megtalálásához.
Mindkét parcellán a kívánt hőmérséklet 30 (kék). Az aktuális hőmérséklet az olvasási sort jelzi. A relének két állapota van BE és KI. Ha engedélyezve van, a hőmérséklet 1,5 -gyel csökken, kikapcsolt állapotban pedig 0,5 -rel emelkedik.
5. lépés: Üzenetbusz
A különböző szoftvermoduloknak kommunikálniuk kell egymással, remélhetőleg nem mindkét irányban;)
Például:
- a statisztikai modulnak tudnia kell, hogy mikor kapcsol be és ki az adott relé,
- egy gomb megnyomásával meg kell változtatni a kijelző tartalmát, és fel kell függesztenie azokat a szolgáltatásokat is, amelyek sok CPU -ciklust fogyasztanak, például a hőmérséklet -leolvasást az érzékelőből,
- egy idő után meg kell újítani a hőmérsékletet,
- stb….
Minden modul csatlakozik az Üzenetbuszhoz, és regisztrálhat bizonyos eseményekre, és bármilyen eseményt előállíthat (első diagram).
A második diagramon láthatjuk az eseményfolyamot a gomb megnyomására.
Egyes összetevőknek bizonyos feladataik vannak, mint amelyeket rendszeresen végre kell hajtani. Hívhatjuk a megfelelő módszereket a főhurokból, mivel van üzenetüzenetünk, csak a megfelelő esemény propagálására van szükség (harmadik diagram)
6. lépés: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Ajánlott:
Nest termosztát, foglaltságkövetés: 12 lépés
Nest termosztát, foglaltságkövetés: A Nest termosztátomat használó otthoni hűtőautomatizálásomat a közelmúltig az IFTTT működtette a Life360 "elsőként hazaérkező" segítségével. és " utoljára elmenni otthonról " kiváltókat. Ez nagyszerű volt, mert hozzá tudtam adni családtagjaimat a Li -hez
Arduino alapú érintésmentes infravörös hőmérő - IR alapú hőmérő Arduino használatával: 4 lépés
Arduino alapú érintésmentes infravörös hőmérő | IR alapú hőmérő Arduino használatával: Sziasztok, ebben az útmutatóban, érintésmentes hőmérőt készítünk arduino segítségével. Mivel néha a folyadék/szilárd anyag hőmérséklete túl magas vagy alacsony, majd nehéz kapcsolatba lépni vele és elolvasni ilyenkor a hőmérséklet
Időjárás alapú zenegenerátor (ESP8266 alapú Midi generátor): 4 lépés (képekkel)
Időjárás alapú zenegenerátor (ESP8266 alapú Midi generátor): Szia, ma elmagyarázom, hogyan készíts saját kis időjárás alapú zenegenerátort. Ez egy ESP8266 -on alapul, ami olyan, mint egy Arduino, és reagál a hőmérsékletre, az esőre és fényintenzitás. Ne várd el, hogy teljes dalokat vagy akkordprogramokat készítsen
Arduino Kombucha termosztát: 3 lépés (képekkel)
Arduino Kombucha termosztát: Mindig is szerettem a Kombucha -t, de a boltban olyan drága. Körülbelül 4 dollár 12 oz -onként. semmi esetre sem engedhettem meg magamnak, hogy annyit igyak, amennyit akartam. Elgondolkodtam a saját kombucha készítésén, és rájöttem, hogy ez egyáltalán nem olyan nehéz, és nem igényel
Arduino HVAC szervo termosztát/vezérlő: 5 lépés (képekkel)
Arduino HVAC szervo termosztát/vezérlő: Üdvözöllek a "zöld" utasításomban! Megmutatom, hogyan használhatsz egy Arduino-t, két szervomotort, egy hőmérséklet-érzékelőt és néhány fémet (vagy fát), hogy digitális termosztátot készítsen egy átmenő HVAC egységhez. A CB szerint Richard Ellis (nagy valóságos