- Wymagany materiał
- Schemat obwodu
- Przekaźnik:
- Obliczanie temperatury za pomocą termistora:
- Kod Arduino
- Działanie systemu automatyki domowej z kontrolą temperatury:
Przypuśćmy, że siedzisz w pokoju i czujesz zimno i chcesz, aby grzejnik był automatycznie włączany, a następnie wyłączany po pewnym czasie, gdy temperatura w pomieszczeniu jest podwyższona, a ten projekt pomoże Ci automatycznie sterować urządzeniami gospodarstwa domowego w zależności od temperatury. Tutaj kontrolujemy domowe urządzenia AC za pomocą Arduino na podstawie temperatury. Tutaj użyliśmy Termistora do odczytu temperatury. Połączyliśmy już Thermistor z Arduino i wyświetliliśmy temperaturę na LCD.
W tym samouczku podłączymy urządzenie AC z przekaźnikiem i utworzymy system automatyki domowej z kontrolą temperatury za pomocą Arduino. Pokazuje również temperaturę i stan urządzenia na wyświetlaczu LCD 16 * 2 podłączonym do obwodu.
Wymagany materiał
- Arduino UNO
- Przekaźnik (5 v)
- Wyświetlacz LCD 16 * 2
- Żarówka (CFL)
- Termistor NTC 10k
- Przewody łączące
- Rezystory (1k i 10k omów)
- Potencjometr (10k)
Schemat obwodu
Ten oparty na temperaturze system automatyki domowej składa się z różnych elementów, takich jak płyta Arduino, wyświetlacz LCD, przekaźnik i termistor. Praca zależy głównie od przekaźnika i termistora, ponieważ temperatura wzrośnie przekaźnik zostanie załączony i jeśli temperatura spadnie poniżej zadanej wartości to przekaźnik wyłączy się. Urządzenie gospodarstwa domowego połączone z przekaźnikiem również odpowiednio się włączy i wyłączy. Tutaj użyliśmy żarówki CFL jako urządzenia AC. Cały proces wyzwalania i ustawianie wartości temperatury odbywa się za pomocą zaprogramowanej płytki Arduino. Daje nam również szczegółowe informacje o zmianie temperatury co pół sekundy i stanie urządzenia na ekranie LCD.
Przekaźnik:
Przekaźnik to przełącznik elektromagnetyczny, który jest sterowany małym prądem i służy do włączania i wyłączania stosunkowo większego prądu. Oznacza to, że przykładając mały prąd, możemy włączyć przekaźnik, który pozwala na przepływ znacznie większego prądu. Przekaźnik jest dobrym przykładem sterowania urządzeniami AC (prądu przemiennego) przy użyciu znacznie mniejszego prądu stałego. Powszechnie stosowany jest przekaźnik pojedynczy Polak dwukrotnie Rzuć (SPDT) Przekaźnik, ma pięć zacisków, jak poniżej:
W przypadku braku napięcia na cewce, COM (wspólny) jest podłączony do NC (styk normalnie zamknięty). Kiedy na cewkę przyłożone jest napięcie, wytwarza się pole elektromagnetyczne, które przyciąga zworę (dźwignia połączona ze sprężyną) oraz COM i NO (styk normalnie otwarty), co pozwala na przepływ większego prądu. Przekaźniki dostępne są w wielu wersjach, tutaj zastosowaliśmy przekaźnik napięcia roboczego 5V, który umożliwia przepływ prądu 7A-250VAC.
Przekaźnik jest konfigurowany za pomocą małego obwodu sterownika, który składa się z tranzystora, diody i rezystora. Tranzystor służy do wzmacniania prądu tak, aby pełny prąd (ze źródła prądu stałego - bateria 9V) mógł przepływać przez cewkę i w pełni ją zasilać. Rezystor służy do zapewnienia polaryzacji tranzystora. Dioda służy do zapobiegania wstecznemu przepływowi prądu, gdy tranzystor jest wyłączony. Każda cewka indukcyjna wytwarza równe i przeciwne pole elektromagnetyczne po nagłym wyłączeniu, co może spowodować trwałe uszkodzenie komponentów, dlatego należy użyć diody, aby zapobiec prądowi wstecznemu. Moduł przekaźnikowy jest łatwo dostępne na rynku, ze wszystkimi jego układu napędowego na płycie lub można go utworzyć za pomocą wyżej składników. Tutaj zastosowaliśmy moduł przekaźnika 5 V.
Obliczanie temperatury za pomocą termistora:
Z obwodu dzielnika napięcia wiemy, że:
V wy = (V we * Rt) / (R + Rt)
Zatem wartość Rt będzie wynosić:
Rt = R (Vin / Vout) - 1
Tutaj Rt będzie rezystancją termistora (Rt), a R będzie rezystorem 10 kΩ.
Równanie to służy do obliczenia rezystancji termistora na podstawie zmierzonej wartości napięcia wyjściowego Vo. Możemy uzyskać wartość napięcia Vout z wartości ADC na pinie A0 Arduino, jak pokazano w kodzie Arduino podanym poniżej.
Obliczanie temperatury na podstawie rezystancji termistora
Matematycznie rezystancję termistora można obliczyć tylko za pomocą równania Stein-Harta.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Gdzie A, B i C to stałe, Rt to rezystancja termistora, a ln reprezentuje logarytm.
Stała wartość dla termistora użytego w projekcie to A = 1,009249522 × 10-3, B = 2,378405444 × 10-4, C = 2,019202697 × 10-7. Te stałe wartości można uzyskać z kalkulatora tutaj, wprowadzając trzy wartości rezystancji termistora przy trzech różnych temperaturach. Możesz uzyskać te stałe wartości bezpośrednio z arkusza danych termistora lub możesz uzyskać trzy wartości rezystancji w różnych temperaturach i uzyskać wartości stałych za pomocą podanego kalkulatora.
Zatem do obliczenia temperatury potrzebujemy tylko wartości rezystancji termistora. Po uzyskaniu wartości Rt z powyższego obliczenia wstaw wartości do równania Steina-harta, a otrzymamy wartość temperatury w Kelwinach. Ponieważ występuje niewielka zmiana napięcia wyjściowego, powoduje zmianę temperatury.
Kod Arduino
Pełny kod Arduino dla tego sprzętu domowego z kontrolowaną temperaturą znajduje się na końcu tego artykułu. Tutaj wyjaśniliśmy kilka jego części.
Do wykonywania operacji matematycznych używamy pliku nagłówkowego „#include
#zawierać
Aby skonfigurować przekaźnik (jako wyjście) i wyświetlacz LCD w momencie startu, musimy napisać kod w pustej części konfiguracji
Void setup () {lcd.begin (16,2); lcd.clear (); pinMode (PRZEKAŹNIK, WYJŚCIE); }
Aby obliczyć temperaturę za pomocą równania Stein-Harta przy użyciu rezystancji elektrycznej termistora, wykonujemy proste równanie matematyczne w kodzie, jak wyjaśniono w powyższym obliczeniu:
float a = 1,009249522e-03, b = 2,378405444e-04, c = 2,019202697e-07; float T, logRt, Tf, Tc; float Thermistor (int Vo) {logRt = log (10000,0 * ((1024,0 / Vo-1))); T = (1.0 / (a + b * logRt + c * logRt * logRt * logRt)); // Otrzymujemy wartość temperatury w kelwinach z równania Steina-Harta Tc = T - 273,15; // Zamień kelwin na stopnie Celsjusza Tf = (Tc * 1.8) + 32.0; // Konwertuj Kelvina na Fahrenheita return T; }
W poniższym kodzie funkcja termistor odczytuje wartość z pinu analogowego Arduino i drukuje wartość temperatury wykonując operację matematyczną
lcd.print ((Thermistor (analogRead (0))));
Wartość ta jest pobierana przez funkcję termistora, a następnie rozpoczyna się drukowanie
pływakowy termistor (int Vo)
Musimy napisać kod warunku włączania i wyłączania światła w zależności od temperatury, ponieważ ustawiamy wartość temperatury, tak jak jeśli temperatura wzrośnie o więcej niż 28 stopni Celsjusza, światła się włączą lub jeśli mniej światła pozostaną wyłączone. Więc za każdym razem, gdy temperatura przekroczy 28 stopni, musimy ustawić pin PRZEKAŹNIKA (PIN 8) w stan wysoki, aby włączyć moduł przekaźnika. A gdy temperatura spadnie poniżej 28 stopni, musimy ustawić pin RELAY na niski, aby wyłączyć moduł przekaźnika.
if (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Light status: ON"), delay (500); else if (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Light status: OFF"), opóźnienie (500);
Działanie systemu automatyki domowej z kontrolą temperatury:
Aby dostarczyć zasilanie do Arduino, możesz zasilić go przez USB do laptopa lub podłączyć adapter 12v. Wyświetlacz LCD jest połączony z Arduino w celu wyświetlania wartości temperatury, termistor i przekaźnik są podłączone zgodnie ze schematem obwodu. Pin analogowy (A0) służy do sprawdzania napięcia na pinie termistora w każdym momencie i po obliczeniu z równania Stein-Harta poprzez kod Arduino jesteśmy w stanie uzyskać temperaturę i wyświetlić ją na LCD w stopniach Celsjusza i Fahrenheita.
Wraz ze wzrostem temperatury o więcej niż 28 stopni Celsjusza Arduino włącza moduł przekaźnika, ustawiając pin 8 w stanie WYSOKIM (gdzie jest podłączony moduł przekaźnika), gdy temperatura spadnie poniżej 28 stopni, Arduino wyłącza moduł przekaźnika, ustawiając pin LOW. Żarówka CFL będzie również włączać się i wyłączać zgodnie z modułem przekaźnika.
Ten system może być bardzo przydatny w projekcie wentylatora sterowanego temperaturą i automatycznego regulatora temperatury AC.
Sprawdź również nasze wiele typów projektów automatyki domowej wykorzystujących różne technologie i mikrokontrolery, takie jak: