Spisu treści:
- Krok 1: Konfiguracja
- Krok 2: Konfiguracja przekaźników
- Krok 3: Kontroler histerezy
- Krok 4: Regulator PID
- Krok 5: Magistrala wiadomości
- Krok 6: Libs
Wideo: Termostat oparty na Arduino: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Tym razem zbudujemy Termostat w oparciu o Arduino, czujnik temperatury i przekaźnik. Znajdziesz na github
Krok 1: Konfiguracja
Cała konfiguracja jest przechowywana w Config.h. Możesz zmieniać PINy sterujące przekaźnikami, odczytywaniem temperatury, progów lub czasów.
Krok 2: Konfiguracja przekaźników
Załóżmy, że chcielibyśmy mieć 3 przekaźniki:
- ID:0, PIN: 1, Nastawa temperatury: 20
- ID:1, PIN: 10, Nastawa temperatury: 30
- ID:2, PIN: 11, Nastawa temperatury: 40
Najpierw upewnij się, że wybrany przez Ciebie PIN nie jest już zajęty. Wszystkie piny znajdują się w Config.h, są one definiowane przez zmienne zaczynające się od DIG_PIN.
Musisz edytować Config.h i skonfigurować PINy, progi i ilość przekaźników. Oczywiście niektóre właściwości już istnieją, więc wystarczy je edytować.
const static uint8_t DIG_PIN_RELAY_0 = 1;const static uint8_t DIG_PIN_RELAY_1 = 10; const statyczny uint8_t DIG_PIN_RELAY_2 = 11;
const statyczny uint8_t RELAYS_AMOUNT = 3;
const statyczny int16_t RELAY_TEMP_SET_POINT_0 = 20;
const statyczny int16_t RELAY_TEMP_SET_POINT_1 = 30; const statyczny int16_t RELAY_TEMP_SET_POINT_2 = 40;
Teraz musimy skonfigurować przekaźniki i kontroler, dzieje się to w 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: Kontroler histerezy
To ten wybrany w powyższym przykładzie, ma kilka dodatkowych konfiguracji:
const statyczny uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minutesconst static uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS podaje czas oczekiwania na przełączenie kolejnego przekaźnika. Wyobraź sobie, że konfiguracja z naszego przykładu zacznie działać w środowisku 40 stopni. Spowodowałoby to jednoczesne włączenie wszystkich trzech przekaźników. Może to ostatecznie prowadzić do wysokiego zużycia energii - w zależności od tego, czym sterujesz, na przykład silnik elektryczny zużywa więcej mocy podczas rozruchu. W naszym przypadku przełączanie przekaźników przebiega następująco: pierwszy przekaźnik załącza, odczekaj 5 minut, drugi załącza, odczekaj 5 minut, trzeci załącza.
RHC_RELAY_MIN_SWITCH_MS określa histerezę, czyli minimalną częstotliwość zmiany stanu danego przekaźnika. Po włączeniu pozostanie włączony przynajmniej przez ten czas, ignorując zmiany temperatury. Jest to bardzo przydatne, gdy sterujesz silnikami elektrycznymi, ponieważ każdy przełącznik ma negatywny wpływ na czas życia.
Krok 4: Regulator PID
To jest zaawansowany temat. Zaimplementowanie takiego kontrolera jest proste, a znalezienie odpowiednich ustawień amplitudy to już inna historia.
Aby korzystać z kontrolera PID należy zmienić initRelayHysteresisController(…..) na initRelayPiDController(….) i znaleźć dla niego odpowiednie ustawienia. Jak zwykle znajdziesz je w Config.h
Zaimplementowałem prosty symulator w Javie, dzięki czemu możliwe jest wizualizowanie wyników. Można go znaleźć w folderze: pidsimulator. Poniżej można zobaczyć symulacje dla dwóch regulatorów PID i P. PID nie jest idealnie stabilny, ponieważ nie zastosowałem żadnego wyrafinowanego algorytmu, aby znaleźć właściwe wartości.
Na obu działkach wymagana temperatura jest ustawiona na 30 (kolor niebieski). Aktualna temperatura wskazuje linię odczytu. Przekaźnik ma dwa stany ON i OFF. Gdy jest włączony temperatura spada o 1,5, gdy jest wyłączony wzrasta o 0,5.
Krok 5: Magistrala wiadomości
Różne moduły oprogramowania muszą się ze sobą komunikować, miejmy nadzieję, że nie w obie strony;)
Na przykład:
- moduł statystyk musi wiedzieć, kiedy dany przekaźnik włącza się i wyłącza,
- naciśnięcie przycisku ma zmienić zawartość wyświetlacza, a także zawiesić usługi, które pochłaniałyby wiele cykli procesora, np. odczyt temperatury z czujnika,
- po pewnym czasie odczyt temperatury należy powtórzyć,
- i tak dalej….
Każdy moduł jest podłączony do magistrali komunikatów i może rejestrować się na określone zdarzenia oraz może generować dowolne zdarzenia (pierwszy diagram).
Na drugim diagramie widzimy przebieg zdarzenia po naciśnięciu przycisku.
Niektóre komponenty mają pewne zadania, które muszą być wykonywane okresowo. Moglibyśmy wywoływać odpowiadające im metody z pętli głównej, ponieważ mamy magistralę komunikatów, wystarczy tylko propagować właściwe zdarzenie (trzeci diagram)
Krok 6: Libs
- https://github.com/maciejmiklas/Termostat
- https://github.com/milesburton/Arduino-Temperatura…
- https://github.com/maciejmiklas/ArdLog.git
Zalecana:
Web ?Symulator Arduino oparty na Wokwi-2020?: 5 kroków
Web ?Based Arduino Simulator From Wokwi-2020?: Wokwi Arduino Simulator działa na platformie AVR8js. Jest to internetowy symulator Arduino. Arduino Simulator działa w przeglądarce internetowej. w związku z tym zyskuje więcej uwagi i szczerze mówiąc, ma wiele pozytywnych punktów w porównaniu z innymi dostępnymi symulatorami
Telefon oparty na Arduino (prototyp): 7 kroków
Telefon oparty na Arduino (prototyp): Witam wszystkich, Dzisiaj w tej instrukcji zobaczymy o telefonie opartym na arduino. Ten telefon jest prototypem, który wciąż jest w fazie rozwoju. Kod źródłowy jest opensource, każdy może modyfikować kod. Funkcje w telefonie:1. Muzyka 2. Filmy 3
Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków
Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane przez Google Home i Alexę): Ten projekt opisuje, jak stworzyć oparty na Arduino, sterowany głosem przełącznik przekaźnika IOT. Jest to przekaźnik, który możesz włączać i wyłączać zdalnie za pomocą aplikacji na iOS i Androida, a także powiązać go z IFTTT i sterować nim za pomocą głosu za pomocą Goog
Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków
Kontroler gier DIY oparty na Arduino | Kontroler gier Arduino PS2 | Granie w Tekken z DIY Arduino Gamepad: Witajcie, granie w gry jest zawsze zabawne, ale granie z własnym niestandardowym kontrolerem do gier jest przyjemniejsze. Dlatego stworzymy kontroler do gier za pomocą arduino pro micro w tej instrukcji
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro