İnsan etkileşiminin minimum olduğu ve her şeyin otomatik veya uzaktan kontrol edilebildiği 'Otomasyon' kelimesine hepimiz aşinayız. Ev otomasyonu Elektronik alanında çok popüler ve zorlu bir kavramdır ve biz de bu konsepti Elektronik Projeleri olarak kolayca anlaşılır ve yönetilebilir hale getirmek için elimizden gelenin en iyisini yapıyoruz. Daha önce , çalışan bir Video ve Kod ile birkaç tür Ev Otomasyon Projesi geliştirdik, lütfen kontrol edin:
- DTMF Tabanlı Ev Otomasyonu
- Arduino kullanarak GSM Tabanlı Ev Otomasyonu
- Arduino ile PC Kontrollü Ev Otomasyonu
- 8051 kullanarak Bluetooth Kontrollü Ev Otomasyonu
- Arduino kullanarak IR Uzaktan Kontrollü Ev Otomasyonu
Ve bu projede, bir sonraki ev otomasyon projemizi, MATLAB ve Arduino, Arduino ve MATLAB kullanarak GUI Tabanlı Ev Otomasyon Sistemi olan Arduino kullanarak inşa edeceğiz.
Bileşenler:
- Arduino UNO
- USB kablosu
- ULN2003
- Röle 5 volt
- Tutuculu ampul
- Bağlantı telleri
- Dizüstü bilgisayar
- Güç kaynağı
- PVT
Çalışma Açıklaması:
Bu projede, Ev aletlerini Bilgisayardaki Grafik Kullanıcı Arayüzü aracılığıyla kontrol etmek için Arduino ile MATLAB kullanıyoruz. Burada bilgisayardan (MATLAB) Arduino'ya veri göndermek için kablolu iletişimi kullandık. Bilgisayar tarafında, ev aletlerini kontrol etmek için bazı düğmeler oluşturmak için MATLAB'da GUI kullandık. Arduino ve MATLAB arasındaki iletişim için öncelikle " Arduino için MATLAB ve Simulink Desteği " veya " Arduino IO Paketi " kurmamız gerekiyor. Bunu yapmak için aşağıdaki adımları izleyin veya aşağıdaki videoyu kontrol edin:
- Arduino IO Paketini buradan indirin. İndirmeden önce Kaydolmanız gerekiyor.
- Ardından, adioe.pde dosyasını Arduino IDE kullanarak Arduino'ya yazın / yükleyin. Bu adioe.pde dosyası Arduino IO Paketinde bulunabilir - ArduinoIO \ pde \ adioe \ adioe.pde
- Ardından MATLAB yazılımını açın, Arduino IO klasörüne gidin, install_arduino.m dosyasını açın ve Matlab'da çalıştırın. MATLAB komut penceresinde “Arduino klasörleri eklendi” mesajını göreceksiniz, bu MATLAB yolunun Arduino klasörlerine güncellendiği anlamına gelir.
Bu şekilde Arduino'yu MATLAB ile iletişim kurarız. Yukarıdaki yöntem "MATLAB R2013b veya önceki sürümler" için uygundur, MATLAB'ın daha yüksek sürümünü kullanıyorsanız (R2015b veya R2016a gibi), doğrudan MATLAB'daki Eklentiler Sekmesine tıklayıp ardından "Donanım Destek Paketlerini Al" seçeneğine tıklayabilirsiniz, MATLAB için Arduino paketlerini nereden yükleyebilirsiniz.
Dosyaları yükledikten sonra, artık Ev Otomasyon Projesi için bir GUI oluşturabilirsiniz. Temel olarak GUI'de, ev aletlerini bilgisayardan kontrol etmek için Basma Düğmeleri oluşturuyoruz. MATLAB'da “Yeni” menüsünde “Grafik Kullanıcı Arayüzü” nden girilerek butonlar oluşturulabilir. Ayrıca bu düğmelerin adını ve renklerini ayarlayabiliriz, 8 düğme oluşturduk; bunlardan altı tanesi AÇIK ve KAPALI, üç ev cihazı ve iki düğme tüm cihazları aynı anda AÇIK ve KAPALI konuma getirir.
Şimdi düğmeleri oluşturduktan sonra, o GUI penceresindeki Çalıştır düğmesine tıkladığınızda, sizden bu GUI dosyasını (.fig uzantılı), ' fig dosyası' olarak da bilinen kaydetmenizi isteyecektir. Dosyayı kaydettiğiniz anda, otomatik olarak ' M dosyası' olarak da bilinen (aşağıdaki ekran görüntüsüne bakın) bir kod dosyası (.m uzantılı) oluşturacaktır, burada Kodu koyabilirsiniz (aşağıdaki Kod bölümünde verilmiştir). Bu proje için GUI dosyasını ve Kod dosyasını buradan indirebilirsiniz: Home_Automation_system.fig ve Home_Automation_system.m (sağ tıklayın ve Bağlantıyı farklı kaydet… seçeneğini seçin) veya açıkladığımız gibi bunları kendiniz oluşturabilirsiniz.
Kodlamadan sonra artık.m dosyasını kod penceresinden çalıştırabilirsiniz, komut penceresinde “Bağlanmaya çalışılıyor..” mesajını göreceksiniz. Sonra her şey yolunda giderse “Arduino başarıyla bağlandı” mesajı belirir. Ve son olarak, Bilgisayarınızdaki düğmelere tıklayarak ev aletlerini kontrol edebileceğiniz GUI penceresinde önceden oluşturulmuş GUI (düğmeler) göreceksiniz. Arduino'nun USB kablosuyla Arduino'ya bağlı olduğundan emin olun. Burada bu projede gösteri için Fan, Işık ve TV'yi gösteren 3 ampul kullandık.
Arduino MATLAB destek paketinin kurulumundan cihazı Açma veya Kapatma gibi tüm projenin çalışması, sondaki Videodan anlaşılabilir.
Devre Açıklaması:
Bu projenin devresi çok kolaydır. Burada röleleri sürmek için bir Arduino UNO kartı ve Röle Sürücüsü ULN2003 kullandık. Üç adet 5 voltluk SPDT Rölesi, sırasıyla LIGHT, FAN ve TV'yi kontrol etmek için ULN2003 röle sürücüsü aracılığıyla Arduino pin numarası 3, 4 ve 5'e bağlanır.
Programlama Açıklaması:
GUI penceresinden herhangi bir tuşa bastığımızda Arduino'ya bazı komutlar gönderir ve ardından Arduino bu işlemi yapar. Arduino MATLAB IO destek paketini kurduktan sonra, Arduino'ya MATLAB'den aynı Arduino işlevlerini kullanarak, bazı küçük değişikliklerle, aşağıdaki gibi erişebiliriz:
Arduino'da bir pin YÜKSEK yapmak için kodu digitalWrite (pin, HIGH) olarak yazıyoruz
MATLAB'da bu işlevi bir nesne veya değişken yardımıyla kullanacağız.
ve benzer şekilde.
Bunu yapmadan önce değişkeni şu şekilde başlatmalıyız:
Bu projede Arduino MATLAB destek paket kodu veya dosyası dışında Arduino kodu bulunmamaktadır. Daha önce açıklandığı gibi, GUI dosyası (.fig dosyası) kaydedilirken kod dosyası (.m dosyası) otomatik olarak oluşturulur..M dosyasında önceden yazılmış bir kod var. Temelde bunlar Push butonları için Geri Arama işlevleridir, yani bu Push Butonlara tıklandığında ne olacağını tanımlayabiliriz.
MATLAB kodunda, önce seri portu başlatıp bir değişken kullanarak onu bir nesne haline getiriyoruz. Ve sonra değişkeni kullanarak Arduino gibi programlamaya başlayabiliriz.
açık ar; küresel ar; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
Her düğmenin geri arama işlevinde, Arduino'ya Röle ile bağlanan ilgili Ev Aletlerinin Açılması veya Kapatılması için ilgili kodu yazdık. Örneğin, Light ON için Geri Arama işlevi aşağıda verilmiştir:
function light_on_Callback (hObject, eventdata, handles)% hObject handle to light_on (GCBO'ya bakın)% eventdata ayrıldı - MATLAB'ın gelecekteki bir sürümünde tanımlanacak% tutamaçlar ve kullanıcı verileriyle yapıyı işler (bkz. GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Benzer şekilde, diğer bağlı Ev Aletlerini kontrol etmek için tüm butonların Geri Arama fonksiyonlarındaki kodu yazabiliriz, aşağıdaki MATLAB Kodunun tamamını kontrol edin (.m dosyası).