Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Kerakli qismlar va materiallar:
- 1 Arduino MKR 1000
- 3 ta non paneli
- 2 ta mini fotosel
- 1 ta NPN tranzistorlari
- 1 mini quvvat kaliti
- 1 LED - RGB (4 burchakli)
- 1 LED (siz tanlagan rang)
- 1N4148 diodli
- 1 10K Ohmli rezistorlar
- 5 100 Ohm qarshilik
- 1 harorat sensori TMP36
- 1 DAGU 48: 1 nisbatli tishli motor
- 25 ta o'tish simlari
- USB kabeli
- MATLAB dasturi
-
Arduino 101/Genuino 101 taxtasi uchun SIK tajriba qo'llanmasi - SIK tajriba qo'llanmasi havolasi
Ushbu loyiha uy egalariga energiyadan foydalanish va xavfsizlikni optimallashtirishga yordam beradigan ma'lumotlardan foydalanadigan aqlli uy tizimining kontseptual dizaynini batafsil bayon qiladi. U tunda tashqi chiroqlarni yoqish uchun yorug'lik sensori, xavfsizlik uchun yorug'lik sensori, ichki haroratni nazorat qilish uchun harorat sensori va fanni o'z ichiga oladi.
1 -qadam: Yorug'likka sezgir LED
- Yorug'likka sezgir LED sozlamalari tunda yoqilgan uyning tashqi chiroqlarini aks ettirishga mo'ljallangan.
- Kichkina fotosel yorug'likni kamaytirganda, LED yonadi.
- Aqlli uy uchun bu energiya va xavfsizlikka ta'sir qiladi. Kunduzi chiroqlarni o'chirib qo'yib, energiyani tejaydi va kechasi xavfsizlikni kuchaytiradi.
- Loyihaning ushbu qismi uchun aniq simlar va sozlamalarni SIK Tajriba Qo'llanmasidagi 7 -tajribada topish mumkin.
2 -qadam: Mini quvvat tugmasi
- Kommutator aqlli uyning xavfsizlik jarayonidagi birinchi qadamdir.
- Yoqilganda, kalit foydalanuvchidan "Uy" yoki "Tashqarida" rejimiga kirishni xohlashini so'raydigan javobni boshlaydi.
- Agar "Uy" rejimi tanlansa, xavfsizlik qurolsizlantirilgan hisoblanadi, lekin "Tashqarida" rejimini tanlash xavfsizlik tizimini qurollantiradi.
- Loyihaning ushbu qismi uchun o'tkazgichlarni Tajriba qo'llanmasida 6 -tajribada topish mumkin. Aqlli uyning maqsadlari uchun 6 -tajribada topilgan LEDlar va ularni ulash simlarini kiritish shart emas.
3 -qadam: Ikkinchi fotosel
- Ikkinchi fotosel aqlli uyning xavfsizlik tizimi uchun harakat sensori vazifasini bajaradi.
- Sensor faqat tizim oldingi bosqichda tasvirlanganidek "Tashqarida" rejimiga o'tkazilganda ishlatiladi.
- Agar fotosel qabul qiladigan yorug'lik miqdorining pasayishiga duch kelsa, u buni uy ichidagi harakat deb tan oladi.
- Loyihaning ushbu qismi uchun sozlamalarni SIK Tajriba Qo'llanmasidagi 7 -tajribada topish mumkin. Biroq, kabelga faqat fotosel va uni ulash simlarini kiritish kerak.
4 -qadam: LED RGB
- RGB LED mini quvvat tugmasi va aqlli uyning xavfsizlik tizimi uchun ikkinchi fotosel bilan birgalikda ishlatiladi.
- Uch xil rang aqlli uy aholisi uchun ko'rsatkich sifatida ishlatiladi.
- Tizim "Uy" rejimiga o'tkazilganda, LED ko'k rangga aylanadi. Tizim "Tashqarida" rejimiga o'tkazilganda, LED yashil rangga aylanadi. Harakat sensori sifatida ishlatiladigan fotosel qotib qolganda, chiroq qizil yonib -o'chib turadi.
- RGB LED simi SIK tajriba qo'llanmasining 3 -tajribasida topilgan.
5 -qadam: harorat sensori
- Harorat sensori aqlli uyda energiya tejashning asosiy qismidir.
- Aqlli uy ishlatilganda, fuqaro o'z uyiga kerakli haroratni kiritishi mumkin.
- Harorat sensori - bu tizim haqiqiy harorat kerakli haroratdan qanchalik uzoq ekanligini biladi.
- Harorat sensori o'rnatilishini SIK tajriba qo'llanmasining 9 -tajribasida topish mumkin.
6 -qadam: DAGU tishli motor
- Dvigatel aqlli uyga kerakli harorat va harorat sensori ko'rsatkichlari asosida uydagi haroratni tartibga solish imkonini beradi.
- Dvigatel uydagi AC qurilmasi vazifasini bajarib, haqiqiy harorat istalgan haroratdan qanchalik yuqori bo'lishiga qarab har xil tezlikda aylanadi. Farqi qanchalik baland bo'lsa, vosita tezroq aylanadi.
- Dvigatelning simlarini 11 -tajriba bo'yicha Eksperiment qo'llanmasida topish mumkin.
7 -qadam: kod
- Aqlli uy kodi bir nechta foydalanuvchi interfeyslarini o'z ichiga oladi, bu esa rezidentga uning qanday ishlashini osongina tushunishga va sozlamalarni osongina o'zgartirishga imkon beradi.
- Aqlli uy tizimi yordamida rezident, ular yo'qligida harakat sensori o'chirilgan bo'lsa, elektron pochta orqali ogohlantirish oladi.
- O'zgarish kerak bo'lgan yagona narsa - jo'natuvchining elektron pochtasi va qabul qiluvchining elektron pochta manzili haqidagi ma'lumotlarni kiritish.
aniq a; aniq s; aniq m; clc; hammasini yopish; % Arduino va servo o'zgaruvchilarni tozalang, shunda ular har safar qayta aniqlanishi mumkin, shunda kod samarali ishlaydi ("loop" lar birining to'g'ri ishlashi uchun "m" kerak) a = arduino (); % Arduino o'zgaruvchisini o'rnating
s = servo (a, 'D6'); % Servo o'zgaruvchini o'rnating
% Xavfsizlik tizimi ogohlantiruvchi elektron pochta uchun elektron pochta o'zgaruvchilarini ishga tushiring
emails = {'qabul qiluvchining manzilini kiriting'}; % Xavfsizlik elektron pochtasini yuborish uchun elektron pochta qatori
Xabar yuborish uchun Gmail -dan foydalanish uchun zarur bo'lgan % elektron pochta sozlamalari
setpref ('Internet', 'E_mail', 'yuboruvchining elektron pochta manzili');
setpref ("Internet", "SMTP_Username", "yuboruvchining foydalanuvchi nomi");
setpref ("Internet", "SMTP_Password", "yuboruvchining paroli");
rekvizitlar = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'rost');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
% E -pochta mavzusi va matn o'zgaruvchilari
subj = 'Uyingizga tajovuzkorlar haqida ogohlantirish';
text = 'Salom, bu sizning uyingiz tashqarisida harakat aniqlangani haqida sizga xabar beradigan Smart Home xavfsizlik tizimi. Biz kerakli choralarni ko'rdik va siz uchun tegishli idoralarga murojaat qildik. Xavfsiz qoling. ';
rost bo'lsa ham
prompt = {'Istalgan uy haroratini kiriting (65F va 85F oralig'ida):'}; % Foydalanuvchi kiritish menyusi uchun so'rov
dlgtitle = 'Haroratni tanlash'; % Foydalanuvchi kiritish menyusi sarlavhasi
xira = [1 30]; % Foydalanuvchi kiritish menyusi uchun o'lchamlar
Definput = {'72'}; % Menyu birinchi ochilganda ko'rsatiladigan standart kirish
tempsel_array = inputdlg (tezkor, dlgtitle, dims, definput); % Qalqib chiquvchi foydalanuvchi kiritish menyusi kiritilgan raqamni qatorga saqlaydi
if ~ isempty (tempsel_array) % Agar qator bo'sh bo'lmasa
tempsel_char = hujayra2mat (tempsel_array); % Massivni belgilar qatoriga aylantiring
tempsel = str2double (tempsel_char); % Belgilar qatorini raqamlarga aylantiring
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Tanlangan haroratni ThingSpeak kanalingizga yozing
break % Vaqt tsiklidan uzing, shunda menyu bir necha marta ochilmaydi
else % Agar foydalanuvchi haroratni bosish o'rniga bekor qilsa
msg1 = msgbox ('Harorat tanlanmagan, sukut bo'yicha 85F', 'Ogohlantirish!'); % Bekor qilish tugmachasini bosgandan so'ng foydalanuvchiga xabar ko'rsatiladi
kutish (msg1); % Davom etishdan oldin xabar qutisi yopilishini kuting
tempsel = 85; % Haroratni xabar qutisida ko'rsatilgan darajaga o'rnating
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Tanlangan haroratni ThingSpeak kanalingizga yozing
break % Vaqt tsiklidan uzing, shunda menyu bir necha marta ochilmaydi
oxiri
oxiri
rost bo'lsa ham
chID = 745517; % ThingSpeak kanal identifikatori
writeKey = 'G9XOQTP8KOVSCT0N'; % ThingSpeak kanaliga kirish uchun kalit
% Ma'lumot olish uchun sensorlarni ishga tushiring
tempread = readVoltage (a, 'A3'); % Harorat sensori kuchlanishini o'qing
lightl1 = readVoltage (a, 'A2'); Qizil LEDga o'tadigan fotorezistor uchun yorug'lik darajasi
lightl2 = readVoltage (a, 'A5'); % Xavfsizlik tizimiga o'tadigan fotorezistor uchun yorug'lik darajasi
switchv = readVoltage (a, 'A0'); Kommutator uchun % qiymati
% Harorat ma'lumotlarini kuchlanishdan Farengeyt darajasiga o'zgartiring
tempC = (tempread - 0,5) * 100; % Tselsiy bo'yicha kuchlanishni haroratga aylantiring
tempF = (tempC * 9/5) + 32; % Selsiydagi haroratni Farengeytdagi haroratga aylantiring
% Ko'p rangli LED uchun pin raqamlarini boshlang
redp = 'D9'; LEDdan qizil chiroq uchun pin
yashil rang = 'D10'; LED -dan yashil chiroq uchun pin
reja = 'D11'; % LED ko'k chiroq uchun pin
if tempsel <tempF % Tanlangan harorat xona haroratidan katta bo'lsa
yozish pozitsiyasi (lar, 1); % Servo harakatlana boshlaydi
pauza (10) % Servo 10 soniya davomida aylanishni davom ettiradi, shunda AC ma'lum vaqtdan keyin o'chadi.
yozish pozitsiyasi (lar, 0); % Fanni yoqmasdan kodni davom ettirish uchun fanni o'chiring
tempsel = 150; % Ventilyator o'chirilgandan keyin, faqat kodni davom ettirish uchun, haroratni pastadirdan uzish uchun o'zgartiring
oxiri
if lightl1 <= 3 % Agar birinchi fotorezistor past yorug'lik darajasini aniqlasa
writeDigitalPin (a, 'A1', 1); % Tashqi chiroqlarni ifodalovchi qizil LEDni yoqing
else % Agar yorug'lik darajasi yana baland bo'lsa
writeDigitalPin (a, 'A1', 0); Yorug'lik darajasi yana etarlicha baland bo'lganda qizil LEDni o'chiring
oxiri
agar switchv> 3 % Agar kalit yoqilgan bo'lsa
A = mavjud ('m', 'var'); % "M" o'zgaruvchining mavjudligini tekshiring, bu vaqt tsiklini ishga tushiradi va menyu elementi tanlanganida uni buzishga imkon beradi (shuning uchun kod boshida aniq m bajarilishi kerak)
A == 0 % Loop 'm' o'zgaruvchisi mavjud bo'lguncha bajariladi
menutext = 'Qaysi xavfsizlik rejimiga kirmoqchisiz?'; % Xavfsizlik popup menyusi uchun matn
tanlovlar = {'Uyda', 'Tashqarida'}; % Xavfsizlik popup menyusi uchun tanlovlar
m = menyu (menyu matni, tanlovlar); % Xavfsizlik tizimi rejimlari uchun qalqib chiquvchi menyu
break % vaqt tsikli buzilganligini ta'minlaydi, shuning uchun menyu bir necha marta ochilmaydi
oxiri
agar m == 1 % Agar "Uy" rejimi tanlangan bo'lsa
writeDigitalPin (a, reja, 1); Rang o'zgaruvchi LEDda ko'k chiroqni yoqing
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2 % Agar "Tashqarida" rejimi tanlangan bo'lsa
writeDigitalPin (a, reja, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); Rang o'zgaruvchi LEDda faqat yashil chiroqni yoqing
agar lightl2 <= 3 % Ikkinchi fotorezistordagi yorug'lik darajasi past bo'lsa, bu xavfsizlik tizimi tomonidan aniqlangan harakatni ifodalaydi.
sendmail (elektron pochta, subj, matn); % Oldindan belgilangan elektron pochta xususiyatlariga ega elektron pochta yuborish writeDigitalPin (a, greenp, 0); % Qizil qizil rang 2 marta yonadi va o'chadi
writeDigitalPin (a, redp, 1);
pauza (0.3)
writeDigitalPin (a, redp, 0);
pauza (0.3)
writeDigitalPin (a, redp, 1);
pauza (0.3)
writeDigitalPin (a, redp, 0);
pauza (0.3)
writeDigitalPin (a, redp, 1); Yorug'lik darajasi yuqoriga ko'tarilguncha harakat borligini ko'rsatish uchun milt -miltdan keyin qizil rang bilan tugating
msg2 = msgbox ('Xavfsizlik tizimi tomonidan tajovuzkor aniqlandi, uy egalariga xabar berish uchun elektron pochta yuborildi.', 'OGOHLANTIRISH!'); % Xabar qutisi foydalanuvchiga harakat haqida xabar berish va yuborilgan elektron pochta xabari haqida xabar berish uchun kutish (msg2) % Davom etishdan oldin xabar qutisi yopilishini kuting.
boshqa
writeDigitalPin (a, greenp, 1); % Yorug'lik darajasi yana ko'tarilgach, u yana yashil rangga aylanadi
oxiri
oxiri
elseif switchv <3.3 % Agar kalit o'chirilgan bo'lsa
writeDigitalPin (a, reja, 0); % Xavfsizlik tizimi o'chirilganligini ko'rsatish uchun LEDni to'liq o'chiring
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
oxiri
oxiri