Innehållsförteckning:

EF 230: Home System 3000 Instruerbar: 4 steg
EF 230: Home System 3000 Instruerbar: 4 steg

Video: EF 230: Home System 3000 Instruerbar: 4 steg

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

Home System 3000 är en enhet som använder en Arduino, en temperatursensor, en piezo -summer, en optisk detektor/fototransistor och en servo för att visa sätt att förbättra hemmets energieffektivitet.

Steg 1: Temperatursensor

Temperatursensor
Temperatursensor

· Kör din ström och jordledningar från

mikrokontrollern på sidan av brödbrädet

· Placera temperatursensorn i brödbrädet och kör motsvarande kraft- och jordkablar i enlighet därmed

· Lägg märke till att temperatursensorn har tre stift, och den mellersta tappen har en kabel som går från porten "A0".

· Kod för temperaturgivare:

answer = questdlg ('Kör arduino och servo startkod', 'svar', 'Ok', 'Ok')

prompt = 'Tryck på valfri knapp för att börja'

paus

prompt1 = 'Ställ in minsta temperatur'

x = input (prompt1)

prompt2 = 'Ställ in högsta temperatur'

y = input (prompt2)

prompt3 = 'tryck på valfri knapp för att börja'

paus

figur

h = animerad linje;

ax = gca;

ax. YGrid = 'on';

ax. YLim = [65 85];

stopp = falskt;

startTime = datetime ('nu');

medan ~ sluta

% Läs strömspänningsvärdet

v = readVoltage (a, 'A0');

% Beräkna temperaturen från spänning (baserat på datablad)

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

TempF = 9/5*TempC + 32;

% Få aktuell tid

t = datetime ('nu') - startTime;

% Lägg poäng till animering

tilläggspunkter (h, datenum (t), TempF)

% Uppdatera axlar

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

datetick ('x', 'keeplimits')

drawow

% Kontrollera stopptillstånd

stop = readDigitalPin (a, 'D12');

Steg 2: summer

Summer
Summer

· Koppla in summern som används för att signalera en extrem hög eller extrem låg temperaturavläsning

· Ingen tråd dras från den positiva kolumnen till den positiva sidan av summern

· I stället dras en kabel från summerns positiva sida till en port märkt "11"

Detta kommer att användas senare för att anropa summerns plats i den skrivna koden.

· Kod för summer:

om TempF> = y

disp ('stäng dörren det är varmt')

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

elseif TempF <= x

disp ('stäng dörren, det är kallt')

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

slutet

slutet

Steg 3: Optisk detektor/fototransistor

Optisk detektor/fototransistor
Optisk detektor/fototransistor

· Denna sensor kräver motståndskraft till skillnad från de andra

· Se till att alla fyra stift på sensorn ingår i slingan när du har anslutit kablarna

· Sensorn detekterar en förändring i ljuset som representerar rörelse och registrerar den som en ingång

· Kod för optisk detektor/fototransistor:

rensa a

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

prompt = 'Ställ in tröskel för ljusnivå'

z = input (prompt)

lightLevel = 0

medan lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

om lightLevel> = z

answer = questdlg ('skulle du vilja ändra AC?', 'Ja', 'Nej')

byta svar

fall 'Ja'

answer2 = questdlg ('Vrid AC upp eller ner?', 'svar', 'Ned', 'Upp', 'Upp')

byta svar 2

fall 'Down'

s = servo (a, 'D10');

för vinkel = 0:.1:.5

writePosition (s, vinkel);

current_position = readPosition (s);

current_position = current_position * 180;

% skriv ut aktuell position för servomotor

fprintf ('Nuvarande position är %d / n', aktuell_position);

% liten fördröjning krävs så att servon kan placeras vid

% vinkel berättade för den.

paus (2);

slutet

% sätt tillbaka motorn till 0 -vinkelläge

writePosition (s, 0);

klart s

prompt = 'Tryck på valfri knapp för att fortsätta'

questdlg ('AC avstängd', 'svar', 'Ok', 'Ok')

fall 'upp'

s = servo (a, 'D10');

för vinkel =.5:.1: 1

writePosition (s, vinkel);

current_position = readPosition (s);

current_position = current_position * 180;

% skriv ut aktuell position för servomotor

fprintf ('Nuvarande position är %d / n', aktuell_position);

% liten fördröjning krävs så att servon kan placeras vid

% vinkel berättade för den.

paus (2);

slutet

Steg 4: Servo

Servo
Servo

· Servon representerar

en luftkonditionering, och är en utsignal från rörelsedetekteringsingången

· Det kräver en positiv ledning, jordad tråd och en kabel från port "D9" till servon

· Kod för servo:

% sätt tillbaka motorn till 0 -vinkelläge

writePosition (s, 0);

klart s

prompt = 'Tryck på valfri knapp för att fortsätta'

questdlg ('AC vände', 'svar', 'Ok', 'Ok')

slutet

slutet

paus

ha sönder

slutet

slutet

*Särskild anmärkning: en del av koden för servon är integrerad med koden för den optiska detektorn/fototransistorn.

Rekommenderad: