- Gerekli malzemeler:
- Çalışma Metodolojisi:
- Ön koşullar:
- AC Uzaktan Kumandanın Çalışması:
- Devre Şeması ve Açıklaması:
- AC Uzaktan Sinyallerinizin kodunu çözme:
- Ana Arduino Programı:
- Otomatik AC Sıcaklık Kontrol Sisteminin Çalışması:
Bir zamanlar lüks bir eşya olarak kabul edilen ve sadece büyük otellerde, sinema salonlarında, restoranlarda vb. Bulunan bir AC (Klima)… kış ve buna sahip olanlar, ortak bir şey hakkında endişelenirler. Yani yüksek elektrik sarfiyatları ve bundan dolayı şarj cihazları. Bu projede AC sıcaklığını Oda sıcaklığına göre otomatik olarak değiştirerek elektrik şarj cihazlarını en aza indirebilecek küçük bir Otomatik Sıcaklık Kontrol Devresi yapacağız. Ayarlanan sıcaklığı periyodik olarak değiştirerek, AC'nin daha düşük sıcaklık değerlerinde uzun süre çalışmasını önleyebilir ve böylece daha az güç tüketmesini sağlayabiliriz.
Çoğumuz, gün boyunca rahat etmemizi sağlamak için Klimanın ayarlanan sıcaklığını günün farklı zamanlarında farklı değerlere değiştirmemiz gereken bir durum yaşardık. Bu işlemi otomatikleştirmek için bu proje, odanın mevcut sıcaklığını okuyan bir Sıcaklık sensörü (DHT11) kullanır ve bu değere dayanarak, AC'nin Uzaktan Kumandasına benzer bir IR blaster aracılığıyla AC'ye komutlar gönderir. AC, Uzaktan Kumandasına tepki veriyormuş gibi bu komutlara tepki verecek ve böylece sıcaklığı ayarlayacaktır. Odanızın sıcaklığı değiştikçe, Arduino, sıcaklığınızı tam olmasını istediğiniz şekilde korumak için AC'nizin ayarlanan sıcaklığını da ayarlayacaktır. Kulağa hoş geliyor değil mi?… Nasıl yapacağımızı görelim.
Gerekli malzemeler:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 Sıcaklık / Nem Sensörü
- Herhangi bir Renkli LED ve 1K Direnç (isteğe bağlı)
- Breadboard
- Kabloların Bağlanması
Çalışma Metodolojisi:
Evimizdeki TV, Ev Sineması, AC vb. Kontrol etmek için kullandığımız tüm Uzaktan Kumandalar IR Blasters yardımıyla çalışır. Bir IR blaster, bir sinyali tekrarlayan darbelerle patlatabilen bir IR LED'den başka bir şey değildir; bu sinyal, elektronik cihazdaki alıcı tarafından okunacaktır. Uzaktan kumandadaki her farklı düğme için, alıcı tarafından okunduktan sonra önceden tanımlanmış belirli bir görevi gerçekleştirmek için kullanılan benzersiz bir sinyal patlatılacaktır. Uzaktan kumandadan gelen bu sinyali okuyabilirsek, o belirli görevi gerçekleştirmek için gerektiğinde bir IR LED kullanarak aynı sinyali taklit edebiliriz. Daha önce Universal IR Remote için bir IR Blaster devresi yaptık.
Bir TSOP uzaktan kumandalar gelen sinyalin kodunu çözmek üzere kullanılabileceği bir IR alıcısıdır. Bu Alıcı, her düğme için sinyal vermek üzere Arduino ile arayüzlenecek ve ardından gerektiğinde sinyali taklit etmek için Arduino ile bir IR Led kullanılacaktır. Bu şekilde Arduino'yu kullanarak AC'mizi kontrol edebiliriz.
Şimdi, kalan tek şey DHT11 kullanarak Sıcaklık değerini okumak ve AC'ye IR sinyallerini kullanarak buna göre talimat vermektir. Projenin daha çekici ve kullanıcı dostu görünmesini sağlamak için mevcut Sıcaklık, Nem ve AC ayar sıcaklığını gösteren bir OLED ekran da ekledim. OLED'i Arduino ile kullanma hakkında daha fazla bilgi edinin.
Ön koşullar:
Bu Otomatik AC Sıcaklık Kontrol Cihazı projesi, başlangıç seviyesi için biraz ileri düzeydedir, ancak diğer birkaç öğreticinin yardımıyla herkes bunu zamanla inşa edebilir. Öyleyse OLED, DHT11 veya TSOP konusunda mutlak bir acemiyseniz, temel bilgileri ve bunlara nasıl başlayacağınızı öğrenebileceğiniz aşağıdaki eğitimlere geri dönün. Liste biraz uzun görünebilir, ancak bana güvenin, kolay ve öğrenmeye değer, ayrıca birçok yeni projeye kapı açacaktır.
- TSOP ve IR LED kullanan temel devre çalışmalarının altına
- Arduino ile DHT11 için temel arayüz kılavuzu
- Arduino ile OLED için temel arayüz kılavuzu
- IR uzak değerlerini okumak için TSOP'yi Arduino ile arayüzleme
Kod boyutu ağır olduğu için Arduino Mega ve diğer herhangi bir Arduino sürümüne sahip olduğunuzdan emin olun. Ayrıca, aşağıdaki bağlantıdan kurmadıysanız, aşağıdaki Arduino kitaplıklarını önceden kurup kurmadığınızı da kontrol edin.
- TSOP ve IR Blaster için IR Uzak Kitaplığı
- OLED için Adafruit Kütüphanesi
- OLED için GFX Grafik Kitaplığı
- Sıcaklık sensörü için DHT11 Sensör Kitaplığı
AC Uzaktan Kumandanın Çalışması:
Projeye devam etmeden önce biraz zaman ayırın ve AC uzaktan kumandanızın nasıl çalıştığını görün. AC uzaktan kumandalar, TV, DVD IR uzaktan kumandalara kıyasla biraz daha farklı çalışır. Uzaktan kumandanızda yalnızca 10-12 düğme olabilir, ancak çok sayıda farklı sinyal türü gönderebilirler. Yani Uzaktan Kumanda, aynı düğme için her seferinde aynı kodu göndermiyor. Örneğin, sıcaklığı 24 ° C (Santigrat derece) yapmak için aşağı düğmesini kullanarak sıcaklığı düşürdüğünüzde, bir dizi veri içeren bir sinyal alırsınız, ancak 25 ° C'yi ayarlamak için tekrar bastığınızda aynı değeri alamazsınız. sıcaklık şu anda 24 değil 25 olduğundan verilerdir. Benzer şekilde 25'in kodu farklı fan hızları, uyku ayarları vb. için de değişecektir. Bu yüzden tüm seçeneklerle uğraşmayalım ve sadece diğer ayarlar için sabit bir değere sahip sıcaklık değerlerine odaklanalım.
Diğer bir sorun, her düğmeye basıldığında gönderilen veri miktarıdır, normal uzaktan kumandalar 24 bit veya 48 bit gönderebilir, ancak bir AC uzaktan kumanda 228 bit'e kadar gönderebilir çünkü her sinyal Sıcaklık, Fan Hızı, Uyku zamanlaması, Swing stili vb. Daha iyi depolama seçenekleri için bir Arduino Mega'ya ihtiyacımızın nedeni budur.
Devre Şeması ve Açıklaması:
Neyse ki bu Otomatik AC Sıcaklık Kontrol Projesinin donanım kurulumu çok kolaydır. Basitçe bir devre tahtası kullanabilir ve aşağıda gösterildiği gibi bağlantıları yapabilirsiniz.
Aşağıdaki tablo, bağlantılarınızı doğrulamak için de kullanılabilir.
S.No: |
Bileşen Pimi |
Arduino Pimi |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED-SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, Veri |
3 |
5 |
OLED-RES, RST, RESET |
7 |
6 |
OLED-DC, A0 |
5 |
7 |
OLED-CS, Çip Seçimi |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Sinyal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - Anot |
9 |
14 |
IR Led - Katot |
Gnd |
Bağlantılar tamamlandıktan sonra aşağıda gösterildiği gibi görünmelidir. İşleri düzenlemek için bir Breadboard kullandım, ancak tüm bileşenleri doğrudan bağlamak için Erkek-dişi kabloları da kullanabilirsiniz.
AC Uzaktan Sinyallerinizin kodunu çözme:
AC'nizi kontrol etmenin ilk adımı, AC Uzaktan Kumanda IR Kodlarını çözmek için TSOP1738'i kullanmaktır. Tüm bağlantıları devre şemasında gösterildiği gibi yapın ve belirtilen tüm kitaplıkları kurduğunuzdan emin olun. Şimdi Dosya -> Örnekler -> IRremote -> IRrecvDumpV2'de bulunabilen örnek programı “ IRrecvDumpV2 ” açın . Programı Arduino Mega'nıza yükleyin ve Seri Monitörü açın.
Uzaktan Kumandanızı TSOP'a doğru tutun ve herhangi bir düğmeye basın, her düğmeye bastığınız Sinyal TSOP1738 tarafından okunacak, Arduino tarafından kodu çözülecek ve Seri Monitörde görüntülenecektir. Uzaktan Kumandanızdaki her sıcaklık değişikliği için farklı bir Veri alacaksınız. Ana programımızda kullanacağımız için bu Verileri kaydedin. Seri monitörünüz böyle bir şeye benzeyecek, kopyalanan verileri kaydettiğim Word dosyasını da gösterdim.
Ekran görüntüsü, AC uzaktan kumandam için sıcaklığı 26 ° C'ye ayarlama kodunu gösterir. Uzaktan Kumandanıza bağlı olarak farklı bir kod seti alacaksınız. Tüm farklı sıcaklık seviyeleri için kodları benzer şekilde kopyalayın. Sen edebilirsiniz Arduino Kanununda tüm Klima Uzaktan kumanda IR kodları kontrol bu yazının sonunda verilen.
Ana Arduino Programı:
Komple ana Arduino programı bu sayfanın alt kısmında bulunabilir, ancak aynı programı kullanamazsınız. Yukarıdaki Örnek çizimden az önce elde ettiğimiz Sinyal kodu değerlerini değiştirmelisiniz. Arduino IDE'nizdeki ana programı açın ve aşağıda gösterilen bu alana gidin ve burada dizi değerlerini Remote'unuz için elde ettiğiniz değerlerle değiştirin.
Gerisi 8 farklı sıcaklık ayarlamak için kullanılırken, ikisi AC'yi AÇMAK ve KAPATMAK için 10 Dizi kullandığımı unutmayın. Örneğin Temp23, AC'nizde 23 ° C'yi ayarlamak için kullanılır, bu nedenle bu Dizideki ilgili kodu kullanın. Bunu yaptıktan sonra, kodu Arduino'nuza yüklemeniz ve AC'nizin karşısına yerleştirmeniz ve Cool Breeze'in keyfini çıkarmanız yeterlidir.
Kodun açıklaması aşağıdaki gibidir, önce Sıcaklık ve Nemi okumak ve OLED'de görüntülemek için DHT1 sıcaklık sensörünü kullanmalıyız. Bu, aşağıdaki kodla yapılır.
DHT.read11 (DHT11_PIN); // Temp and Humidity Measured_temp = DHT.temperature + temp_error'u okuyun; Measured_Humi = DHT.humidity; // metin görüntüleme testleri display.setTextSize (1); display.setTextColor (BEYAZ); display.setCursor (0,0); display.print ("Sıcaklık:"); display.print (Ölçülen_temp); display.println ("C"); display.setCursor (0,10); display.print ("Nem:"); display.print (Measured_Humi); display.println ("%");
Odanın sıcaklığını öğrendikten sonra, onu istenen değerle karşılaştırmamız yeterlidir. İstenilen bu değer programımda 27 ° C (Derece Santigrat) olarak ayarlanan sabit bir değerdir. Bu karşılaştırmaya dayanarak, aşağıda gösterildiği gibi karşılık gelen bir AC sıcaklığı ayarlayacağız.
if (Measured_temp == Desired_temperature + 3) // AC AÇIK ise ve ölçülen sıcaklık istenenden çok yüksekse {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // 24 * C AC_Temp = 24 için sinyal gönder; }
Burada Ölçülen sıcaklık 30 ° C olduğunda AC 24 ° C'ye ayarlanacaktır (çünkü istenen sıcaklık 27'dir). Benzer şekilde, aşağıda gösterildiği gibi ölçülen sıcaklığa bağlı olarak farklı sıcaklık seviyeleri ayarlamak için birçok If döngüsü oluşturabiliriz.
if (Measured_temp == Desired_temperature-1) // AC AÇIK ise ve ölçülen sıcaklık istenen değerden düşükse {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // 28 * C AC_Temp = 28 setine sinyal gönder; } if (Measured_temp == Desired_temperature-2) // AC AÇIK ise ve ölçülen sıcaklık istenen değerden çok düşükse {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // 29 * C AC_Temp = 29 setine sinyal gönder; } if (Measured_temp == Desired_temperature-3) // AC AÇIK ise ve ölçülen sıcaklık çok çok düşükse istenen değer {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // 30 * C AC_Temp = 30 için sinyal gönder; }
Otomatik AC Sıcaklık Kontrol Sisteminin Çalışması:
Kodunuz ve donanımınız hazır olduğunda, Kodu Panonuza Yükleyin ve OLED'in buna benzer bir şey gösterdiğini fark etmelisiniz.
Şimdi devreyi Klimanızın karşısına yerleştirin ve AC'nin sıcaklığının oda sıcaklığına göre kontrol edildiğini fark edeceksiniz. Sen de gösterildiği gibi AC'nin sıcaklık kontrollü olup olmadığını kontrol etmek DHT11 sensörüne yakın artan sıcaklık deneyebilirsiniz aşağıda video.
İstediğiniz eylemi gerçekleştirmek için programı değiştirebilirsiniz; tek ihtiyacınız olan, örnek çizimden elde ettiğiniz koddur. Umarım bu Otomatik Sıcaklık Kontrol Cihazı projesini anlamışsınızdır ve çok benzer bir şey yapmaktan keyif almışsınızdır. Burada takılıp kalabileceğiniz çok yer olduğunu biliyorum ama endişelenmeyin. Sorununuzu açıklamak için forumu veya yorum bölümünü kullanın ve buradaki kişiler kesinlikle sorunu çözmenize yardımcı olacaktır.