Indholdsfortegnelse:

EF 230: Home System 3000 Instruktionsbar: 4 trin
EF 230: Home System 3000 Instruktionsbar: 4 trin

Video: EF 230: Home System 3000 Instruktionsbar: 4 trin

Video: EF 230: Home System 3000 Instruktionsbar: 4 trin
Video: Как выбрать сейф для дома? Какой сейф лучше и не дорого... 2024, Juli
Anonim
EF 230: Home System 3000 Instruerbar
EF 230: Home System 3000 Instruerbar

Home System 3000 er en enhed, der bruger en Arduino, en temperatursensor, en piezo -summer, en optisk detektor/fototransistor og en servo til at vise måder at forbedre hjemmets energieffektivitet.

Trin 1: Temperatursensor

Temperatur måler
Temperatur måler

· Kør din strøm og jordledninger fra

mikrokontrolleren til siden af brødbrættet

· Placer temperatursensoren i brødbrættet, og kør de tilsvarende strøm- og jordledninger i overensstemmelse hermed

· Bemærk, at temperatursensoren har tre stifter, og den midterste tand har en ledning, der løber fra porten "A0".

· Kode til temperatursensor:

answer = questdlg ('Kør venligst arduino og servo startkode', 'svar', 'Ok', 'Ok')

prompt = 'Tryk på en vilkårlig tast for at starte'

pause

prompt1 = 'Indstil minimumstemperatur'

x = input (prompt1)

prompt2 = 'Indstil maksimal temperatur'

y = input (prompt2)

prompt3 = 'tryk på en vilkårlig tast for at begynde'

pause

figur

h = animeret linje;

ax = gca;

ax. YGrid = 'on';

ax. YLim = [65 85];

stop = falsk;

startTime = datetime ('nu');

mens ~ stop

% Læs den aktuelle spændingsværdi

v = readVoltage (a, 'A0');

% Beregn temperatur ud fra spænding (baseret på datablad)

TempC = (v - 0,5)*100;

TempF = 9/5*TempC + 32;

% Få den aktuelle tid

t = datetime ('nu') - startTime;

% Tilføj point til animation

tilføjelsespunkter (h, datenum (t), TempF)

% Opdater akser

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

datetick ('x', 'keeplimits')

tegnet

% Kontroller stoptilstand

stop = readDigitalPin (a, 'D12');

Trin 2: summer

Summer
Summer

· Tråd i summeren, der bruges til at signalere en ekstrem høj eller ekstrem lav temperaturaflæsning

· Der ledes ingen ledninger fra den positive søjle til den positive side af summeren

· I stedet føres en ledning fra den positive side af summeren til en port mærket "11"

Dette bruges senere til at kalde summerens placering i den skrevne kode.

· Kode til summer:

hvis TempF> = y

disp ('luk døren det er varmt')

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

elseif TempF <= x

disp ('luk døren det er koldt')

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

ende

ende

Trin 3: Optisk detektor/fototransistor

Optisk detektor/fototransistor
Optisk detektor/fototransistor

· Denne sensor kræver modstand modsat de andre

· Sørg for, at alle fire stik på sensoren er inkluderet i sløjfen efter tilslutning af ledningerne

· Sensoren registrerer en ændring i lyset, der repræsenterer bevægelse, og registrerer det som et input

· Kode for optisk detektor/fototransistor:

rydde a

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

prompt = 'Indstil tærskel for lysniveau'

z = input (prompt)

lightLevel = 0

mens lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

hvis lightLevel> = z

svar = questdlg ('vil du gerne ændre AC?', 'Ja', 'Nej')

skift svar

tilfælde 'Ja'

answer2 = questdlg ('Skru AC op eller ned?', 'svar', 'Ned', 'Op', 'Op')

skift svar 2

case 'Down'

s = servo (a, 'D10');

for vinkel = 0:.1:.5

writePosition (s, vinkel);

current_position = readPosition (s);

nuværende position = nuværende position * 180;

% udskriv nuværende position af servomotor

fprintf ('Nuværende position er %d / n', nuværende_position);

% lille forsinkelse er påkrævet, så servoen kan placeres ved

% vinkel fortalt til det.

pause (2);

ende

% bring motoren tilbage til 0 vinkelposition

writePosition (s, 0);

klar s

prompt = 'Tryk på en vilkårlig tast for at fortsætte'

questdlg ('AC slået ned', 'svar', 'Ok', 'Ok')

case 'Up'

s = servo (a, 'D10');

for vinkel =.5:.1: 1

writePosition (s, vinkel);

current_position = readPosition (s);

nuværende position = nuværende position * 180;

% udskriv nuværende position af servomotor

fprintf ('Nuværende position er %d / n', nuværende_position);

% lille forsinkelse er påkrævet, så servoen kan placeres ved

% vinkel fortalt til det.

pause (2);

ende

Trin 4: Servo

Servo
Servo

· Servoen repræsenterer

et klimaanlæg og er et output fra bevægelsesdetekteringsindgangen

· Det kræver en positiv ledning, jordledning og en ledning fra port "D9" til servoen

· Kode til servo:

% bring motoren tilbage til 0 vinkelposition

writePosition (s, 0);

klar s

prompt = 'Tryk på en vilkårlig tast for at fortsætte'

questdlg ('AC slået op', 'svar', 'Ok', 'Ok')

ende

ende

pause

pause

ende

ende

*Særlig bemærkning: noget af koden til servoen er integreret med koden til den optiske detektor/fototransistor.

Anbefalede: