Talaan ng mga Nilalaman:

EF 230: Home System 3000 Naituturo: 4 Mga Hakbang
EF 230: Home System 3000 Naituturo: 4 Mga Hakbang

Video: EF 230: Home System 3000 Naituturo: 4 Mga Hakbang

Video: EF 230: Home System 3000 Naituturo: 4 Mga Hakbang
Video: Как выбрать сейф для дома? Какой сейф лучше и не дорого... 2024, Hulyo
Anonim
EF 230: Maituturo sa Home System 3000
EF 230: Maituturo sa Home System 3000

Ang Home System 3000 ay isang aparato na gumagamit ng isang Arduino, isang sensor ng temperatura, isang piezo buzzer, isang optical detector / phototransistor, at isang servo upang maipakita ang mga paraan upang mapabuti ang kahusayan ng enerhiya sa bahay.

Hakbang 1: Sensor ng Temperatura

Temperatura Sensor
Temperatura Sensor

· Patakbuhin ang iyong lakas at mga ground wire mula sa

ang micro controller sa gilid ng board ng tinapay

· Ilagay ang sensor ng temperatura sa board ng tinapay, at patakbuhin ang kaukulang kapangyarihan at mga wire sa lupa nang naaayon

· Pansinin na ang sensor ng temperatura ay may tatlong prong, at ang gitnang prong ay may isang wire na tumatakbo mula sa port na "A0".

· Code para sa sensor ng temperatura:

answer = questdlg ('Mangyaring patakbuhin ang arduino at servo start code', 'tugon', 'Ok', 'Ok')

prompt = 'Pindutin ang anumang key upang magsimula'

huminto

prompt1 = 'Itakda ang minimum na temperatura'

x = input (prompt1)

prompt2 = 'Itakda ang maximum na temperatura'

y = input (prompt2)

prompt3 = 'pindutin ang anumang key upang magsimula'

huminto

pigura

h = animatedline;

palakol = gca;

ax. YGrid = 'on';

palakol. YLim = [65 85];

huminto = maling;

startTime = datime ('ngayon');

habang ~ huminto

% Basahin ang kasalukuyang halaga ng boltahe

v = readVoltage (a, 'A0');

% Kalkulahin ang temperatura mula sa boltahe (batay sa sheet ng data)

TempC = (v - 0.5) * 100;

TempF = 9/5 * TempC + 32;

% Kumuha ng kasalukuyang oras

t = datime ('ngayon') - startTime;

% Magdagdag ng mga puntos sa animasyon

mga addpoint (h, datenum (t), TempF)

% Update axes

ax. XLim = datenum ([t-segundo (15) t]);

datetick ('x', 'keeplimits')

drawnow

% Suriin ang kundisyon ng paghinto

itigil = readDigitalPin (a, 'D12');

Hakbang 2: Buzzer

Buzzer
Buzzer

· Wire sa buzzer na gagamitin upang magsenyas ng matinding mataas o matinding pagbasa ng mababang temperatura

· Walang wire na pinatakbo mula sa positibong haligi hanggang sa positibong bahagi ng buzzer

· Sa halip ay patakbuhin ang isang kawad mula sa positibong bahagi ng buzzer patungo sa isang port na may label na "11"

Gagamitin ito sa paglaon upang tawagan ang lokasyon ng buzzer sa nakasulat na code.

· Code para sa buzzer:

kung TempF> = y

disp ('isara ang pinto' ay mainit ')

playTone (a, 'D11', 500, 1)

kung hindi man TempF <= x

disp ('isara ang pinto malamig')

playTone (a, 'D11', 250, 1)

magtapos

magtapos

Hakbang 3: Optical Detector / Phototransistor

Optical Detector / Phototransistor
Optical Detector / Phototransistor

· Ang sensor na ito ay nangangailangan ng resisters hindi katulad ng iba

· Siguraduhin na ang lahat ng apat na prongs ng sensor ay kasama sa loop pagkatapos ng pag-plug sa mga wire

· Nakita ng sensor ang isang pagbabago sa ilaw, kumakatawan sa paggalaw, at itinatala ito bilang isang input

· Code para sa Optical Detector / Phototransistor:

linawin a

a = arduino ('/ dev / tty.usbserial-DN01DVI2', 'Uno', 'Library', 'Servo');

prompt = 'Itakda ang light level threshold'

z = input (prompt)

lightLevel = 0

habang lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

kung lightLevel> = z

Sagot = questdlg ('nais bang baguhin ang AC?', 'Oo', 'Hindi')

lumipat ng sagot

kaso 'Oo'

answer2 = questdlg ('I-AC pataas o pababa?', 'tugon', 'Pababa', 'Pataas', 'Pataas')

lumipat ng sagot2

kaso 'Down'

s = servo (a, 'D10');

para sa anggulo = 0:.1:.5

isulat angPosisyon (s, anggulo);

current_position = readPosition (s);

current_position = kasalukuyang_posisyon * 180;

% print kasalukuyang posisyon ng servo motor

fprintf ('Kasalukuyang posisyon ay% d / n', kasalukuyang_posisyon);

% maliit na pagkaantala ang kinakailangan upang ang servo ay maaaring nakaposisyon sa

% anggulo na sinabi dito.

i-pause (2);

magtapos

% ibalik ang motor sa posisyon ng 0 na anggulo

isulat angPosisyon (s, 0);

malinaw s

prompt = 'Pindutin ang anumang key upang magpatuloy'

questdlg ('AC nakabagsak', 'tugon', 'Ok', 'Ok')

kaso 'Up'

s = servo (a, 'D10');

para sa anggulo =.5:.1: 1

isulat angPosisyon (s, anggulo);

current_position = readPosition (s);

current_position = kasalukuyang_posisyon * 180;

% print kasalukuyang posisyon ng servo motor

fprintf ('Kasalukuyang posisyon ay% d / n', kasalukuyang_posisyon);

% maliit na pagkaantala ang kinakailangan upang ang servo ay maaaring nakaposisyon sa

% anggulo na sinabi dito.

i-pause (2);

magtapos

Hakbang 4: Servo

Servo
Servo

· Ang servo ay kumakatawan

isang air conditioner, at isang output ng input ng detection ng paggalaw

· Nangangailangan ito ng positibong wire, ground wire, at isang wire mula sa port "D9" patungo sa servo

· Code para sa servo:

% ibalik ang motor sa posisyon ng 0 na anggulo

isulat angPosisyon (s, 0);

malinaw s

prompt = 'Pindutin ang anumang key upang magpatuloy'

questdlg ('AC nakabukas', 'tugon', 'Ok', 'Ok')

magtapos

magtapos

huminto

pahinga

magtapos

magtapos

* Espesyal na tala: ang ilan sa mga code para sa servo ay isinama sa code para sa optical detector / phototransistor.

Inirerekumendang: