Мазмуну:
- 1 -кадам: Light Sensitive LED
- 2 -кадам: Mini Power Switch
- 3 -кадам: Экинчи Photocell
- 4 -кадам: RGB LED
- 5 -кадам: Температура сенсору
- 6 -кадам: DAGU редуктору
- 7 -кадам: Код
Video: EF230 Smart Home долбоору: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Керектүү тетиктер жана материалдар:
- 1 Arduino MKR 1000
- 3 Breadboards
- 2 Mini Photocells
- 1 NPN транзистору
- 1 Mini Power Switch
- 1 LED - RGB (4 тиштүү)
- 1 LED (сиз тандаган түс)
- 1 диод 1N4148
- 1 10K Ом резисторлору
- 5 100 Ом резистору
- 1 температура сенсору TMP36
- 1 DAGU 48: 1 катыш редуктору
- 25 Jumper Wires
- USB кабели
- MATLAB программасы
-
SIK Experiment Guide for Arduino 101/Genuino 101 Board - SIK Experiment Guide Link
Бул долбоор үй ээлерине энергияны колдонууну жана коопсуздукту оптималдаштырууга жардам берүү үчүн маалыматтарды колдоно турган акылдуу үй системасынын концептуалдык дизайнын деталдаштырат. Бул түнкүсүн сырткы жарыктарды күйгүзүү үчүн жарык сенсорун, коопсуздук үчүн жарык сенсорун, жана температура сенсорун жана үй температурасын көзөмөлдөөчү желдеткичти камтыйт.
1 -кадам: Light Sensitive LED
- Жарык сезгич LED орнотуу түнкүсүн келе жаткан үйдүн сырткы жарыктарын чагылдырууга арналган.
- Кичи фотоэлементтер жарыктын азайганын сезгенде, LED күйөт.
- Акылдуу үй үчүн бул энергия жана коопсуздукка таасирин тийгизет. Күндүз жарыкты өчүрүү менен энергияны үнөмдөйт жана түнкүсүн коопсуздукту күчөтөт.
- Долбоордун бул бөлүгүнүн так өткөргүчтөрүн жана орнотууларын SIK Experiment Guideдеги 7 -эксперимент боюнча тапса болот.
2 -кадам: Mini Power Switch
- Коммутатор - акылдуу үйдүн коопсуздук процессиндеги биринчи кадам.
- Күйгүзүлгөндө, которуштуруучу колдонуучудан "Үй" же "Алыс" режимине кирүүнү каалаарын сураган жоопту баштайт.
- Эгер "Үй" режими тандалса, коопсуздук куралсыз деп эсептелет, бирок "Алыс" режимин тандоо коопсуздук системасын куралдандырат.
- Долбоордун бул бөлүгү үчүн өткөргүчтөрдү Эксперимент боюнча 6 -эксперимент боюнча тапса болот. Акылдуу үйдүн максаттары үчүн, 6 -экспериментте табылган светодиоддорду жана алардын туташтыруучу зымдарын кошуунун кажети жок.
3 -кадам: Экинчи Photocell
- Экинчи фотоэлемент акылдуу үйдүн коопсуздук системасы үчүн кыймыл сенсору катары кызмат кылат.
- Сенсор мурунку кадамда сүрөттөлгөндөй система "Away" режимине коюлганда гана колдонулат.
- Эгерде фотоэлементте жарыктын көлөмү азайса, ал муну үйдүн ичиндеги кыймыл катары тааныйт.
- Долбоордун бул бөлүгү үчүн орнотууну SIK Experiment Guide 7 -эксперимент боюнча тапса болот. Бирок зымдарга фотоцеллди жана аны туташтыруучу зымдарды гана кошуу керек.
4 -кадам: RGB LED
- RGB LED акылдуу үйдүн коопсуздук системасы үчүн кичи кубат которгуч жана экинчи фотоэлемент менен бирге колдонулат.
- Үч түрдүү түс акылдуу үйдүн тургуну үчүн индикатор катары колдонулат.
- Система "Үй" режимине жайгаштырылганда, LED көк түскө айланат. Система "Алыс" режимине жайгаштырылганда, LED жашыл болуп калат. Кыймыл сенсору катары колдонулган фотоэлемент өчүрүлгөндө, жарык кызыл болуп жаркырайт.
- RGB LED'инин зымдарын SIK Experiment Guide 3 экспериментинен тапса болот.
5 -кадам: Температура сенсору
- Температура сенсору акылдуу үйдө энергияны үнөмдөөнүн негизги бөлүгү.
- Акылдуу үй колдонулганда тургун үйүнө керектүү температураны киргизе алат.
- Температура сенсору - бул система чыныгы температуранын каалаган температурадан канчалык алыс экенин билет.
- Температура сенсорун орнотууну SIK Experiment Guide 9 экспериментинен тапса болот.
6 -кадам: DAGU редуктору
- Мотор акылдуу үйгө каалаган температуранын жана температура сенсорунун көрсөткүчтөрүнүн негизинде үйдөгү температураны жөнгө салууга мүмкүндүк берет.
- Үйдө AC бирдиги катары иштеп, мотор иш жүзүндөгү температуранын каалаган температурадан канчалык жогору экендигине жараша ар кандай ылдамдыкта айланат. Айырмасы канчалык жогору болсо, ал моторду тезирээк айлантат.
- Кыймылдаткычтын зымдарын 11 -эксперименттин алдындагы Эксперимент Колдонмосунан тапса болот.
7 -кадам: Код
- Акылдуу үйдүн коду бир нече колдонуучу интерфейстерин камтыйт, ал резидентке анын кантип иштээрин оңой түшүнүүгө жана орнотууларды оңой өзгөртүүгө мүмкүндүк берет.
- Акылдуу үй тутуму менен, жашоочу алар жокто кыймыл сенсору өчүрүлгөн болсо, эскертүү алат жана электрондук кат алат.
- Киргизилиши керек болгон жалгыз өзгөрүү - бул жөнөтүүчүнүн электрондук почтасы жана алуучунун электрондук почтасынын маалыматын киргизүү.
ачык а; ачык с; ачык м; clc; баарын жап; % Ардуино жана серво өзгөрмөлөрүн тазалаңыз, ошондо алар кодду эффективдүү иштетиши үчүн ар бир жолу кайра аныкталышы мүмкүн ("циклдердин бири туура иштеши үчүн" clear m "керек) a = arduino (); % Arduino өзгөрмөсүн коюңуз
s = servo (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 = 'Температураны тандоо'; % Колдонуучунун киргизүү менюсу үчүн аталышы
dims = [1 30]; % Колдонуучунун киргизүү менюсу үчүн өлчөмдөр
definput = {'72'}; % Меню биринчи ачылганда көрсөтүлүүчү демейки киргизүү
tempsel_array = inputdlg (ыкчам, dlgtitle, dims, definput); % Калкып чыгуучу колдонуучу киргизүү менюсу, киргизилген номерди массивге сактайт
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'); % Жарык деңгээли фоторезистор үчүн кызыл LEDга барат
lightl2 = readVoltage (a, 'A5'); Коопсуздук системасына бара турган фоторезистор үчүн жарыктын деңгээли
switchv = readVoltage (a, 'A0'); Которгучтун % мааниси
% Температура маалыматын чыңалуудан Фаренгейт градусына айландырыңыз
tempC = (темп - 0,5) * 100; % Чыңалууну Цельсий боюнча температурага айландыруу
tempF = (tempC * 9/5) + 32; % Цельсиядагы температураны Фаренгейт температурасына которуу
% Көп түстүү LED үчүн пин сандарын баштаңыз
redp = 'D9'; LEDдан кызыл жарык үчүн % пин
greenp = 'D10'; LEDден жашыл жарык үчүн % Pin
план = 'D11'; LEDден көк жарык үчүн % пин
if tempsel <tempF % Эгерде тандалган температура бөлмө температурасынан чоң болсо
writePosition (s, 1); % Servo кыймылдай баштайт
тыныгуу (10) % Серво 10 секундга чейин айланууну уланта берет, бул AC белгилүү бир убакыттан кийин өчүп калаарын билдирет
writePosition (s, 0); % Желдеткичти күйгүзбөстөн кодду улантуу үчүн желдеткичти өчүрүңүз
tempsel = 150; % Желдеткич өчкөндөн кийин, кайра эле кодду улантуу үчүн, температуранын маанисин өзгөртүңүз
аяктоо
if lightl1 <= 3 % Эгерде биринчи фоторезистор жарыктын төмөн деңгээлин аныктаса
writeDigitalPin (a, 'A1', 1); % Сырттагы жарыктарды билдирген кызыл LEDди күйгүзүңүз
башка % Эгерде жарыктын деңгээли кайрадан жогору болсо
writeDigitalPin (a, 'A1', 0); Жарыктын деңгээли кайрадан жетишерлик жогору болгондо кызыл LED өчүрүлсүн
аяктоо
эгер switchv> 3 % Эгерде которгуч күйгүзүлгөн болсо
A = бар ('m', 'var'); % 'M' өзгөрмөсүнүн бар экендигин текшериңиз, бул убактылуу циклди инициализациялайт жана меню пункту тандалганда аны бузууга мүмкүндүк берет (мунун себеби коддун башында так м жасалышы керек)
ал эми A == 0 % Loop 'm' өзгөрмөсү бар болгонго чейин аткарылат
menutext = 'Кайсы коопсуздук режимине киргиңиз келет?'; % Коопсуздук калкыма менюсу үчүн текст
choices = {'Үйдө', 'Сыртта'}; % Коопсуздук калкыма менюсу үчүн тандоолор
m = меню (меню тексти, тандоолор); % Коопсуздук системасынын режимдери үчүн калкыма меню
break % while цикли үзүлгөнүн камсыз кылат, андыктан меню бир нече жолу чыкпайт
аяктоо
if m == 1 % If 'Home' режими тандалган
writeDigitalPin (а, план, 1); Түсүн өзгөртүүчү LEDде жөн эле көк жарыкты күйгүзүңүз
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2 % Эгерде 'Away' режими тандалса
writeDigitalPin (a, bluep, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); Түсүн өзгөртүүчү LEDдеги жашыл жарыкты күйгүзүңүз
if lightl2 <= 3 % Экинчи фоторезистордо жарыктын деңгээли төмөн болсо, коопсуздук системасы тарабынан аныкталган кыймылды билдирет
sendmail (электрондук каттар, subj, текст); % Алдын ала аныкталган электрондук почта касиеттери бар электрондук кат жөнөтүү writeDigitalPin (a, greenp, 0); % Flash кызыл түсү 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, bluep, 0); % Коопсуздук тутуму өчүрүлгөнүн көрсөтүү үчүн LEDди толугу менен өчүрүңүз
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
аяктоо
аяктоо
Сунушталууда:
Автоматташтырылган жаныбарлар үчүн тамак-аш табагы долбоору: 13 кадам
Автоматташтырылган үй жаныбарлары үчүн азык-түлүк табагы долбоору: Бул көрсөтмөлүү тамак-аш идиштери менен автоматташтырылган, программалоочу үй жаныбарын кантип курууну сүрөттөйт жана түшүндүрөт. Мен бул жерге продукттардын кантип иштээрин жана анын кандайча экенин көрсөткөн видеону тиркемем
(IOT долбоору) ESP8266 жана Openweather API аркылуу аба ырайы маалыматын алыңыз: 5 кадам
(IOT долбоору) ESP8266 жана Openweather API аркылуу аба ырайы маалыматын алыңыз: Бул көрсөтмөдө биз жөнөкөй IOT долбоорун түзөбүз, анда openweather.com/apiден шаарыбыздын аба ырайы маалыматын алып, аны иштетүү программасын колдонуу менен көрсөтөбүз
D-882 транзисторун колдонуу менен эң сонун 3 электроника долбоору: 9 кадам
Top 3 Awesome Electronics Project D-882 Transistor колдонуу: JLCPCB-бул Кытайдагы эң чоң ПХБ прототип ишканасы жана PCB өндүрүш тажрыйбасы 10 жылдан ашкан PCB прототипине жана чакан партиялуу PCB өндүрүшүнө адистешкен жогорку технологиялуу өндүрүүчү. Алар үнөмдүү чечимди камсыздай алышат
IOT Home Automation DIY долбоору #1: 7 кадам
IOT Үйдү Автоматташтыруу DIY долбоору # 1: # КИРИШҮҮ Үй автоматташтыруу - бул АС, Вентилятор, Муздаткыч, жарык сыяктуу тиричилик техникаларын автоматташтыруу процесси, аларды телефонуңуз, компьютериңиз, же алыстан башкарууга болот. Бул долбоор esp2866 менен алектенет
Arduino автоматташтырылган көлөкө экраны долбоору үчүн кадам моторун жана драйверди тандоо: 12 кадам (сүрөттөр менен)
Arduino автоматташтырылган көлөкө экраны долбоору үчүн тепкич моторун жана драйверди тандоо: Бул Нускамада мен Automated Shade Screen долбоорунун прототипине Step Motor жана Driver тандоо үчүн жасаган кадамдарымдан өтөм. Көлөкөлүү экрандар - бул популярдуу жана арзан Coolaroo кол менен жасалган моделдер, мен аны алмаштыргым келди