Talaan ng mga Nilalaman:

EF230 Smart Home Project: 7 Mga Hakbang
EF230 Smart Home Project: 7 Mga Hakbang

Video: EF230 Smart Home Project: 7 Mga Hakbang

Video: EF230 Smart Home Project: 7 Mga Hakbang
Video: EF 230 Roomba Project 2024, Hulyo
Anonim
EF230 Smart Home Project
EF230 Smart Home Project

Kailangan ng Mga Bahagi at Materyales:

  • 1 Arduino MKR 1000
  • 3 Mga Breadboard
  • 2 Mini Photocell
  • 1 Mga Transistor ng NPN
  • 1 Mini Power Switch
  • 1 LED - RGB (4 prong)
  • 1 LED (kulay na iyong pinili)
  • 1 Diode 1N4148
  • 1 10K Ohm Resistors
  • 5 100 Ohm Resistor
  • 1 Temperatura Sensor TMP36
  • 1 DAGU 48: 1 Ratio Gearmotor
  • 25 Mga Jumper Wires
  • USB Cord
  • Programa ng MATLAB
  • Gabay sa Eksperimento ng SIK para sa Arduino 101 / Genuino 101 Board - Link ng Patnubay sa Eksperimento ng SIK

Detalyado ng proyektong ito ang konsepto ng disenyo ng isang matalinong sistema ng bahay na gagamit ng data upang matulungan ang mga may-ari ng bahay na ma-optimize ang kanilang paggamit ng enerhiya at seguridad. Nagsasama ito ng isang light sensor upang i-on ang mga panlabas na ilaw sa gabi, isang light sensor para sa seguridad, at isang sensor ng temperatura at bentilador para sa panloob na kontrol sa temperatura.

Hakbang 1: Light Sensitive LED

  • Ang light sensitive LED setup ay sinadya upang kumatawan sa mga panlabas na ilaw sa isang bahay na papasok sa gabi.
  • Kapag ang mini photocell ay nakakaramdam ng isang nabawasan na halaga ng ilaw ay sindihan ang LED.
  • Para sa isang matalinong bahay mayroon itong implikasyon na enerhiya at seguridad. Makakatipid ito ng enerhiya sa pamamagitan ng pag-iwan ng mga ilaw sa araw at magbibigay ng mas mataas na seguridad sa gabi.
  • Ang eksaktong mga kable at pag-set up para sa bahaging ito ng proyekto ay maaaring matagpuan sa ilalim ng eksperimento 7 sa SIK Experiment Guide.

Hakbang 2: Mini Power Switch

  • Ang switch ay ang unang hakbang sa proseso ng seguridad ng smart home.
  • Kapag naka-on, ang switch ay magpapasimula ng isang tugon na nagtatanong sa gumagamit kung nais nilang ipasok ang 'Home' mode o 'Away' mode.
  • Kung napili ang mode na 'Home' ang seguridad ay isinasaalang-alang na hindi naka-armas, ngunit ang pagpili ng 'Away' mode ay braso ang sistema ng seguridad.
  • Ang mga kable para sa bahaging ito ng proyekto ay maaaring matagpuan sa ilalim ng eksperimento 6 sa Gabay sa Eksperimento. Para sa mga layunin ng matalinong bahay, ang mga LED at ang kanilang mga nag-uugnay na mga wire na matatagpuan sa eksperimento 6 ay hindi kailangang isama.

Hakbang 3: Pangalawang Photocell

Pangalawang Photocell
Pangalawang Photocell
  • Ang pangalawang photocell ay nagsisilbing isang sensor ng paggalaw para sa sistema ng seguridad ng smart home.
  • Ginagamit lamang ang sensor kapag inilalagay ang system sa 'Away' mode tulad ng inilarawan sa nakaraang hakbang.
  • Kung ang photocell ay nakakaranas ng pagbawas sa dami ng ilaw na natatanggap nito, kinikilala ito bilang paggalaw sa loob ng bahay.
  • Ang pag-set up para sa bahaging ito ng proyekto ay maaaring matagpuan sa ilalim ng eksperimento 7 sa SIK Experiment Guide. Gayunpaman, ang photocell at ang mga wires na kumukonekta lamang nito ang kailangang isama sa mga kable.

Hakbang 4: RGB LED

  • Ang RGB LED ay ginagamit kasabay ng mini power switch at ang pangalawang photocell para sa security system ng matalinong tahanan.
  • Ang tatlong magkakaibang kulay ay ginagamit bilang tagapagpahiwatig para sa matalinong naninirahan sa bahay.
  • Kapag inilagay ang system sa 'Home' mode, ang LED ay nagiging asul. Kapag inilagay ang system sa 'Away' mode ang LED ay nagiging berde. Kapag ang photocell na ginamit bilang isang sensor ng paggalaw ay napalampas, ang ilaw ay kumikislap ng pula.
  • Ang mga kable para sa RGB LED ay matatagpuan sa eksperimento 3 ng SIK na Gabay sa Eksperimento.

Hakbang 5: Temperatura Sensor

  • Ang sensor ng temperatura ay pangunahing bahagi ng pagtitipid ng enerhiya sa matalinong bahay.
  • Ang residente ay nakapag-input ng isang nais na temperatura para sa kanilang tahanan kapag ginagamit ang matalinong bahay.
  • Ang sensor ng temperatura ay kung paano nalalaman ng system kung gaano kalayo ang aktwal na temperatura mula sa nais na temperatura.
  • Ang pag-set up para sa sensor ng temperatura ay matatagpuan sa eksperimento 9 ng SIK na Gabay sa Eksperimento.

Hakbang 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • Pinapayagan ng motor ang matalinong bahay upang makontrol ang temperatura sa bahay batay sa nais na temperatura at mga pagbasa ng sensor ng temperatura.
  • Kumikilos bilang unit ng AC sa bahay, ang motor ay umiikot sa iba't ibang mga bilis batay sa kung gaano mas mataas ang aktwal na temperatura kaysa sa nais na temperatura. Kung mas mataas ang pagkakaiba, mas mabilis niyang umiikot ang motor.
  • Ang mga kable para sa motor ay matatagpuan sa Gabay sa Eksperimento sa ilalim ng eksperimento 11.

Hakbang 7: Code

  • Ang code para sa matalinong bahay ay nagsasama ng maraming mga interface ng gumagamit na nagpapahintulot sa residente na madaling maunawaan kung paano ito gumagana at upang madaling baguhin ang mga setting.
  • Gamit ang smart home system, makakatanggap ang residente at alerto sa email kung ang sensor ng paggalaw ay naka-off habang wala sila.
  • Ang pagbabago lamang na kailangang gawin ay ang pagpasok ng impormasyon para sa email ng nagpadala at email address ng tatanggap.

malinaw na a; malinaw s; malinaw na m; clc; isara ang lahat; % Malinaw ang mga variable ng arduino at servo upang maaari silang muling tukuyin sa bawat oras upang ang code ay epektibo na tatakbo ("malinaw na m" ay kinakailangan para sa isa sa mga habang ang mga loop ay gumana nang maayos) a = arduino (); % Itakda ang variable ng arduino

s = servo (a, 'D6'); % Itakda ang variable ng servo

% Pasimulan ang mga variable ng email para sa email ng babala sa system ng seguridad

mga email = {'ipasok ang tatanggap na address'}; % Array ng mga email upang maipadala ang email ng seguridad

% Mga setting ng kagustuhan sa email kinakailangan para sa paggamit ng isang Gmail upang magpadala ng mail mula sa

setpref ('Internet', 'E_mail', 'email address ng nagpadala');

setpref ('Internet', 'SMTP_Username', 'username ng nagpadala');

setpref ('Internet', 'SMTP_Password', 'password ng nagpadala');

props = java.lang. System.getProperties;

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

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

% Mga variable ng paksa ng email at teksto

subject = 'Intruder Alert at Your Home';

text = 'Kumusta, Ito ang iyong sistema sa seguridad ng Smart Home na nagpapapaalam sa iyo na may kilos na nakita sa labas ng iyong tahanan. Kinuha namin ang mga kinakailangang hakbang at nakipag-ugnay sa mga awtoridad para sa iyo. Manatiling ligtas.';

habang totoo

prompt = {'Ipasok ang nais na temperatura sa bahay (sa pagitan ng 65F at 85F):'}; % Prompt para sa menu ng pag-input ng gumagamit

dlgtitle = 'Pumili ng Temperatura'; % Pamagat para sa menu ng pag-input ng gumagamit

dims = [1 30]; % Mga Dimensyon para sa menu ng pag-input ng gumagamit

kahulugan = {'72'}; % Default na input na lalabas kapag ang menu ay unang binuksan

tempsel_array = inputdlg (prompt, dlgtitle, dims, kahulugan); % Popup input menu ng gumagamit na makatipid ng ipinasok na numero sa isang array

kung ~ isempty (tempsel_array)% Kung ang array ay HINDI walang laman

tempsel_char = cell2mat (tempsel_array); % I-convert ang array sa isang string ng character

tempsel = str2double (tempsel_char); % I-convert ang character string sa mga numero

thingSpeakWrite (chID, tempsel, 'WritingKey', writeKey, 'Fields', 1); % Isulat ang napiling temperatura sa iyong ThingSpeak channel

break% Break mula sa habang loop upang ang menu ay hindi pop up ng maraming beses

iba% Kung ang pag-click ng gumagamit ay kanselahin sa halip na maglagay ng isang temperatura

msg1 = msgbox ('Walang napiling temperatura, na-default sa 85F', 'Babala!'); % Ipinapakita ang mensahe sa gumagamit pagkatapos mag-click sa kanselahin

waitfor (msg1); % Hintaying magsara ang kahon ng mensahe bago magpatuloy

tempsel = 85; % Itakda ang temperatura sa kung ano ang nakasaad sa kahon ng mensahe

thingSpeakWrite (chID, tempsel, 'WritingKey', writeKey, 'Fields', 1); % Isulat ang napiling temperatura sa iyong ThingSpeak channel

break% Break mula sa habang loop upang ang menu ay hindi pop up ng maraming beses

magtapos

magtapos

habang totoo

chID = 745517; % ThingSpeak Channel ID

writeKey = 'G9XOQTP8KOVSCT0N'; % Key para sa pag-access sa ThingSpeak Channel

% Pasimulan ang mga sensor upang makuha ang data

tempread = readVoltage (a, 'A3'); % Basahin ang boltahe ng sensor ng temperatura

lightl1 = readVoltage (a, 'A2'); % Antas ng ilaw para sa photoresistor na papunta sa pulang LED

lightl2 = readVoltage (a, 'A5'); % Antas ng ilaw para sa photoresistor na papunta sa security system

switchv = readVoltage (a, 'A0'); % Halaga para sa switch

% I-convert ang data ng temperatura mula sa boltahe hanggang sa degree Fahrenheit

tempC = (tempread - 0.5) * 100; % I-convert ang boltahe sa temperatura sa Celsius

tempF = (tempC * 9/5) + 32; % Baguhin ang temperatura sa Celsius sa temperatura sa Fahrenheit

% Pasimulan ang mga numero ng pin para sa multicolor LED

redp = 'D9'; % Pin para sa pulang ilaw mula sa LED

greenp = 'D10'; % Pin para sa berdeng ilaw mula sa LED

bluep = 'D11'; % Pin para sa asul na ilaw mula sa LED

kung tempsel <tempF% Kung ang napiling temperatura ay mas malaki kaysa sa temperatura ng kuwarto

isulat angPosisyon (s, 1); % Servo ay magsisimulang gumalaw

i-pause (10)% Servo ay patuloy na umiikot sa loob ng 10 segundo upang kumatawan na ang AC ay papatayin pagkatapos ng isang tinukoy na dami ng oras

isulat angPosisyon (s, 0); % Patayin ang tagahanga para sa layunin ng pagpapatuloy ng code nang walang tagahanga

tempsel = 150; % Baguhin ang halaga ng temperatura upang masira ang loop pagkatapos na ang fan ay naka-off, muli lamang para sa layunin ng pagpapatuloy ng code

magtapos

kung lightl1 <= 3% Kung ang unang photoresistor ay nakakita ng isang mababang antas ng ilaw

isulatDigitalPin (a, 'A1', 1); % I-on ang pulang LED na kumakatawan sa mga panlabas na ilaw

iba% Kung ang antas ng ilaw ay mataas muli

isulatDigitalPin (a, 'A1', 0); % Patayin ang pulang LED kapag ang antas ng ilaw ay sapat na mataas muli

magtapos

kung switchv> 3% Kung ang switch ay nakabukas

A = mayroon ('m', 'var'); % Suriin ang pagkakaroon ng variable 'm', isisimulan nito ang habang loop at papayagan itong masira kapag napili ang isang item sa menu (ito ang dahilan kung bakit dapat gawin ang malinaw na m sa simula ng code)

habang ang A == 0% Loop ay papatay hanggang sa may variable na 'm'

menutext = 'Aling security mode ang nais mong ipasok?'; % Text para sa security popup menu

pagpipilian = {'Home', 'Away'}; % Mga pagpipilian para sa security popup menu

m = menu (menutext, mga pagpipilian); % Popup menu para sa mga mode ng system ng seguridad

break% Tinitiyak na ang habang loop ay nasira kaya ang menu ay hindi pop up ng maraming beses

magtapos

kung m == 1% Kung ang mode na 'Home' ay napili

isulatDigitalPin (a, bluep, 1); % Buksan lamang ang asul na ilaw sa pagbabago ng kulay na LED

isulatDigitalPin (a, redp, 0);

isulatDigitalPin (a, greenp, 0);

otherwiseif m == 2% Kung ang mode na 'Away' ay napili

isulatDigitalPin (a, bluep, 0);

isulatDigitalPin (a, redp, 0);

isulatDigitalPin (a, greenp, 1); % I-on lamang ang berdeng ilaw sa pagbabago ng kulay na LED

kung lightl2 <= 3% Kung ang antas ng ilaw sa pangalawang photoresistor ay mababa, na kumakatawan sa paggalaw na nakita ng sistema ng seguridad

sendmail (mga email, paksa, teksto); % Magpadala ng isang email na may dating natukoy na mga pag-aari sa email na magsulatDigitalPin (a, greenp, 0); % Flash pulang kulay on at off ng 2 beses

isulatDigitalPin (a, redp, 1);

pause (0.3)

isulatDigitalPin (a, redp, 0);

pause (0.3)

isulatDigitalPin (a, redp, 1);

pause (0.3)

isulatDigitalPin (a, redp, 0);

pause (0.3)

isulatDigitalPin (a, redp, 1); % Tapusin na may solidong pula pagkatapos ng flashing upang maipakita na may paggalaw hanggang sa bumalik ang antas ng ilaw

msg2 = msgbox ('Nakita ng nanghihimasok ng system ng seguridad, isang email ang naipadala sa mga may-ari ng bahay upang ipaalam sa kanila.', 'WARNING!'); % Box ng mensahe upang ipagbigay-alam sa gumagamit ng paggalaw at upang ipaalam ang tungkol sa ipinadalang email na paghihintay (msg2)% Hintaying magsara ang kahon ng mensahe bago magpatuloy

iba pa

isulatDigitalPin (a, greenp, 1); % Kapag ang antas ng ilaw ay tumaas muli ito ay babalik sa berde

magtapos

magtapos

kung hindi man switchv <3.3% Kung ang switch ay naka-off

isulatDigitalPin (a, bluep, 0); % Patayin nang buo ang LED upang maipakita na naka-off ang security system

isulatDigitalPin (a, redp, 0);

isulatDigitalPin (a, greenp, 0);

magtapos

magtapos

Inirerekumendang: