Mundarija:

Arduino aqlli uy tizimi: 7 qadam
Arduino aqlli uy tizimi: 7 qadam

Video: Arduino aqlli uy tizimi: 7 qadam

Video: Arduino aqlli uy tizimi: 7 qadam
Video: Xotirani kuchaytiruvchi 10 ta SIR. Hamma uchun birdek to'gri keladi! 10 daqiqada 2024, Noyabr
Anonim
Arduino aqlli uy tizimi
Arduino aqlli uy tizimi
Arduino aqlli uy tizimi
Arduino aqlli uy tizimi

Bu yo'riqnomada biz sizga Sparkfun Red taxtali bilan MATLAB App Designer yordamida o'zingizning aqlli uyingiz tizimini qanday yaratishni ko'rsatamiz. Bu ko'rsatmalarni MATLAB ilovalar konstruktori haqida, shuningdek, fotorezistor, servomotor va PIR harakat sensori yordamida tushunishga yordam berish uchun ishlatish mumkin.

1 -qadam: Boshlash uchun: materiallar

Ushbu loyiha quyidagi materiallarni talab qiladi:

- Arduino Uno (Ushbu loyiha uchun biz Sparkfun Red taxtasidan foydalanganmiz)

- bitta fotorezistor

- bitta mini-servo dvigatel

- bitta uzluksiz servo vosita

- bitta PIR harakat sensori

- bitta harorat sensori

- 2 ta LED

- Zarur bo'lganda simlar va rezistorlar

2 -qadam: 2 -qadam: Muammoni hal qilishga yaqinlashish

Ushbu loyihaning asosiy maqsadi Arduino Uno kartasini MATLAB yordamida kodlash orqali aqlli uy tizimini ishlatish edi. Biz birinchi navbatda harorat va namlik sensori bilan ishlash haqida o'yladik, lekin agar biz bu ikkita datchikda qolsak, bizning aqlli uy tizimimiz oddiy auditoriyaga sotilmaydi. Biz aqlli termostat va xavfsizlik tizimi sifatida ishlaydigan umumiy aqlli uy energiya tizimini yaratmoqchimiz. Va nihoyat, biz MATLAB -ning AppDesigner bilan ishlashni xohladik, shuning uchun foydalanuvchi aqlli uyni xohlagancha o'zgartirishi mumkin edi.

3 -qadam: 3 -qadam: GUI va asosiy kod oqimini sozlash

3 -qadam: GUI va asosiy kod oqimini sozlash
3 -qadam: GUI va asosiy kod oqimini sozlash

Boshlash uchun siz MATLABs AppDesigner -ni ochishingiz va quyidagilarni joylashtirishingiz kerak bo'ladi:

Issiq va sovuq chegara kiritish uchun ikkita raqamli tahrir maydoni

Eshik qulfini ochish tugmasi

Va kamin, eshik, fan va suv toshqini uchun to'rtta ko'rsatkich chiroq.

Foydalanuvchi bilan muloqot qilish uchun ikkita yorliq.

Ushbu loyiha uchun biz global o'zgaruvchilar va dizayner ichida ishga tushirish funktsiyasi bilan ishlashni osonlashtirdik. Ishga tushirish funktsiyasida sizga bu o'zgaruvchilar kerak bo'ladi:

global a

a = arduino ('COM3', 'uno', 'Kutubxonalar', 'Servo'); global global global globalUI global sovuqUI global qulfini ochish global temp global Curr_temp global int_light

Hozirda bizda faqat o'zgaruvchiga topshiriq bor, shuning uchun sizning kompyuteringiz arduino -ni o'qishi mumkin. COM3 kompyuteringizning qaysi portidan foydalanayotganiga qarab farq qilishi mumkin.

Kodni ishga tushirganingizda, u global o'zgaruvchilarni yaratish va tizimni kalibrlashda ishga tushirish funktsiyasidan boshlanadi. Bu funktsiya oxirida biz Taymer deb nomlangan xususiyatni chaqiradigan taymer funktsiyasi bo'ladi. Taymer xususiyatiga biz uy tizimini boshqaradigan kodni kiritamiz, shuning uchun taymer kalibrlash kodini qayta ishga tushirmaydi.

E'tibor bering: biz tizimni ulash bo'yicha ko'rsatmalar bermadik. Biz SparkFun Red taxtasi bilan birga kelgan qo'llanmani ko'rib chiqdik.

4 -qadam: 3 -qadam: Termostatni o'rnatish

3 -qadam: Termostatni o'rnatish
3 -qadam: Termostatni o'rnatish
3 -qadam: Termostatni o'rnatish
3 -qadam: Termostatni o'rnatish

Termostat funktsiyasi quyidagicha ishlaydi:

Foydalanuvchi qaysi haroratni juda issiq yoki juda sovuq deb hisoblaydi. Termometr ko'rsatkichni o'qiganidan so'ng, agar uy juda sovuq bo'lsa, "kamin" (qizil LED) yonadi va uyni isitadi. Agar uy juda issiq bo'lsa, "fan" (uzluksiz servo dvigatel) uyni sovutadi.

Termostatni kodlash uchun:

Biz joriy haroratni ko'rsatish va foydalanuvchining sovuq va issiq chegaralarini kiritish uchun ishga tushirish funktsiyasidan boshlaymiz.

p = 'A0' %Fotoresistorli pin

volt = o'qish voltaji (a, temp); celc = (volt-0,5).*100; Curr_temp = celc*9/5+32; app. Label_4. Text = num2str (Curr_temp); %Yorliq raqami pauzani o'zgartirishi mumkin (10); %O'zgarishni xohlashi mumkin !!!!!

Keyin biz Timer xususiyatidagi termostatni tizimini yakunlaymiz.

global Curr_temp

global coldUI global global hotUI agar Curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0.19]; %GUI chiroqchasini yashil rangga aylantiradi WritePWMDutyCycle (a, 'D11',.9) %Keyingi uchta satrda servo fan pauzasi (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Bu barcha GUI lampalar va kamin ilovasini o'chiradi. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); oxiri

5 -qadam: 4 -qadam: Eshik tizimini sozlash

4 -qadam: Eshik tizimini sozlash
4 -qadam: Eshik tizimini sozlash

Eshikning vazifasi quyidagicha:

Siz birinchi marta MATLAB kodini ishga tushirganingizda, ilova sizdan eshikni ochishingizni so'raydi, shunda fotorezistor yorug'lik ko'rsatkichini o'qishi mumkin. Bu bajarilgandan so'ng, taymer faollashadi va fotorezistor ikkinchi darajali yorug'lik ko'rsatkichlarini oladi. Agar ikkilamchi yorug'lik ko'rsatkichi boshlang'ichdan engilroq bo'lsa, servo dvigatel eshikni qulflab qo'yadi. Agar foydalanuvchi eshik qulfini ochishni xohlasa, u eshikni ochadigan ilovadagi tugmani bosishi mumkin.

Servo dvigatel va fotorezistorni sozlash uchun:

Eshik tizimini kodlash uchun:

Biz boshlang'ich yorug'lik ko'rsatkichlarini olish uchun ishga tushirish funktsiyasidan boshlaymiz.

s = servo (a, 'D9') %Pin simga qarab o'zgarishi mumkin

app. Label_4. Text = 'Iltimos, tizimni sozlash uchun eshikni oching'; pauza (15); %Bu foydalanuvchiga eshikni ochish uchun vaqt beradi int_light = readVoltage (a, p); app. Label_4. Text = 'Barmog'ingizni olib tashlashingiz mumkin';

Keyinchalik, biz Timer xususiyatidagi kodni to'ldiramiz

global qulfni ochish

global int_light global s global a %Curr_light = readVoltage (a, p) ni solishtirish uchun joriy yorug'lik ko'rsatkichini oling; % - Eshikni qulflash - agar int_light <Curr_light writePosition (s, 1) % Servo pozitsiyalari har bir motor pauzasida har xil bo'lishi mumkin (0,5); app. DoorStateLamp. Color = [0,47 0,67 0.19]; end % - Eshik qulfini ochish - agar qulfni ochish == 1234 pauza (0,5); writePosition (lar,.52) app. DoorStateLamp. Color = [0,85 0,33 0.10]; oxiri

Nihoyat, biz qulfni ochish tugmachasini qayta chaqirishni yaratamiz. Foydalanuvchi qulfni ochish tugmachasini bosgandan so'ng, global o'zgaruvchiga qulfni ochish raqamini beradi, u taymer xossasidagi if if -ni yakunlashi mumkin.

global qulfni ochish

qulfni ochish = 1234;

6 -qadam: 6 -qadam: To'fon nurlari tizimini o'rnatish

6 -qadam: To'fon nurini o'rnatish
6 -qadam: To'fon nurini o'rnatish

Yorug'lik chiroqining vazifasi quyidagicha ishlaydi:

MATLAB kodini ishga tushirganingizda, PIR harakat sensori harakatni aniqlay boshlaydi. Biror harakatni aniqlagandan so'ng, u kuch signalini uzib qo'yadi. Bu signal uzilgandan so'ng, uyning tashqarisida toshqin chiroq yonadi.

Yorug'lik nurlari tizimini sozlash uchun:

Yorug'lik nurlari tizimini kodlash uchun:

Bu safar biz Timer xususiyatiga o'tishimiz mumkin, chunki qo'shimcha o'zgaruvchilar yozishning hojati yo'q.

human_detected = readDigitalPin (a, 'D2'); %PIN konfiguratsiyaga qarab o'zgarishi mumkin, agar human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin app. FloodLightStateLamp. Color = [0,47 0,67 0.19] ni o'zgartirishi mumkin; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) oxiri

7 -qadam: Xulosa

Endi sizda App Designer bilan GUI loyihasi va Arduino kodingiz bor, siz o'zingizning tahrirlaringizni bajarishga yoki Arduino -ni ulashga tayyormiz!

Tavsiya: