Obsah:
- Krok 1: Konfigurace
- Krok 2: Konfigurace relé
- Krok 3: Regulátor hystereze
- Krok 4: PID regulátor
- Krok 5: Sběrnice zpráv
- Krok 6: Libs
Video: Termostat založený na Arduinu: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Tentokrát budeme stavět termostat založený na Arduinu, teplotním senzoru a relé. Najdete na github
Krok 1: Konfigurace
Celá konfigurace je uložena v Config.h. Můžete změnit PINy ovládající relé, teplotu čtení, prahové hodnoty nebo časování.
Krok 2: Konfigurace relé
Předpokládejme, že bychom chtěli mít 3 relé:
- ID: 0, PIN: 1, žádaná teplota: 20
- ID: 1, PIN: 10, žádaná teplota: 30
- ID: 2, PIN: 11, žádaná teplota: 40
Nejprve se musíte ujistit, že vámi zvolený PIN již není zadán. Všechny piny lze nalézt v Config.h, jsou definovány proměnnými začínajícími DIG_PIN.
Musíte upravit Config.h a nakonfigurovat PINy, prahové hodnoty a počet relé. Některé vlastnosti již zjevně existují, takže je musíte pouze upravit.
const static uint8_t DIG_PIN_RELAY_0 = 1; const static uint8_t DIG_PIN_RELAY_1 = 10; konstantní 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;
Nyní musíme nastavit relé a ovladač, to se děje v 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
Krok 3: Regulátor hystereze
Je to ten, který byl vybrán v příkladu výše, má několik dalších konfigurací:
konstantní uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minutesconst static uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS dává čekací dobu na přepnutí dalšího relé. Představte si, že konfigurace z našeho příkladu by začala fungovat v prostředí 40 stupňů. To by mělo za následek povolení všech tří relé současně. To by nakonec mohlo vést k vysoké spotřebě energie - v závislosti na tom, co ovládáte, spotřebuje například elektrický motor při startu více energie. V našem případě mají spínací relé následující tok: první relé sepne, počkejte 5 minut, druhé sepne, počkáte 5 minut, třetí sepne.
RHC_RELAY_MIN_SWITCH_MS definuje hysterezi, je to minimální frekvence pro konkrétní relé ke změně stavu. Jakmile je zapnutý, zůstane zapnutý ještě alespoň tuto dobu, přičemž ignoruje změny teploty. To je velmi užitečné, protože ovládáte elektromotory, protože každý spínač má negativní dopad na živý čas.
Krok 4: PID regulátor
Toto je pokročilé téma. Implementace takového ovladače je jednoduchý úkol, najít správné nastavení amplitudy je jiný příběh.
Abyste mohli používat PID regulátor, musíte změnit initRelayHysteresisController (…..) na initRelayPiDController (….) A musíte pro něj najít správná nastavení. Jako obvykle je najdete v Config.h
Implementoval jsem jednoduchý simulátor v Javě, takže je možné vizualizovat výsledky. Lze jej nalézt ve složce: pidsimulator. Níže vidíte simulace pro dva řadiče PID a P. PID není dokonale stabilní, protože jsem nepoužil žádný sofistikovaný algoritmus k nalezení správných hodnot.
Na obou grafech je požadovaná teplota nastavena na 30 (modrá). Aktuální teplota indikuje čtecí řádek. Relé má dva stavy ZAP a VYP. Když je povolena, teplota klesne o 1,5, když je deaktivována, stoupne o 0,5.
Krok 5: Sběrnice zpráv
Různé softwarové moduly spolu musí komunikovat, doufejme, že ne oběma způsoby;)
Například:
- statistický modul musí vědět, kdy se určité relé zapíná a vypíná,
- stisknutím tlačítka se změní obsah zobrazení a také se musí pozastavit služby, které by spotřebovaly mnoho cyklů CPU, například čtení teploty ze senzoru,
- po určité době je třeba odečítání teploty obnovit,
- a tak dále….
Každý modul je připojen ke sběrnici zpráv a může se registrovat pro konkrétní události a může vytvářet jakékoli události (první diagram).
Na druhém diagramu vidíme tok událostí po stisknutí tlačítka.
Některé součásti mají některé úkoly, než je třeba provádět pravidelně. Mohli bychom volat jejich odpovídající metody z hlavní smyčky, protože máme Message Bus, je nutné pouze šířit správnou událost (třetí diagram)
Krok 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Doporučuje:
Telefon založený na Arduinu (prototyp): 7 kroků
Telefon založený na Arduinu (prototyp): Dobrý den, dnes se v tomto instruktážním videu podíváme na telefon založený na Arduinu. Jedná se o prototyp telefonu, který je stále ve vývoji. Zdrojový kód je opensource, kdokoli může kód upravit. Funkce v telefonu: 1. Hudba 2. Videa 3
Plotter na vejce založený na Arduinu: 17 kroků (s obrázky)
Arduino Based Egg Plotter: An Egg plotter je umělecký robot, který dokáže kreslit na kulovité objekty, jako jsou vejce. Pomocí tohoto stroje můžete také kreslit na ping pongové míčky a golfové míčky. Můžete použít svou fantazii s návrhy, které jste na ni dali, například byste mohli udělat
Systém třídění barev: Systém založený na Arduinu se dvěma pásy: 8 kroků
Systém třídění barev: Systém založený na Arduinu se dvěma pásy: Přeprava a/nebo balení produktů a položek v průmyslové oblasti se provádí pomocí linek vyrobených pomocí dopravníkových pásů. Tyto pásy pomáhají přesouvat předmět z jednoho bodu do druhého určitou rychlostí. Některé úlohy zpracování nebo identifikace mohou být
DIY - Parkovací asistent založený na Arduinu V2: 6 kroků
DIY - Parkovací asistent založený na Arduinu V2: Když vám život dá banány !!!!! Prostě je snězte. Nutnost je matkou vynálezů a já tuto skutečnost nepopírám. Upřímně řečeno, je to podruhé, co jsem narazil do zdi naší garáže, protože jsme se přestěhovali do tohoto nového domu. To je ono, nebylo by t
Zavlažovací systém založený na Arduinu: 8 kroků
Arduino Based Irrigation System: Contextualização O Brasil está entre os paises com maior área irrigada do planeta e em cinco anos esta área pode crescer 65%, segundo estudo da Organização das Nações Unidas para a Alimentação e a Agricultura (FAO). Možný směr a