Mündəricat:

Arduino Ağıllı Ev Sistemi: 7 addım
Arduino Ağıllı Ev Sistemi: 7 addım

Video: Arduino Ağıllı Ev Sistemi: 7 addım

Video: Arduino Ağıllı Ev Sistemi: 7 addım
Video: Akıllı Ev Projesinde Son Durum 2024, Noyabr
Anonim
Arduino Ağıllı Ev Sistemi
Arduino Ağıllı Ev Sistemi
Arduino Ağıllı Ev Sistemi
Arduino Ağıllı Ev Sistemi

Bu Təlimat kitabında, Sparkfun Red lövhəsi olan MATLAB -ın App Designer ilə öz ağıllı ev sisteminizi necə yaratacağınızı sizə göstərəcəyik. Bu Təlimat, MATLAB -ın Tətbiq Dizaynerini anlamaq, fotorezistor, servomotor və PIR hərəkət sensoru istifadə etmək üçün istifadə edilə bilər.

Addım 1: Başlamaq üçün: Materiallar

Bu layihə üçün aşağıdakı materiallar lazımdır:

- Arduino Uno (Bu layihə üçün Sparkfun Qırmızı lövhədən istifadə etdik)

- Bir fotorezistor

- Bir mini servo motor

- Bir fasiləsiz servo motor

- Bir PIR hərəkət sensoru

- Bir temperatur sensoru

- 2 ədəd LED

- Lazım gələrsə tellər və rezistorlar

Addım 2: Adım 2: Problemi həll etmək üçün yaxınlaşın

Bu layihənin əsas məqsədi MATLAB ilə bir Arduino Uno lövhəsini kodlaşdıraraq istifadəsi asan bir ağıllı ev sistemi yaratmaq idi. Əvvəlcə yalnız bir temperatur və rütubət sensoru ilə işləməyi düşündük, ancaq bu iki sensörün yanında olsaydıq, ağıllı ev sistemimiz ümumi bir auditoriyaya asanlıqla satıla bilməzdi. Ağıllı bir termostat və təhlükəsizlik sistemi olaraq işləyəcək ümumi bir ağıllı ev enerji sistemi yaratmaq istədiyimizə qərar verdik. Nəhayət, istifadəçinin ağıllı evi istədikləri kimi asanlıqla dəyişdirə bilməsi üçün MATLAB -ın AppDesigner ilə işləmək istədik.

Addım 3: Adım 3: GUI və Əsas Kod axınının konfiqurasiyası

Addım 3: GUI və Əsas Kod axınının konfiqurasiyası
Addım 3: GUI və Əsas Kod axınının konfiqurasiyası

Başlamaq üçün MATLABs AppDesigner -i açmalı və aşağıdakıları yerləşdirməlisiniz:

İsti və soyuq eşik girişi üçün iki ədəd redaktə sahəsi

Qapını açmaq üçün düymə

Şömine, qapı, fan və sel işığı üçün dörd göstərici lampa.

İstifadəçi ilə ünsiyyət qurmaq üçün iki etiket.

Bu layihə üçün dizayner daxilində qlobal dəyişənlərlə və başlanğıc funksiyası ilə işləməyi asanlaşdırdıq. Başlanğıc funksiyasında bu dəyişənlərə ehtiyacınız olacaq:

qlobal a

a = arduino ('COM3', 'uno', 'Kitabxanalar', 'Servo'); qlobal qlobal q qlobal istiUI qlobal soyuqUI qlobal kilidini açmaq qlobal temp qlobal Curr_temp qlobal int_light

Hal -hazırda yalnız bir dəyişən üçün bir tapşırıq var ki, kompüteriniz arduino oxuya bilsin. COM3, kompüterinizin hansı portdan istifadə etdiyindən asılı olaraq fərqli ola bilər.

Kodu işə saldığınız zaman, qlobal dəyişənləri yaradan və sistemi kalibr edən başlanğıc funksiyasından başlayacaq. Bu funksiyanın sonunda Timer adlı bir xassəni çağıran bir taymer funksiyası olacaq. Bu Taymer xüsusiyyətinin içərisində ev sistemini işlədən kodu qoyduq ki, taymer kalibrləmə kodunu yenidən işə salmasın.

Qeyd: Sistem üçün heç bir kabel təlimatı verməmişik. SparkFun Red lövhəsi ilə birlikdə gələn təlimata istinad etdik.

Adım 4: Adım 3: Termostat Sisteminin Qurulması

Addım 3: Termostat Sisteminin Qurulması
Addım 3: Termostat Sisteminin Qurulması
Addım 3: Termostat Sisteminin Qurulması
Addım 3: Termostat Sisteminin Qurulması

Termostatın funksiyası aşağıdakı kimi işləyir:

İstifadəçi çox isti və ya çox soyuq hesab etdiyi temperaturu daxil edəcək. Termometr oxuduqdan sonra, ev çox soyuq olarsa, "şömine" (qırmızı LED) açılacaq və evi qızdıracaq. Ev çox isti olarsa, "fan" (fasiləsiz servo motor) evi soyutmağa başlayacaq.

Termostat sistemini kodlaşdırmaq üçün:

Mövcud tempi göstərmək və istifadəçiyə soyuq və isti eşiklərini daxil etmək üçün başlanğıc funksiyası daxilində başlayacağıq.

p = 'A0' %Fotoresistor pimi

volt = readVoltage (a, temp); celc = (volt-0.5).*100; Curr_temp = celc*9/5+32; app. Label_4. Text = num2str (Curr_temp); Etiket nömrəsi fasiləni dəyişə bilər (10); Dəyişmək istəyə bilər !!!!!

Sonra Timer xüsusiyyətindəki termostat sistemini tamamlayacağıq.

qlobal Curr_temp

qlobal soyuqUI qlobal bir qlobal hotUI əgər Curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; GUI lampasını yaşıl rəngə çevirir WritePWMDutyCycle (a, 'D11',.9) %Növbəti üç kod xətti servo fan durdurmasını (10) writePWMDutyCycle (a, 'D11',.0) başqa tətbiqini işə salır. FireplaceStateLamp. Color = [0.90 0.90 0.90]; Bu, bütün GUI lampaları və şömine tətbiqini söndürür. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); bitmək

Adım 5: Adım 4: Qapı Sisteminin Qurulması

Addım 4: Qapı Sisteminin Qurulması
Addım 4: Qapı Sisteminin Qurulması

Qapı funksiyası aşağıdakı kimi işləyir:

MATLAB kodunuzu ilk dəfə işə saldığınız zaman, tətbiq fotorezistorun ilkin işıq oxumasını ala bilməsi üçün qapını açmanızı istəyəcək. Bu tamamlandıqda, taymer aktivləşəcək və fotorezistor ikincil işıq oxunuşlarını alacaq. İkincil işıq oxunuşu əvvəlkindən daha yüngül olarsa, servo motor qapını kilidləyəcək. İstifadəçi qapının kilidini açmaq istəyirsə, tətbiqin qapısını açacaq bir düyməni basa bilər.

Servo motoru və fotorezistoru konfiqurasiya etmək üçün:

Qapı sistemini kodlaşdırmaq üçün:

İlkin işıq oxunuşlarını almaq üçün başlanğıc funksiyası daxilində başlayacağıq.

s = servo (a, 'D9') %Pin məftilə görə dəyişə bilər

app. Label_4. Text = 'Zəhmət olmasa sistemi kalibr etmək üçün qapını açın'; fasilə (15); Bu istifadəçinin qapını açması üçün vaxt verir int_light = readVoltage (a, p); app. Label_4. Text = 'Barmağınızı çıxara bilərsiniz';

Sonra, kodu Timer xüsusiyyətində tamamlayacağıq

qlobal kilid açma

qlobal int_light global s global a %Curr_light = readVoltage (a, p) müqayisə etmək üçün cari işıq oxunuşunu əldə edin; % - Qapını kilidləyin - əgər int_light <Curr_light writePosition (s, 1) % Servo mövqeləri hər motor fasiləsinə görə fərqlənə bilər (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; son % - Qapının kilidini aç - əgər kilidi açarsan == 1234 fasilə (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; bitmək

Nəhayət kilid açma düyməsini geri çağırma yaradacağıq. İstifadəçi kilidini açma düyməsini basdıqdan sonra qlobal dəyişən kilid açmağa Timer xassəsindəki son if ifadəsini tamamlaya biləcək bir nömrə veriləcək.

qlobal kilid açma

kilidini aç = 1234;

Adım 6: Adım 6: Daşqın İşıq Sisteminin Qurulması

Addım 6: Sel İşıq Sisteminin Qurulması
Addım 6: Sel İşıq Sisteminin Qurulması

Daşqın işığı aşağıdakı kimi işləyir:

MATLAB kodunu işə saldığınız zaman, PIR hərəkət sensoru hərəkəti aşkar etməyə başlayacaq. Bir növ hərəkət algıladıqda, güc siqnalını kəsər. Bu siqnal kəsildikdən sonra evin xaricində daşqın işığı yanacaq.

Daşqın işıq sistemini konfiqurasiya etmək üçün:

Daşqın işıq sistemini kodlaşdırmaq üçün:

Bu dəfə Timer xüsusiyyətinə keçə bilərik, çünki əlavə dəyişənlər yazmağa ehtiyac yoxdur.

human_detected = readDigitalPin (a, 'D2'); İnsan_detected == 0 yazmaDigitalPin (a, 'D7', 1) olarsa, Konfiqurasiya konfiqurasiyaya görə dəyişə bilər. %Pin tətbiq dəyişə bilər. elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D7', 0) sonu

Addım 7: Nəticə

İndi App Designer ilə GUI -nin bir layihəsi və Arduino kodunuz varsa, öz redaktələrinizi etməyə və ya Arduino -nuzu qoşmağa və hazır olmağa hazırsınız!

Tövsiyə: