İçindekiler:

Arduino Akıllı Ev Sistemi: 7 Adım
Arduino Akıllı Ev Sistemi: 7 Adım

Video: Arduino Akıllı Ev Sistemi: 7 Adım

Video: Arduino Akıllı Ev Sistemi: 7 Adım
Video: Kendi Akıllı Ev Sistemini Kendin Yap | 21 Kanal Akıllı Ev Sistemi |#işbirliği 2024, Temmuz
Anonim
Arduino Akıllı Ev Sistemi
Arduino Akıllı Ev Sistemi
Arduino Akıllı Ev Sistemi
Arduino Akıllı Ev Sistemi

Bu Eğitilebilir Kitapta, MATLAB'ın App Designer'ı ile Sparkfun Red board'lu kendi akıllı ev sisteminizi nasıl oluşturacağınızı göstereceğiz. Bu Eğitilebilir Tablo, bir fotodirenç, servo motor ve bir PIR hareket sensörü kullanmanın yanı sıra MATLAB'ın Uygulama Tasarımcısı hakkında temel bir anlayış kazanmaya yardımcı olmak için kullanılabilir.

Adım 1: Başlamak için: Malzemeler

Bu proje aşağıdaki malzemeleri gerektirir:

- Arduino Uno (Bu proje için Sparkfun Red board kullandık)

- Bir fotorezistör

- Bir mini servo motor

- Bir sürekli servo motor

- Bir PIR hareket sensörü

- Bir sıcaklık sensörü

- 2 LED

- Gerektiğinde teller ve dirençler

Adım 2: Adım 2: Çözülecek Probleme Yaklaşma

Bu projenin temel amacı, bir Arduino Uno kartını MATLAB ile kodlayarak kullanımı kolay bir akıllı ev sistemi oluşturmaktı. İlk önce sadece bir sıcaklık ve nem sensörü ile çalışmayı düşündük, ancak bu iki sensörle kalsaydık akıllı ev sistemimiz genel bir kitleye kolayca pazarlanamazdı. Akıllı termostat ve güvenlik sistemi olarak çalışacak genel bir akıllı ev enerji sistemi oluşturmak istediğimize karar verdik. Son olarak, kullanıcının akıllı evi istediği gibi kolayca değiştirebilmesi için MATLAB'ın AppDesigner'ı ile çalışmak istedik.

Adım 3: Adım 3: GUI'yi ve Temel Kod Akışını Yapılandırma

Adım 3: GUI'yi ve Temel Kod Akışını Yapılandırma
Adım 3: GUI'yi ve Temel Kod Akışını Yapılandırma

Başlamak için MATLABs AppDesigner'ı açmanız ve aşağıdakileri yerleştirmeniz gerekecek:

Sıcak ve soğuk eşik girişi için iki sayısal düzenleme alanı

Kapının kilidini açmak için bir düğme

Şömine, kapı, vantilatör ve projektör için dört gösterge lambası.

Kullanıcıyla iletişim kurmak için iki etiket.

Bu proje için tasarımcı içindeki global değişkenler ve başlatma işleviyle çalışmayı daha kolay bulduk. Başlangıç işlevinde bu değişkenlere ihtiyacınız olacak:

küresel bir

a = arduino('COM3', 'uno', 'Kütüphaneler', 'Servo'); global s global p global hotUI global coldUI global kilidini aç global temp global curr_temp global int_light

Şu anda bilgisayarınızın arduino'yu okuyabilmesi için yalnızca a değişkeni için bir atamamız var. COM3, bilgisayarınızın hangi bağlantı noktasını kullanıyor olabileceğine bağlı olarak farklılık gösterebilir.

Kodu çalıştırdığınızda, global değişkenleri oluşturmaya ve sistemi kalibre etmeye başlama işlevi içinde başlayacaktır. Bu fonksiyonun sonunda Timer adını verdiğimiz bir özelliği çağıran bir timer fonksiyonu olacaktır. Bu Zamanlayıcı özelliği içinde, zamanlayıcının kalibrasyon kodunu yeniden çalıştırmaması için ana sistemi çalıştıran kodu koyarız.

Not: Sistem için herhangi bir kablolama talimatı vermedik. SparkFun Red kartıyla birlikte gelen kılavuza başvurduk.

Adım 4: Adım 3: Termostat Sistemini Ayarlama

Adım 3: Termostat Sistemini Ayarlama
Adım 3: Termostat Sistemini Ayarlama
Adım 3: Termostat Sistemini Ayarlama
Adım 3: Termostat Sistemini Ayarlama

Termostatın işlevi aşağıdaki gibi çalışır:

Kullanıcı, çok sıcak veya çok soğuk olduğunu düşündüğü sıcaklığı girecektir. Termometre bir kez ölçüm yaptığında, ev çok soğuksa "şömine" (kırmızı LED) açılır ve evi ısıtır. Ev çok sıcaksa, bir "fan" (sürekli servo motor) evi soğutmaya başlar.

Termostat sistemini kodlamak için:

Mevcut sıcaklığı görüntülemek ve kullanıcının soğuk ve sıcak eşiklerini girmesine izin vermek için başlatma işlevi içinde başlayacağız.

p = 'A0' %Fotodirenç pimi

volt = okumaVoltaj(a, sıcaklık); Celc = (volt-0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str(curr_temp); %Etiket numarası duraklamayı değiştirebilir(10); Değiştirmek isteyebilirsiniz!!!!!

Ardından Timer özelliği içerisinde termostat sistemini tamamlayacağız.

küresel curr_temp

global coldUI global bir global hotUI ise curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; % GUI lambasını yeşile çevirir writePWMDutyCycle(a, 'D11',.9) %Sonraki üç kod satırı servo fanı duraklatmayı çalıştırır (10) writePWMDutyCycle(a, 'D11',.0) else app. FireplaceStateLamp. Color = [0.90 0.90 0.90]; %Bu, tüm GUI lambalarını ve şömine uygulamasını kapatır. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D13', 0); son

Adım 5: Adım 4: Kapı Sistemini Ayarlama

Adım 4: Kapı Sistemini Ayarlama
Adım 4: Kapı Sistemini Ayarlama

Kapının işlevi aşağıdaki gibi çalışır:

MATLAB kodunuzu ilk çalıştırdığınızda, uygulama sizden kapıyı açmanızı ister, böylece fotorezistör ilk ışık okumasını yapabilir. Bu tamamlandığında, zamanlayıcı etkinleştirilecek ve fotodirenç ikincil ışık okumaları alacaktır. İkincil ışık okuması ilkinden daha hafifse, bir servo motor kapıyı kilitleyecektir. Kullanıcı, kapının kilidinin açılmasını isterse, uygulamadaki kapının kilidini açacak bir düğmeye basabilir.

Servo motoru ve fotodirenci yapılandırmak için:

Kapı sistemini kodlamak için:

İlk ışık okumalarını almak için başlatma fonksiyonu içinde başlayacağız.

s = servo(a, 'D9') %Pin kablolamaya bağlı olarak değişebilir

app. Label_4. Text='Sistemi kalibre etmek için lütfen kapıyı açın'; duraklatma(15); %Bu, kullanıcının kapıyı açması için zaman verir int_light = readVoltage(a, p); app. Label_4. Text = 'Parmağınızı kaldırabilirsiniz';

Ardından, Timer özelliği içindeki kodu tamamlayacağız

küresel kilit açma

global int_light global s global a %Karşılaştırmak için güncel bir ışık okuması alın curr_light = readVoltage(a, p); % -- Kapıyı Kilitle -- eğer int_light<curr_light writePosition(s, 1) %Servo konumları motor duraklamasına göre değişebilir(0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; bitiş % -- Kapının Kilidini Aç -- eğer kilidi aç == 1234 duraklat(0.5); writePosition(s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; son

Sonunda kilit açma düğmesi geri aramasını oluşturacağız. Kullanıcı kilit açma düğmesine bastığında, genel kilit açma değişkenine Timer özelliğindeki son if ifadesini tamamlayabilecek bir sayı atanacaktır.

küresel kilit açma

kilit açma = 1234;

Adım 6: Adım 6: Sel Işık Sisteminin Kurulması

Adım 6: Sel Işık Sisteminin Kurulması
Adım 6: Sel Işık Sisteminin Kurulması

Sel ışığının işlevi aşağıdaki gibi çalışır:

MATLAB kodunu başlattığınızda, PIR hareket sensörü hareketi algılamaya başlayacaktır. Bir tür hareket algıladığında, bir güç sinyalini kesecektir. Bu sinyal kesildiğinde, evin dışında bir projektör yanacaktır.

Sel ışık sistemini yapılandırmak için:

Sel ışık sistemini kodlamak için:

Bu sefer Timer özelliğine geçebiliriz çünkü ekstra bir değişken yazmamıza gerek yok.

human_detected = readDigitalPin(a, 'D2'); human_detected == 0 writeDigitalPin(a, 'D7', 1) durumunda %Pin yapılandırmaya bağlı olarak değişebilir %Pin app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D7', 0) bitiş

7. Adım: Sonuç

Artık Uygulama Tasarımcısı ile GUI'nizin bir taslağına ve Arduino kodunuza sahip olduğunuza göre, kendi düzenlemelerinizi yapmaya veya Arduino'nuzu takmaya ve gitmeye hazırsınız!

Önerilen: