Мазмұны:

EF230 ақылды үй жобасы: 7 қадам
EF230 ақылды үй жобасы: 7 қадам

Бейне: EF230 ақылды үй жобасы: 7 қадам

Бейне: EF230 ақылды үй жобасы: 7 қадам
Бейне: EF230: MATLAB RVR Speech Recognition Demonstration 2024, Қараша
Anonim
EF230 ақылды үй жобасы
EF230 ақылды үй жобасы

Қажетті бөлшектер мен материалдар:

  • 1 Arduino MKR 1000
  • 3 Блок -тақта
  • 2 шағын фотоэлементтер
  • 1 NPN транзисторлары
  • 1 шағын қуат қосқышы
  • 1 жарық диоды - RGB (4 тірек)
  • 1 жарық диоды (сіздің қалауыңыз бойынша)
  • 1 диод 1N4148
  • 1 10К Ом резисторы
  • 5 100 Ом резисторы
  • 1 TMP36 температура сенсоры
  • 1 DAGU 48: 1 редукторлы қозғалтқыш
  • 25 өтпелі сымдар
  • USB сымы
  • MATLAB бағдарламасы
  • Arduino 101/Genuino 101 тақтасына арналған SIK экспериментіне арналған нұсқаулық - SIK экспериментіне сілтеме

Бұл жоба үй иелеріне энергияны пайдалану мен қауіпсіздікті оңтайландыруға көмектесу үшін деректерді пайдаланатын ақылды үй жүйесінің тұжырымдамалық дизайнын егжей -тегжейлі сипаттайды. Оған түнгі уақытта сыртқы шамдарды қосатын жарық сенсоры, қауіпсіздікті қамтамасыз ету үшін жарық сенсоры, ішкі температураны реттеуге арналған температура сенсоры мен желдеткіш кіреді.

1 -қадам: жарыққа сезімтал жарық диоды

  • Жарыққа сезімтал жарықдиодты қондырғы түнде келетін үйде сыртқы шамдарды көрсетуге арналған.
  • Шағын фотоэлемент жарықтың аз мөлшерін сезгенде, жарық диоды жанады.
  • Ақылды үй үшін бұл энергия мен қауіпсіздікке әсер етеді. Бұл күндізгі уақытта шамдарды өшіру арқылы энергияны үнемдейді және түнде қауіпсіздікті күшейтеді.
  • Жобаның осы бөлігінің сымдары мен қондырғыларын SIK Тәжірибе нұсқаулығындағы 7 -экспериментте табуға болады.

2 -қадам: шағын қуат қосқышы

  • Коммутатор - ақылды үйдің қауіпсіздік процесінің бірінші қадамы.
  • Қосылған кезде коммутатор пайдаланушыдан «Үйде» немесе «Алыста» режиміне кіргісі келетінін сұрайтын жауапты бастайды.
  • Егер «Үй» режимі таңдалса, қауіпсіздік қарусыздандырылған болып саналады, бірақ «Алыста» режимін таңдау қауіпсіздік жүйесін қаруландырады.
  • Жобаның осы бөлігінің сымдарын Тәжірибе нұсқаулығындағы 6 -тәжірибеде табуға болады. Ақылды үйдің мақсаттары үшін 6 -тәжірибеде табылған жарықдиодты шамдар мен оларды қосатын сымдарды қосудың қажеті жоқ.

3 -қадам: Екінші фотоэлемент

Екінші фотоэлемент
Екінші фотоэлемент
  • Екінші фотоэлемент ақылды үйдің қауіпсіздік жүйесі үшін қозғалыс сенсоры ретінде қызмет етеді.
  • Сенсор тек алдыңғы қадамда сипатталғандай, жүйе «Алыста» режиміне қойылған кезде ғана қолданылады.
  • Егер фотоэлементте түсетін жарық мөлшерінің төмендеуі байқалса, ол мұны үй ішіндегі қозғалыс деп таниды.
  • Жобаның осы бөлігіне арналған қондырғыны SIK Experiment Guide бағдарламасындағы 7 -экспериментте табуға болады. Бірақ сымға тек фотоэлементтер мен оны қосатын сымдарды қосу қажет.

4 -қадам: RGB жарық диоды

  • RGB светодиоды шағын қуат қосқышымен және ақылды үйдің қауіпсіздік жүйесіне арналған екінші фотоэлементпен бірге қолданылады.
  • Үш түрлі түсті ақылды үй тұрғыны үшін индикатор ретінде қолданылады.
  • Жүйе «Үй» режиміне қойылғанда, жарық диоды көк түске боялады. Жүйе «Алыста» режиміне қойылғанда жарық диоды жасыл түске боялады. Қозғалыс сенсоры ретінде қолданылатын фотоэлементті сөндіргенде, жарық қызыл болып жыпылықтайды.
  • RGB жарықдиодты сымдарды SIK Experiment Guide 3 тәжірибесінде табуға болады.

5 -қадам: Температура сенсоры

  • Температура сенсоры - ақылды үйде энергияны үнемдеудің негізгі бөлігі.
  • Ақылды үй қолданылған кезде тұрғын үйіне қажетті температураны енгізе алады.
  • Температура сенсоры - бұл жүйенің нақты температураның қажетті температурадан қаншалықты алыс екенін білуі.
  • Температура датчигін орнатуды SIK Experiment Guide 9 тәжірибесінде табуға болады.

6 -қадам: DAGU редукторы

DAGU редукторы
DAGU редукторы
  • Қозғалтқыш ақылды үйге қажетті температураға және температура сенсорының көрсеткіштеріне сүйене отырып, үйдегі температураны реттеуге мүмкіндік береді.
  • Үйдегі айнымалы ток қондырғысының рөлін атқара отырып, қозғалтқыш нақты температураның қажетті температурадан қаншалықты жоғары екендігіне байланысты әр түрлі жылдамдықта айналады. Айырмашылық неғұрлым жоғары болса, ол моторды тез айналдырады.
  • Қозғалтқыштың сымдарын 11 -эксперимент бойынша Тәжірибе нұсқаулығынан табуға болады.

7 -қадам: код

  • Ақылды үйдің коды тұрғынға оның қалай жұмыс істейтінін түсінуге және параметрлерді оңай өзгертуге мүмкіндік беретін бірнеше пайдаланушы интерфейсін қамтиды.
  • Ақылды үй жүйесімен тұрғындар қозғалыс сенсоры олар жоқ кезде өшірулі болса, ескерту алады және электрондық поштаға жібереді.
  • Жалғыз өзгерту - жіберушінің электрондық поштасы мен алушының электрондық пошта мекенжайы туралы ақпаратты енгізу.

анық а; анық с; таза м; clc; бәрін жабу; % Таза arduino және servo айнымалылары, сондықтан олар кодты тиімді іске қосатын сайын қайта анықталуы мүмкін (уақытша ілмектердің біреуі дұрыс жұмыс істеуі үшін «clear m» қажет) a = arduino (); % Arduino айнымалы мәнін орнатыңыз

s = серво (a, 'D6'); % Серво айнымалы мәнін орнатыңыз

% Қауіпсіздік жүйесі туралы ескерту электрондық поштасы үшін электрондық пошта айнымалы мәндерін баптаңыз

emails = {'алушының мекенжайын енгізу'}; % Қауіпсіз электрондық пошта жіберілетін электрондық хаттар жиыны

% Поштаны жіберу үшін Gmail пайдалану үшін қажет электрондық пошта параметрлері параметрлері

setpref ('Интернет', 'E_mail', 'жіберушінің электрондық пошта мекенжайы');

setpref ('Интернет', 'SMTP_Username', 'жіберушінің пайдаланушы аты');

setpref ('Интернет', 'SMTP_Password', 'жіберушінің құпия сөзі');

реквизиттер = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'true');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');

% Электрондық пошта тақырыбы мен мәтіндік айнымалылар

subj = 'Сіздің үйіңізге зиянкестер туралы ескерту';

text = 'Сәлеметсіз бе, бұл сіздің үйден тыс жерде қозғалыс анықталғанын хабарлайтын Smart Home қауіпсіздік жүйесі. Біз сіз үшін қажетті шараларды қабылдадық және құзырлы органдарға хабарладық. Сақ болыңыз. ';

рас болса

prompt = {'Қалаған үй температурасын енгізіңіз (65F пен 85F аралығында):'}; % Пайдаланушы енгізу мәзіріне шақыру

dlgtitle = 'Температураны таңдау'; % Қолданушы енгізу мәзірінің атауы

дим = [1 30]; % Пайдаланушы енгізу мәзірінің өлшемдері

definput = {'72'}; % Мәзір бірінші ашылғанда пайда болатын әдепкі енгізу

tempsel_array = inputdlg (шақыру, dlgtitle, күңгірттеу, анықтау); % Енгізілген нөмірді массивке сақтайтын пайдаланушы қалқымалы енгізу мәзірі

if ~ isempty (tempsel_array) % Егер массив бос ЕМЕС

tempsel_char = cell2mat (tempsel_array); % Массивті символдар жолына түрлендіріңіз

tempsel = str2double (tempsel_char); % Таңбалар жолын сандарға түрлендіру

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Таңдалған температураны ThingSpeak арнасына жазыңыз

break % while циклінен үзіңіз, осылайша мәзір бірнеше рет шықпайды

else % Егер пайдаланушы температураны енгізудің орнына басса

msg1 = msgbox ('Температура таңдалмаған, әдепкі бойынша 85F', 'Ескерту!'); % Бас тарту түймесін басқаннан кейін пайдаланушыға хабарлама көрсетіледі

күту (msg1); % Жалғастырмас бұрын хабар терезесінің жабылғанын күтіңіз

tempsel = 85; % Температураны хабар терезесінде көрсетілгенге орнатыңыз

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Таңдалған температураны ThingSpeak арнасына жазыңыз

break % while циклінен үзіңіз, осылайша мәзір бірнеше рет шықпайды

Соңы

Соңы

рас болса

chID = 745517; % ThingSpeak арна идентификаторы

writeKey = 'G9XOQTP8KOVSCT0N'; % ThingSpeak арнасына кіру кілті

% Деректерді алу үшін сенсорларды инициализациялаңыз

tempread = readVoltage (a, 'A3'); % Температура сенсорының кернеуін оқыңыз

lightl1 = readVoltage (a, 'A2'); % Қызыл жарық диодқа өтетін фоторезистор үшін жарық деңгейі

lightl2 = readVoltage (a, 'A5'); % Қауіпсіздік жүйесіне өтетін фоторезистор үшін жарық деңгейі

switchv = readVoltage (a, 'A0'); Коммутатор үшін % мәні

% Температура деректерін кернеуден Фаренгейт градусына түрлендіріңіз

tempC = (tempread - 0,5) * 100; % Цельсий бойынша кернеуді температураға түрлендіру

tempF = (tempC * 9/5) + 32; % Цельсий бойынша температураны Фаренгейт температурасына түрлендіру

% Көп түсті жарықдиодты түйреуіш нөмірлерін баптаңыз

redp = 'D9'; % Жарықдиодты қызыл шамға арналған түйреуіш

greenp = 'D10'; % Жарық диодты жасыл шамға арналған түйреуіш

жоспар = 'D11'; % Жарықдиодты көк түске арналған түйреуіш

if tempsel <tempF % Егер таңдалған температура бөлме температурасынан үлкен болса

writePosition (лар, 1); % Серво қозғала бастайды

кідірту (10) % Серво 10 секунд бойы айналуды жалғастырады, бұл айнымалы ток белгілі бір уақыт өткеннен кейін өшеді.

writePosition (лар, 0); % Желдеткішсіз кодты жалғастыру үшін желдеткішті өшіріңіз

tempsel = 150; % Желдеткіш өшірілгеннен кейін, тек кодты жалғастыру үшін температураның мәнін өзгертіңіз

Соңы

if lightl1 <= 3 % Егер бірінші фоторезистор жарықтың төмен деңгейін анықтаса

writeDigitalPin (a, 'A1', 1); % Сыртқы жарықтарды көрсететін қызыл жарықдиодты қосыңыз

else % Егер жарық деңгейі қайтадан жоғары болса

writeDigitalPin (a, 'A1', 0); % Жарық деңгейі қайтадан жеткілікті жоғары болғанда қызыл жарықдиодты өшіріңіз

Соңы

егер switchv> 3 % Егер қосқыш қосылған болса

A = бар ('m', 'var'); % 'M' айнымалысының бар -жоғын тексеріңіз, бұл уақытша циклді инициализациялайды және мәзір элементі таңдалған кезде оны бұзуға мүмкіндік береді (сондықтан кодтың басында анық m орындалуы керек)

ал A == 0 % циклы 'm' айнымалысы болғанша орындалады

menutext = 'Қандай қауіпсіздік режиміне кіргіңіз келеді?'; % Қауіпсіздік қалқымалы мәзірі үшін мәтін

таңдаулар = {'Үйде', 'Алыста'}; % Қауіпсіздік қалқымалы мәзірі үшін таңдаулар

m = мәзір (мәзір мәтіні, таңдаулар); % Қауіпсіздік жүйесінің режимдеріне арналған қалқымалы мәзір

break % while циклы үзілгенін қамтамасыз етеді, сондықтан мәзір бірнеше рет шықпайды

Соңы

егер m == 1 % «Үй» режимі таңдалса

writeDigitalPin (a, сызба, 1); % Түсті өзгертетін светодиодта тек көк шамды қосыңыз

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % «Егер сыртта» режимі таңдалса

writeDigitalPin (a, жоспар, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Түсті өзгерту светодиодында тек жасыл шамды қосыңыз

if lightl2 <= 3 % Егер екінші фоторезистордағы жарық деңгейі төмен болса, бұл қауіпсіздік жүйесі арқылы анықталған қозғалысты білдіреді

sendmail (электрондық пошталар, subj, мәтін); % WriteDigitalPin (a, greenp, 0) бұрын анықталған электрондық пошта қасиеттері бар электрондық поштаны жіберу; % Қызыл қызыл түс 2 рет қосылады және өшеді

writeDigitalPin (a, redp, 1);

үзіліс (0.3)

writeDigitalPin (a, redp, 0);

үзіліс (0.3)

writeDigitalPin (a, redp, 1);

үзіліс (0.3)

writeDigitalPin (a, redp, 0);

үзіліс (0.3)

writeDigitalPin (a, redp, 1); % Жарық деңгейі көтерілгенше қозғалыс бар екенін көрсету үшін жыпылықтағаннан кейін қатты қызыл түспен аяқтаңыз

msg2 = msgbox ('Қауіпсіздік жүйесі бұзушыны анықтады, үй иелеріне хабарлау үшін электрондық пошта жіберілді.', 'ЕСКЕРТУ!'); Пайдаланушыға қозғалыс туралы хабарлау және жіберілген электрондық хабар туралы хабарлау үшін % хабарлама терезесі (msg2) % Жалғастырмас бұрын хабар терезесінің жабылғанын күтіңіз.

басқа

writeDigitalPin (a, greenp, 1); % Жарық деңгейі қайтадан көтерілгеннен кейін ол қайтадан жасылға айналады

Соңы

Соңы

elseif switchv <3,3 % Егер қосқыш өшірулі болса

writeDigitalPin (a, жоспар, 0); % Қауіпсіздік жүйесі өшірілгенін көрсету үшін жарық диодты толығымен өшіріңіз

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

Соңы

Соңы

Ұсынылған: