Агуулгын хүснэгт:

EF230 ухаалаг гэрийн төсөл: 7 алхам
EF230 ухаалаг гэрийн төсөл: 7 алхам

Видео: EF230 ухаалаг гэрийн төсөл: 7 алхам

Видео: EF230 ухаалаг гэрийн төсөл: 7 алхам
Видео: Запёк целую ногу СТРАУСА ВЕСОМ 15 кг в печи 2024, Долдугаар сарын
Anonim
EF230 ухаалаг гэрийн төсөл
EF230 ухаалаг гэрийн төсөл

Шаардлагатай эд анги, материал:

  • 1 Arduino MKR 1000
  • 3 талхны самбар
  • 2 мини гэрэл зураг
  • 1 NPN транзистор
  • 1 мини цахилгаан унтраалга
  • 1 LED - RGB (4 залгуур)
  • 1 LED (таны хүссэн өнгө)
  • 1 диод 1N4148
  • 1 10K Ом эсэргүүцэл
  • 5 100 Ом эсэргүүцэл
  • 1 Температур мэдрэгч TMP36
  • 1 DAGU 48: 1 харьцаатай роторын мотор
  • 25 холбогч утас
  • USB утас
  • MATLAB програм
  • Arduino 101/Genuino 101 хавтангийн SIK туршилтын гарын авлага - SIK туршилтын гарын авлагын холбоос

Энэхүү төсөл нь байшингийн эздийн эрчим хүчний хэрэглээ, аюулгүй байдлыг оновчтой болгоход туслах өгөгдлийг ашиглах ухаалаг байшингийн системийн үзэл баримтлалыг нарийвчлан тусгасан болно. Үүнд шөнийн цагаар гадаа гэрэл асаах гэрэл мэдрэгч, аюулгүй байдлыг хангах гэрэл мэдрэгч, доторх температурыг хянах температур мэдрэгч, сэнс багтсан болно.

Алхам 1: Гэрэлд мэдрэмтгий LED

  • Гэрэлд мэдрэмтгий LED тохиргоо нь шөнийн цагаар асдаг байшингийн гаднах гэрлийг илэрхийлэх зориулалттай.
  • Мини фотоэлемент нь бага хэмжээний гэрэл мэдрэх үед LED асах болно.
  • Ухаалаг байшингийн хувьд энэ нь эрчим хүч, аюулгүй байдлын үр дагавартай байдаг. Энэ нь өдрийн цагаар гэрэл унтрааж, шөнийн цагаар аюулгүй байдлыг нэмэгдүүлэх болно.
  • Төслийн энэ хэсгийн яг утас, тохиргоог SIK Туршилтын гарын авлага 7 -р туршилтын дор олж болно.

Алхам 2: Мини цахилгаан унтраалга

  • Энэхүү унтраалга нь ухаалаг байшингийн аюулгүй байдлыг хангах эхний алхам юм.
  • Асаах үед унтраалга нь хэрэглэгчээс "Гэрийн" эсвэл "Эзгүй" горимд орохыг хүсч байгаа эсэхийг асуух хариултыг эхлүүлнэ.
  • Хэрэв 'Home' горимыг сонгосон бол хамгаалалтыг зэвсэггүй болгосон гэж үзэх боловч 'Away' горимыг сонгох нь аюулгүй байдлын системийг зэвсэглэх болно.
  • Төслийн энэ хэсгийн утсыг Туршилтын гарын авлага дээрх 6 -р туршилтын дагуу олж болно. Ухаалаг байшингийн хувьд 6 -р туршилтаас олдсон LED болон тэдгээрийн холбох утсыг оруулах шаардлагагүй болно.

Алхам 3: Хоёр дахь Photocell

Хоёр дахь гэрэл зураг
Хоёр дахь гэрэл зураг
  • Хоёр дахь фотоэлемент нь ухаалаг байшингийн хамгаалалтын системийн хөдөлгөөн мэдрэгч болдог.
  • Мэдрэгчийг зөвхөн системийг өмнөх алхамд дурдсанчлан 'Away' горимд оруулсан үед л ашигладаг.
  • Хэрэв фотоэлемент хүлээн авах гэрлийн хэмжээ буурч байвал үүнийг байшин доторх хөдөлгөөн гэж хүлээн зөвшөөрдөг.
  • Төслийн энэ хэсгийн тохиргоог SIK туршилтын гарын авлага 7 -р туршилтын дор олж болно. Гэсэн хэдий ч зөвхөн фотоэлемент ба түүний холбосон утсыг утасд оруулах шаардлагатай.

Алхам 4: RGB LED

  • RGB LED нь мини цахилгаан унтраалга, ухаалаг байшингийн хамгаалалтын системийн хоёр дахь фотоцеллтэй хамт хэрэглэгддэг.
  • Гурван өөр өнгийг ухаалаг байшингийн оршин суугчдын үзүүлэлт болгон ашигладаг.
  • Системийг 'Гэр' горимд байрлуулахад LED цэнхэр болж хувирна. Системийг 'Away' горимд байрлуулахад LED нь ногоон өнгөтэй болно. Хөдөлгөөн мэдрэгч болгон ашигладаг фотоэлементийг асаахад гэрэл улаан болж анивчдаг.
  • RGB LED -ийн утсыг SIK туршилтын гарын авлагын 3 -р туршилтаас олж болно.

Алхам 5: Температур мэдрэгч

  • Температур мэдрэгч нь ухаалаг байшинд эрчим хүч хэмнэх гол хэсэг юм.
  • Ухаалаг байшин ашиглалтанд орсон үед оршин суугч гэртээ хүссэн температураа оруулах боломжтой.
  • Температур мэдрэгч нь бодит температур хүссэн температураас хэр хол байгааг систем хэрхэн мэддэгийг хэлнэ.
  • Температур мэдрэгчийн тохиргоог SIK туршилтын гарын авлагын 9 -р туршилтаас олж болно.

Алхам 6: DAGU редуктор

DAGU редуктор
DAGU редуктор
  • Мотор нь ухаалаг гэрт хүссэн температур, температур мэдрэгчийн заалтыг үндэслэн байшин доторх температурыг зохицуулах боломжийг олгодог.
  • Гэрт АС -ийн үүрэг гүйцэтгэдэг тул мотор нь хүссэн температураас хэр өндөр температураас хамаарч өөр өөр хурдтайгаар эргэдэг. Ялгаа нь өндөр байх тусам мотор илүү хурдан эргэлддэг.
  • Моторын утсыг 11 -р туршилтын доорх Туршилтын гарын авлагаас олж болно.

Алхам 7: Код

  • Ухаалаг байшингийн код нь олон хэрэглэгчийн интерфэйсийг агуулдаг бөгөөд энэ нь оршин суугчдад хэрхэн ажилладагийг ойлгох, тохиргоог хялбархан өөрчлөх боломжийг олгодог.
  • Ухаалаг гэрийн системийн тусламжтайгаар оршин суугч нь хөдөлгөөн мэдрэгчийг хол байх үед унтраасан тохиолдолд анхааруулга хүлээн авч, имэйлээр илгээх болно.
  • Зөвхөн хийх ёстой өөрчлөлт бол илгээгчийн имэйл болон хүлээн авагчийн имэйл хаягийн мэдээллийг оруулах явдал юм.

тодорхой a; тодорхой s; цэвэр м; clc; бүгдийг хаах; % Arduino болон servo хувьсагчдыг цэвэрлээрэй, ингэснээр кодыг үр дүнтэй ажиллуулах бүртээ дахин тодорхойлж болно ("гогцоонуудын аль нэг нь зөв ажиллахын тулд" clear m "шаардлагатай) a = arduino (); % Arduino хувьсагчийг тохируулна уу

s = servo (a, 'D6'); % Servo хувьсагчийг тохируулна уу

% Аюулгүй байдлын системийн анхааруулах имэйлийн имэйлийн хувьсагчдыг эхлүүлэх

имэйлүүд = {'хүлээн авагчийн хаягийг оруулах'}; % Аюулгүй байдлын имэйлийг илгээх имэйлийн массив

Имэйл илгээх Gmail -ийг ашиглахад шаардлагатай имэйлийн тохиргооны % тохиргоо

setpref ('Интернет', 'E_mail', 'илгээгчийн имэйл хаяг');

setpref ('Интернет', 'SMTP_Username', 'илгээгчийн хэрэглэгчийн нэр');

setpref ('Интернет', 'SMTP_Password', 'илгээгчийн нууц үг');

тулгуур = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'үнэн');

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

% Имэйлийн сэдэв ба текстийн хувьсагчид

subj = 'Танайд халдагчдын анхааруулга';

text = 'Сайн байна уу, энэ бол таны гэрт аюулгүй байдлын систем бөгөөд танай гэрээс гадуур хөдөлгөөн илрүүлсэн тухай мэдээлж байна. Бид шаардлагатай арга хэмжээг авч, танд холбогдох байгууллагуудтай холбоо барьсан. Аюулгүй байх.';

үнэн байхад

prompt = {'Гэрийн хүссэн температурыг оруулна уу (65F ба 85F хооронд):'}; % Хэрэглэгчийн оролтын цэсийг оруулах

dlgtitle = 'Температурыг сонгох'; % Хэрэглэгчийн оруулах цэсний гарчиг

бүдэг = [1 30]; % Хэрэглэгчийн оруулах цэсний хэмжээсүүд

тодорхойлолт = {'72'}; % Цэсийг анх нээхэд гарч ирэх үндсэн өгөгдөл

tempsel_array = inputdlg (хүлээх мөр, dlgtitle, бүдэг, тодорхойлолт); % Popup хэрэглэгчийн оролтын цэс нь оруулсан дугаарыг массивт хадгалах болно

if ~ isempty (tempsel_array) % Хэрэв массив хоосон биш бол

tempsel_char = cell2mat (tempsel_array); % Массивыг тэмдэгт мөр болгон хөрвүүлэх

tempsel = str2double (tempsel_char); % Тэмдэгтийн мөрийг тоонууд болгон хөрвүүлэх

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Сонгосон температураа ThingSpeak сувагтаа бичнэ үү

break % while циклээс таслах тул цэс олон удаа гарч ирэхгүй

өөр % Хэрэв хэрэглэгч дарж байвал температур оруулахын оронд цуцална

msg1 = msgbox ('Температурыг сонгоогүй, анхдагчаар 85F', 'Анхааруулга!'); % Цуцлах товчлуурыг дарсны дараа хэрэглэгчид үзүүлэх зурвас

хүлээх (msg1); % Үргэлжлүүлэхийн өмнө зурвасын хайрцаг хаагдахыг хүлээнэ үү

tempsel = 85; % Температурыг мессежийн хайрцагт заасан хэмжээнд тохируулна уу

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Сонгосон температураа ThingSpeak сувагтаа бичнэ үү

break % while циклээс таслах тул цэс олон удаа гарч ирэхгүй

Төгсгөл

Төгсгөл

үнэн байхад

chID = 745517; % ThingSpeak сувгийн ID

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; % Цельсийн температурыг Фаренгейтийн температурт хөрвүүлэх

% Олон өнгийн LED -ийн зүү дугаарыг эхлүүлнэ үү

redp = 'D9'; % LED -ээс улаан гэрэл асаах

greenp = 'D10'; % LED -ээс ногоон гэрэл зүү

зураг = 'D11'; LED -ээс цэнхэр гэрлийг зүү

if tempsel <tempF % Хэрэв сонгосон температур өрөөний температураас их байвал

бичих байрлал (ууд, 1); % Servo хөдөлж эхэлнэ

түр зогсоох (10) % Servo нь 10 секундын турш эргэлдэж байх бөгөөд тодорхой хугацааны дараа АС унтрах болно.

бичих байрлал (ууд, 0); % Сэнсийг асаахгүйгээр кодоо үргэлжлүүлэхийн тулд сэнсийг унтраа

tempsel = 150; % Сэнсийг унтраасны дараа температурыг дахин тохируулахын тулд кодыг үргэлжлүүлэхийн тулд дахин хийнэ үү

Төгсгөл

if lightl1 <= 3 % Эхний фото резистор бага гэрлийн түвшинг илрүүлсэн бол

writeDigitalPin (a, 'A1', 1); % Гадна талын гэрлийг илэрхийлдэг улаан LED -ийг асаана уу

өөр % Хэрэв гэрлийн түвшин дахин өндөр байвал

writeDigitalPin (a, 'A1', 0); % Гэрлийн түвшин дахин хангалттай өндөр байх үед улаан LED -ийг унтраа

Төгсгөл

if switchv> 3 % Хэрэв унтраалга асаалттай байвал

A = байдаг ('m', 'var'); % 'M' хувьсагч байгаа эсэхийг шалгаарай, энэ нь while давталтыг эхлүүлж, цэсийн зүйлийг сонгох үед үүнийг эвдэх боломжийг олгоно (ийм учраас кодын эхэнд тодорхой m хийх ёстой)

байхад A == 0 % Loop нь 'm' хувьсагчийг гартал гүйцэтгэх болно

menutext = 'Та ямар аюулгүй байдлын горимд орохыг хүсч байна вэ?'; % Аюулгүй байдлын цэсийн текст

choices = {'Гэртээ', 'Эзгүйд'}; % Аюулгүй байдлын попап цэсийн сонголтууд

m = цэс (цэсийн текст, сонголтууд); % Аюулгүй байдлын системийн горимуудын попап цэс

завсарлага % while цикл тасарсан эсэхийг баталгаажуулдаг тул цэс олон удаа гарч ирэхгүй

Төгсгөл

if m == 1 % Хэрэв 'Home' горим сонгогдсон бол

writeDigitalPin (a, зураг төсөл, 1); % Өнгө өөрчлөгдөх LED дээр цэнхэр гэрлийг асаана уу

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Хэрэв 'Away' горимыг сонгосон бол

writeDigitalPin (a, зураг төсөл, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Өнгө өөрчлөгдөж буй LED дээрх ногоон гэрлийг асаана уу

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 ('Аюулгүй байдлын системээр халдагчдыг илрүүлсэн тул гэрийн эзэд рүү имэйл илгээсэн.', 'АНХААРУУЛГА!'); Хэрэглэгчийн хөдөлгөөнийг мэдэгдэх, илгээсэн имэйлийн талаар мэдээлэх % Message box (msg2) % Үргэлжлүүлэхээсээ өмнө зурвасын хайрцаг хаагдахыг хүлээнэ үү.

өөр

writeDigitalPin (a, greenp, 1); % Гэрлийн түвшин дахин нэмэгдсэний дараа дахин ногоон болж хувирна

Төгсгөл

Төгсгөл

elseif switchv <3.3 % Хэрэв унтраасан бол

writeDigitalPin (a, зураг төсөл, 0); % Аюулгүй байдлын систем унтарсан байгааг харуулахын тулд LED -ийг бүрэн унтраа

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

Төгсгөл

Төгсгөл

Зөвлөмж болгож буй: