- Wymagane materiały:
- Metodyka pracy:
- Wymagania wstępne:
- Działanie pilota AC:
- Schemat obwodu i wyjaśnienie:
- Dekodowanie sygnałów zdalnych AC:
- Główny program Arduino:
- Działanie automatycznego systemu kontroli temperatury AC:
AC (klimatyzator), który kiedyś był uważany za przedmiot luksusowy i można go było znaleźć tylko w dużych hotelach, salach filmowych, restauracjach itp… Ale teraz prawie każdy ma klimatyzację w naszym domu, aby pokonać lato / zima i ci, którzy ją mają, martwią się o jedną wspólną rzecz. To jest ich wysokie zużycie energii elektrycznej i ładowarki z tego powodu. W tym projekcie zamierzamy stworzyć mały automatyczny obwód kontroli temperatury, który mógłby zminimalizować liczbę ładowarek energii elektrycznej poprzez automatyczną zmianę temperatury prądu przemiennego na podstawie temperatury w pomieszczeniach. Zmieniając okresowo ustawioną temperaturę, możemy uniknąć sytuacji, w której AC przez długi czas będzie pracował przy niższych temperaturach, a tym samym zużywał mniej energii.
Większość z nas spotkałaby się z sytuacją, w której musielibyśmy zmienić ustawienie temperatury klimatyzatora na różne wartości w różnych porach dnia, aby zapewnić nam wygodę przez cały czas. Aby zautomatyzować ten proces, ten projekt wykorzystuje czujnik temperatury (DHT11), który odczytuje aktualną temperaturę w pomieszczeniu i na podstawie tej wartości wyśle polecenia do klimatyzatora za pośrednictwem nadajnika podczerwieni, podobnego do pilota klimatyzatora. Klimatyzator będzie reagował na te polecenia tak, jakby reagował na pilota, a tym samym dostosuje temperaturę. Gdy zmienia się temperatura w pomieszczeniu, Arduino dostosuje również ustawioną temperaturę klimatyzacji, aby utrzymać temperaturę dokładnie tak, jak chcesz. Brzmi fajnie, prawda?… Zobaczmy, jak go zbudować.
Wymagane materiały:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- Dioda podczerwieni
- Czujnik temperatury / wilgotności DHT11
- Dowolna kolorowa dioda LED i rezystor 1K (opcjonalnie)
- Płytka prototypowa
- Podłączanie przewodów
Metodyka pracy:
Wszystkie piloty zdalnego sterowania w naszym domu, których używamy do sterowania telewizorem, zestawem kina domowego, klimatyzacją itp., Działają z pomocą nadajników podczerwieni. Rotacyjna IR jest tylko dioda LED na podczerwień, które mogą blasterowego sygnału przez powtarzające się pulsowania; sygnał ten zostanie odczytany przez odbiornik w urządzeniu elektronicznym. Dla każdego innego przycisku na pilocie zostanie wyrzucony unikalny sygnał, który po odczytaniu przez odbiornik służy do wykonania określonego, wcześniej zdefiniowanego zadania. Jeśli jesteśmy w stanie odczytać ten sygnał wychodzący z pilota, możemy następnie naśladować ten sam sygnał za pomocą diody podczerwieni, gdy jest to wymagane do wykonania tego konkretnego zadania. Wcześniej wykonaliśmy obwód IR Blaster dla Universal IR Remote.
TSOP to odbiornik podczerwieni, które mogą być użyte do dekodowania sygnału pochodzącego z piloty. Ten odbiornik będzie połączony z Arduino w celu sygnalizowania każdego przycisku, a następnie dioda podczerwieni zostanie użyta z Arduino, aby naśladować sygnał, gdy jest to wymagane. W ten sposób możemy uzyskać kontrolę nad naszym AC za pomocą Arduino.
Teraz pozostaje tylko odczytać wartość temperatury za pomocą DHT11 i odpowiednio poinstruować AC za pomocą sygnałów IR. Aby projekt był bardziej atrakcyjny i przyjazny dla użytkownika, dodałem również wyświetlacz OLED, który wyświetla aktualną temperaturę, wilgotność i ustawioną temperaturę AC. Dowiedz się więcej o używaniu OLED z Arduino.
Wymagania wstępne:
Ten projekt automatycznego regulatora temperatury prądu przemiennego jest nieco zaawansowany na poziomie początkującym, jednak za pomocą kilku innych samouczków każdy może go zbudować z kwestią czasu. Więc jeśli jesteś absolutnym nowicjuszem w OLED, DHT11 lub TSOP, wróć do tych samouczków poniżej, w których możesz nauczyć się podstaw i jak zacząć z nimi. Lista może wydawać się długa, ale uwierz mi, jest łatwa i warta poznania, a także otworzy drzwi do wielu nowych projektów.
- Podstawowy obwód wykorzystujący TSOP i diodę podczerwieni do ich działania
- Podstawowy przewodnik po interfejsach DHT11 z Arduino
- Podstawowy przewodnik po interfejsach OLED z Arduino
- Łączenie TSOP z Arduino w celu odczytu wartości zdalnych IR
Upewnij się, że masz Arduino Mega i dowolną inną wersję Arduino, ponieważ rozmiar kodu jest duży. Sprawdź również, czy masz już zainstalowane następujące biblioteki Arduino, jeśli ich nie zainstalowałeś, z linku poniżej
- Biblioteka zdalna na podczerwień dla TSOP i IR Blaster
- Biblioteka Adafruit dla OLED
- Biblioteka graficzna GFX dla OLED
- Biblioteka czujników DHT11 dla czujnika temperatury
Działanie pilota AC:
Zanim przejdziemy do projektu, poświęć trochę czasu i zwróć uwagę, jak działa pilot AC. Piloty AC działają w nieco inny sposób niż piloty TV, DVD IR. Na twoim pilocie może być tylko 10-12 przycisków, ale będą one w stanie wysyłać wiele różnych typów sygnałów. Oznacza to, że pilot nie wysyła za każdym razem tego samego kodu dla tego samego przycisku. Na przykład, gdy obniżysz temperaturę za pomocą przycisku w dół, aby uzyskać 24 ° C (stopnie Celsjusza), otrzymasz sygnał z zestawem danych, ale po ponownym naciśnięciu, aby ustawić 25 ° C, nie uzyskasz tego samego danych, ponieważ temperatura wynosi teraz 25, a nie 24. Podobnie kod dla 25 będzie się różnić dla różnych prędkości wentylatora, ustawień uśpienia itp. Więc nie bawmy się wszystkimi opcjami i po prostu skoncentrujmy tylko wartości temperatury ze stałą wartością dla innych ustawień.
Innym problemem jest ilość danych, które są wysyłane po każdym naciśnięciu przycisku, zwykłe piloty wysyłają 24 bity lub 48 bitów, ale pilot AC może wysyłać do 228 bitów, ponieważ każdy sygnał zawiera wiele informacji, takich jak temperatura, prędkość wentylatora, Czas snu, styl Swing itp. To jest powód, dla którego potrzebujemy Arduino Mega dla lepszych opcji przechowywania.
Schemat obwodu i wyjaśnienie:
Na szczęście konfiguracja sprzętu tego projektu automatycznej regulacji temperatury AC jest bardzo łatwa. Możesz po prostu użyć płytki prototypowej i wykonać połączenia, jak pokazano poniżej.
Poniższa tabela może również służyć do weryfikacji połączeń.
S.No: |
Pin komponentu |
Pin Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED - SCK, D0, SCL, CLK |
4 |
4 |
OLED - SDA, D1, MOSI, dane |
3 |
5 |
OLED - RES, RST, RESET |
7 |
6 |
OLED - DC, A0 |
5 |
7 |
OLED-CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - sygnał |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
Dioda IR - anoda |
9 |
14 |
Dioda IR - katoda |
Gnd |
Po wykonaniu połączeń powinno wyglądać mniej więcej tak, jak pokazano poniżej. Użyłem Breadboard do porządkowania rzeczy, ale możesz również bezpośrednio podłączyć przewody męskie do żeńskich, aby podłączyć wszystkie komponenty
Dekodowanie sygnałów zdalnych AC:
Pierwszym krokiem do sterowania AC jest użycie TSOP1738 do dekodowania kodów IR pilota zdalnego sterowania AC. Wykonaj wszystkie połączenia zgodnie ze schematem połączeń i upewnij się, że zainstalowałeś wszystkie wspomniane biblioteki. Teraz otwórz przykładowy program „ IRrecvDumpV2 ”, który można znaleźć w Plik -> Przykłady -> IRremote -> IRrecvDumpV2 . Prześlij program do Arduino Mega i otwórz Serial Monitor.
Skieruj pilota w stronę TSOP i naciśnij dowolny przycisk, dla każdego naciśnięcia przycisku odpowiedni sygnał zostanie odczytany przez TSOP1738, zdekodowany przez Arduino i wyświetlony na monitorze szeregowym. Przy każdej zmianie temperatury na pilocie otrzymasz inne dane. Zapisz te dane, ponieważ będziemy ich używać w naszym głównym programie. Twój monitor szeregowy będzie wyglądał mniej więcej tak, pokazałem też plik Worda na którym zapisałem skopiowane dane.
Zrzut ekranu pokazuje kod do ustawienia temperatury na 26 ° C dla mojego pilota AC. W zależności od pilota otrzymasz inny zestaw kodów. Podobnie skopiuj kody dla wszystkich różnych poziomów temperatury. Możesz sprawdzić wszystkie kody IR pilota klimatyzatora w kodzie Arduino podanym na końcu tego samouczka.
Główny program Arduino:
Kompletny program główny Arduino można znaleźć na dole tej strony, ale nie można korzystać z tego samego programu. Musisz zmienić wartości kodu sygnału, które właśnie uzyskaliśmy z powyższego przykładowego szkicu. Otwórz główny program na swoim Arduino IDE i przewiń w dół do tego obszaru pokazanego poniżej, w którym musisz zastąpić wartości tablic wartościami uzyskanymi dla pilota.
Zauważ, że użyłem 10 tablic, z których dwie służyły do włączania i wyłączania klimatyzacji, podczas gdy pozostałe 8 służy do ustawiania innej temperatury. Na przykład Temp23 służy do ustawiania 23 ° C na twoim AC, więc użyj odpowiedniego kodu w tej tablicy. Gdy to zrobisz, wystarczy przesłać kod do Arduino i umieścić go naprzeciwko siebie AC i cieszyć się Cool Breeze.
Objaśnienie kodu wygląda następująco, najpierw musimy użyć czujnika temperatury DHT1 do odczytu temperatury i wilgotności i wyświetlić je na OLED. Odbywa się to za pomocą następującego kodu.
DHT.read11 (DHT11_PIN); // Odczytaj Temp and Humidity Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.humidity; // testy wyświetlania tekstu display.setTextSize (1); display.setTextColor (BIAŁY); display.setCursor (0,0); display.print ("Temperatura:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Wilgotność:"); display.print (Measured_Humi); display.println ("%");
Gdy już znamy temperaturę w pomieszczeniu, wystarczy porównać ją z żądaną wartością. Ta pożądana wartość jest wartością stałą, która w moim programie jest ustawiona na 27 ° C (stopnie Celsjusza). Na podstawie tego porównania ustawimy odpowiednią temperaturę AC, jak pokazano poniżej
if (Measured_temp == Desired_temperature + 3) // Jeśli AC jest włączony, a zmierzona temperatura jest bardzo wysoka niż pożądana {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Wyślij sygnał do zestawu 24 * C AC_Temp = 24; }
Tutaj AC zostanie ustawiony na 24 ° C, gdy zmierzona temperatura wynosi 30 ° C (ponieważ żądana temperatura wynosi 27). Podobnie możemy utworzyć wiele pętli If, aby ustawić inny poziom temperatur w oparciu o zmierzoną temperaturę, jak pokazano poniżej.
if (Measured_temp == Desired_temperature-1) // Jeśli AC jest włączony, a zmierzona temperatura jest niska niż żądana wartość {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Wyślij sygnał do zestawu 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Jeśli AC jest włączony, a zmierzona temperatura jest bardzo niska niż żądana wartość {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Wyślij sygnał do zestawu 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Jeśli AC jest włączony, a zmierzona temperatura jest bardzo niska, żądana wartość {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Wyślij sygnał do ustawienia 30 * C AC_Temp = 30; }
Działanie automatycznego systemu kontroli temperatury AC:
Kiedy kod i sprzęt są gotowe, prześlij kod na swoją tablicę i powinieneś zauważyć, że OLED wyświetla coś podobnego do tego.
Teraz umieść obwód przeciwległy do klimatyzatora, a zauważysz, że temperatura klimatyzacji jest kontrolowana na podstawie temperatury w pomieszczeniu. Możesz spróbować zwiększyć temperaturę w pobliżu czujnika DHT11, aby sprawdzić, czy temperatura klimatyzatora jest kontrolowana, jak pokazano na poniższym filmie.
Możesz dostosować program, aby wykonać dowolną akcję; potrzebujesz tylko kodu uzyskanego z przykładowego szkicu. Mam nadzieję, że zrozumiałeś ten projekt automatycznego regulatora temperatury i podobało Ci się tworzenie czegoś bardzo podobnego. Wiem, że jest tu wiele miejsc, w których można utknąć, ale nie martw się. Po prostu skorzystaj z forum lub sekcji komentarzy, aby wyjaśnić swój problem, a ludzie tutaj z pewnością pomogą Ci go rozwiązać.