İçindekiler:
Video: Akıllı Ev Termostatı: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Akıllı Ev Termostatımız, kişinin tercihlerine göre otomatik olarak bir evin parasını elektrik faturalarından kurtarabilen bir programdır.
1. Adım: Genel Bakış
Akıllı Ev Termostatı, evin sıcaklığını almak için bir sıcaklık sensörü kullanır. Bu sıcaklık okuması, istenen ev sahibinin sıcaklığına göre klima sisteminin evi ısıtması veya soğutması gerekip gerekmediğine karar vereceği programa konur.
Termostat için iki mod vardır: manuel ve otomatik. Evin sıcaklığını istenilen sıcaklığa ayarlayacak olan manuel mod, kullanıcı tarafından ayarlanır. Ve termostatın otomatik modu, evin sıcaklığını otomatik olarak kullanıcı tarafından önceden ayarlanmış sıcaklıklara değiştirecektir. Otomatik mod için iki sıcaklık ayarı olacaktır: uzak sıcaklık ve mevcut sıcaklık. Uzak sıcaklık, kullanıcı evde olmadığında termostatı önceden ayarlanmış bir enerji tasarrufu sıcaklığına değiştirerek enerji tasarrufu yapmak için kullanılır. Mevcut sıcaklık, kullanıcı evdeyken ve rahat bir sıcaklık istediğinde kullanılacaktır. Termostatın otomatik modundayken, hareket sensörleri evde birinin olup olmadığını belirlemek için aktif olarak hareketi arar. Okumalarına bağlı olarak, ev sıcaklığı ya uzaktaki sıcaklığa ya da mevcut sıcaklığa ayarlanacaktır.
Adım 2: Parçalar ve Malzemeler
(15) Atlama Telleri
(4) 220 Ohm Dirençler
(1) 10K Ohm Direnç
(1) Sıcaklık Sensörü
(1) Fotoğraf Direnci
(1) DAGU Mini DC Şanzıman
(1) diyot
(1) Transistör
(1) Fotodirenç
(1) ekmek tahtası
(1) Arduino MKR
Adım 3: Devre
Şekil 1 = Büyük Sol resim
Şekil 2 = Sağ Üst
Şekil 3 = Orta Sağ
Şekil 4 = Sağ Alt
Şekil 1
Yukarıdaki şemayı kullanarak üç LED'imizin her birini bağladık. Büyük bir ekmek tahtası ile çalıştığımız için her bir LED'i ayırdık. Daha küçük ekmek tahtaları için LED'leri birbirine yaklaştırmak gerekebilir. Ayrıca LED'ler çok az güç çektiği için devre tahtasına güç vermek gereksizdir. LED'ler için breadboard üzerindeki 5V bağlantısını kullanmadık. LED'lerden Arduino'muza her bağlantı yukarıdaki yeşil kablo gibi yapılmıştır. Kırmızı, mavi ve yeşil LED'lerimiz, resmimizde kırmızı, mavi ve yeşil kablo ile gösterilen Dijital Pin 8, 9 ve 10'a bağlıdır.
şekil 2
Yukarıdaki şema, fotodirenci bağlamak için kullanıldı. Kendimize göre birkaç düzeltme yaptık; ancak kavramlar hala aynı. Fotodirenç, A1 piminde sahip olduğumuz bir analog pime bağlanmalıdır. Fotorezistöre en yakın direnç için 10K ohm'luk bir direnç kullandığınızdan emin olun.
Figür 3
Bu, sıcaklık sensörünü bağlamak için kullanılan şemadır. Burada kullanılan transistörü sıcaklık sensörü ile karıştırmayın. Neredeyse aynı görünüyorlar. Sıcaklık sensörü muhtemelen sensörün düz tarafında yazılı TMP veya başka bir komut dosyasına sahip olacaktır. Buradaki kablolama çok basittir, sıcaklık sensörümüz beyaz bir kabloyla analog pin A0'a takılır.
Şekil 4
Yukarıdaki resim DAGU Mini DC Şanzımanı bağlamak için kullanıldı. Şanzımana bağlı olan yeşil tel aslında bizim resmimizde ona bağlı olan kırmızı teldir. Bizim modelimizde şanzıman dijital pin 11'e turuncu bir tel ile bağlanmıştır. Burada kullanılan transistörü sıcaklık sensörü ile karıştırmayın. Neredeyse aynı görünüyorlar. Sıcaklık sensörü muhtemelen sensörün düz tarafında yazılı TMP veya başka bir komut dosyasına sahip olacaktır. Burada sıcaklık sensörünü değil, transistörü kullanmalısınız.
Adım 4: Arduino Kodu
Burada, kodun en önemli kısımları açıklanmıştır. Kod sadece burada verilenlerle çalışmayacaktır. Tam çalışma kodunu almak için sayfanın altında bir bağlantı var.
Programlanabilir termostatın kodunu oluştururken, yaptığınız ilk şeylerden biri sensörleri kurmak ve sıcaklık sensöründen sürekli olarak sıcaklık okumaları alacak bir for döngüsü oluşturmaktır.
Sıcaklık Sensörü ve LED'i Ayarlama:
tempPin = 'A0';%voltajı sıcaklığa çeviren isimsiz fonksiyon tempCfromVolts = @(volt) (volt-0.5)*100; örneklemeSüresi = 5; %saniye. Örnekleme için ne kadar süre örneklemek istiyoruzInterval = 1; %Sıcaklık okumaları arasında kaç saniye var %örnekleme zamanlarının vektörünü ayarlayın örneklemeZamanı = 0:samplingInterval:samplingDuration; %süre ve aralığa göre örnek sayısını hesapla numSamples = length(samplingTimes); %preallocate temp değişkenleri ve depolayacağı okuma sayısı için değişken tempC = sıfırlar(numSamples, 1); tempF = tempC; %Sıcaklık okumalarının önceden belirlenmiş bir sayısını almak için bu sefer bir for döngüsü kullanacağız
for döngüsü:
indeks = 1:numSamples için %tempPin'deki voltajı okuyun ve değişken voltlarda saklayın volts = readVoltage(a, tempPin); tempC(indeks) = -1*tempCfromVolts(volt+0.3); tempF(indeks) = tempC(indeks)*(9/5)+32; %O anki sıcaklık okumasını bildiren biçimlendirilmiş çıktı fprintf('%d saniyedeki sıcaklık %5.2f C veya %5.2f F.\n', … sampleTimes(index), tempC(index), tempF(index)); %not edin, bu görüntü çıktısı, kodu düz bir komut dosyası mfile'sine kopyalayıp yapıştırmadığınız sürece, kod yürütüldükten sonra yalnızca bir kerede görünür hale gelir. duraklama(samplingInterval) sonraki numune sonuna kadar %delay
Ardından, Termostat'ı Manuel veya Otomatik moda alıp almayacağınıza karar vermesi için kullanıcı menümüzü oluşturuyoruz. Kullanıcı iki seçenekten birini seçmezse de bir hata kodu oluştururuz.
Manuel mod menüsü, kullanıcının termostat sıcaklığı için bir sayı ayarlamasını gerektirir, ardından okumalara göre evi ısıtır, evi soğutur veya boşta kalır. Kodun bu bölümünü ayarlamak için, sıcaklık sensöründen gelen sıcaklık okumalarını kullandınız ve sıcaklık okuması ayarlanan sıcaklıktan yüksek olduğunda evi soğutacak ve sıcaklık okuması ayarlanan sıcaklıktan daha düşük olduğunda evi ısıtacak bir kod oluşturdunuz.
Sıcaklık okumalarına sahip olduğunuzda, sıcaklık okuması ayarlanan sıcaklıktan daha yüksek olduğunda termostata evi soğutmasını ve sıcaklık okuması ayarlanan sıcaklıktan daha düşük olduğunda evi ısıtmasını söyleyecek kodu oluşturabilirsiniz. Prototip için, termostatın soğuması gerektiğinde mavi ışık, termostatın ısınması gerektiğinde kırmızı ışık yanar.
Menü Kurulumu:
seçenekler = {'Otomatik', 'Manuel'};imode = menu('Mod', seçenekler) if imode>0 h=msgbox(['Seçimleri seçtiniz{imode}]); else h=warndlg('Seçim yapmadan menüyü kapattınız') end waitfor(h);
Manuel mod, kullanıcının termostat için bir sıcaklık girmesini gerektirir, ardından sıcaklık sensöründen gelen okumalara dayanarak, ya evi ısıtmak için evi soğutmaya başlar. Sıcaklık sensörünün okuması ayarlanan sıcaklıktan yüksekse, evi soğutmaya başlayacaktır. Sıcaklık sensörünün okuması ayarlanan sıcaklıktan düşükse, evi ısıtır.
Manuel mod başlayacaktır:
if imode == 2 dlg_prompts = {'Hangi sıcaklığı tercih edersiniz?'}; dlg_title = 'Sıcaklık'; dlg_defaults = {'68'}; opts. Resize = 'açık'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Inputdlg komutunu iptal ettiniz'); else temp_manual = str2double(dlg_ans{1}) %[Sıcaklık Düzenleme Ayarı slaytını aşağıya ekleyin] end
Manuel mod için if ifadesinin içinde, kullanıcının istediği ev sıcaklığını seçmesi için menü arayüzünü yazmanız ve ardından ev sıcaklığını düzenleyecek bir while ifadesi uygulamanız gerekir.
Sıcaklık Düzenleme Kurulumu:
while temp_manual < tempF writeDigitalPin(a, 'D9', 1) writeDigitalPin(a, 'D11', 1); end while temp_manual > tempF writeDigitalPin(a, 'D8', 1) writeDigitalPin(a, 'D11', 1); son
Otomatik mod, manuel moddan daha fazla giriş gerektirir. Otomatik moda girdikten sonra kullanıcı termostatı için bir Normal ve bir Uzak sıcaklık ayarlayacaktır. Bunları seçtikten sonra termostatın hangi modda olduğuna bağlı olarak tekrar sıcaklık düzenleme moduna geçecektir.
Otomatik modu ayarlayın:
elseif imode == 1 dlg_prompts = {'Normal', 'Dışarıda'}; dlg_title = 'Sıcaklık Ayarları'; dlg_defaults = {'68', '64'}; opts. Resize = 'açık'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Inputdlg komutunu iptal ettiniz'); else temp_normal = str2double(dlg_ans{1}) temp_away = str2double(dlg_ans{2}) end waitfor(h); %[Hareket Dedektörü Adımını aşağıya ekleyin]
Otomatik mod ayarları için de hareket sensörünü kurmamız gerekiyor. Hareket dedektörü hareketi aldığında, sıcaklığı mevcut sıcaklık ayarında tutacaktır, aksi takdirde uzak sıcaklık ayarına geçecektir.
Run_Motion_Detector(a, inf) while lightStr == 0 temp = temp_away while tempF writeDigitalPin(a, 'D6', 1) ayrıca fan için motorda pin kırmızı ışığı ne olursa olsun writeDigitalPin(a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin(a, 'D6', 1) %değiştir normal ışık hangi pinde ise temp tempF writeDigitalPin(a, 'D6', 1) pin kırmızı ışığı da ne olursa olsun fan için motor writeDigitalPin(a, 'D9', 1); son son
Kodun tamamı burada bulunabilir.
Önerilen:
Oda Termostatı - Arduino + Ethernet: 3 Adım
Oda Termostatı - Arduino + Ethernet: Donanım olarak proje kullanımları: Arduino Uno / Mega 2560 Ethernet kalkanı Wiznet W5100 / Ethernet modülü Wiznet W5200-W5500 DS18B20 OneWire bus üzerindeki sıcaklık sensörü Röle SRD-5VDC-SL-C kazan için kullanılır anahtarlama
LapStat - Dizüstü Bilgisayar Termostatı: 6 Adım
LapStat - Dizüstü Bilgisayar Termostatı: LapStat, dizüstü bilgisayarınızın termostatıdır! Dizüstü bilgisayarınızın sıcaklığını ölçmek için dizüstü bilgisayarınızın her iki tarafı için iki sıcaklık sensörü kullanır. Ardından, bilgisayarınızı soğutmak için iki fanın hızını kontrol eder. Taraftarlar sizden daha güçlü
HestiaPi Touch - Akıllı Termostatı Açın: 9 Adım (Resimlerle)
HestiaPi Touch - Açık Akıllı Termostat: HestiaPi Touch HakkındaHestiaPi Touch, eviniz için tamamen açık kaynaklı bir akıllı termostattır. Tüm dijital dosya ve bilgiler aşağıda ve ana web sitemizde mevcuttur. Bununla evinizin sıcaklığını, bağıl nemini ve atmosferini takip edebilirsiniz
ESP8266 WiFi Dokunmatik Ekran Termostatı (EasyIoT Cloud): 4 Adım
ESP8266 WiFi Dokunmatik Ekran Termostatı (EasyIoT Cloud): Bu eğitimde WiFi dokunmatik ekranlı termostatın nasıl oluşturulacağını göstereceğiz. ESP8266 WiFi dokunmatik ekranlı termostat, ESP8266, Arduino Mega 2560 ve TFT 3.2" tarafından oluşturulan karmaşık sensör örnekleridir; dokunmatik ekran. Termostat EasyIoT'ye bağlı
Arduino Kombucha Termostatı: 3 Adım (Resimli)
Arduino Kombucha Termostatı: Kombucha'yı her zaman sevmişimdir, ancak mağazada çok pahalıdır. 12 oz başına yaklaşık 4 dolar. İstediğim kadar içmeye gücüm yetmezdi. Kendi kombuchamı yapmaya baktım ve hiç de zor olmadığını ve herhangi bir şey gerektirmediğini fark ettim