Taula de continguts:

EF 230: Home System 3000 Instructible: 4 passos
EF 230: Home System 3000 Instructible: 4 passos

Vídeo: EF 230: Home System 3000 Instructible: 4 passos

Vídeo: EF 230: Home System 3000 Instructible: 4 passos
Vídeo: Thief cuts lock on Trek Powerfly 4 electric bike with angle grinder 2024, Juliol
Anonim
EF 230: Home System 3000 instructable
EF 230: Home System 3000 instructable

Home System 3000 és un dispositiu que utilitza un Arduino, un sensor de temperatura, un brunzidor piezoelèctric, un detector òptic / fototransistor i un servo per mostrar maneres de millorar l'eficiència energètica de la llar.

Pas 1: sensor de temperatura

Sensor de temperatura
Sensor de temperatura

· Executeu els cables d’alimentació i de terra

el microcontrolador al costat de la placa de pa

· Col·loqueu el sensor de temperatura a la placa de pa i feu servir els cables d’alimentació i de terra corresponents

· Tingueu en compte que el sensor de temperatura té tres puntes i la punta central té un cable que surt del port "A0".

· Codi del sensor de temperatura:

answer = questdlg ("Si us plau, executeu el codi d'inici d'arduino i servo", "resposta", "D'acord", "D'acord")

prompt = 'Premeu qualsevol tecla per començar'

pausa

prompt1 = "Estableix la temperatura mínima"

x = entrada (indicador1)

prompt2 = "Estableix la temperatura màxima"

y = entrada (indicador2)

prompt3 = 'premeu qualsevol tecla per començar'

pausa

figura

h = línia animada;

ax = gca;

ax. YGrid = 'activat';

ax. YLim = [65 85];

stop = fals;

startTime = datetime ('ara');

mentre ~ parar

% Llegir el valor de la tensió actual

v = readVoltage (a, 'A0');

% Calculeu la temperatura a partir del voltatge (basat en el full de dades)

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

TempF = 9/5 * TempC + 32;

% Obteniu l'hora actual

t = data i hora ('ara') - hora d'inici;

% Afegeix punts a l'animació

punts additius (h, datenum (t), TempF)

% Actualitza eixos

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

dataetick ('x', 'keeplimits')

dibuix

% Comproveu l'estat de parada

stop = readDigitalPin (a, 'D12');

Pas 2: timbre

Zumbador
Zumbador

· Cable del brunzidor que s’utilitzarà per indicar una lectura de temperatura extrema alta o baixa

· No es passa cap cable de la columna positiva al costat positiu del brunzidor

· En lloc d'això, s'executa un cable des del costat positiu del brunzidor fins a un port amb l'etiqueta "11"

S’utilitzarà més endavant per trucar a la ubicació del brunzidor al codi escrit.

· Codi del brunzidor:

si TempF> = y

disp ("tanca la porta, fa calor")

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

elseif TempF <= x

disp ("tanca la porta, fa fred")

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

final

final

Pas 3: Detector òptic / fototransistor

Detector òptic / fototransistor
Detector òptic / fototransistor

· Aquest sensor requereix resistències a diferència dels altres

· Assegureu-vos que les quatre puntes del sensor estan incloses al bucle després d’endollar els cables

· El sensor detecta un canvi de llum, que representa el moviment, i el registra com a entrada

· Codi per al detector òptic / fototransistor:

netejar a

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

prompt = 'Estableix el llindar del nivell de llum'

z = entrada (sol·licitud)

lightLevel = 0

mentre que lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

si lightLevel> = z

answer = questdlg ("voldria modificar AC?", "Sí", "No")

canvia de resposta

cas "Sí"

answer2 = questdlg ("Voleu pujar o baixar la CA?", "resposta", "Baixar", "Pujar", "Pujar")

canvia answer2

cas "avall"

s = servo (a, 'D10');

per angle = 0:.1:.5

writePosition (s, angle);

posició_actual = readPosition (s);

posició_actual = posició_actual * 180;

% d'impressió de la posició actual del servomotor

fprintf ('La posició actual és% d / n', posició_actual);

Es requereix un% de retard petit perquè el servo es pugui situar al

% d'angle que s'hi explica.

pausa (2);

final

% torna el motor a la posició d'angle 0

writePosition (s, 0);

clar s

prompt = 'Premeu qualsevol tecla per continuar'

questdlg ('CA desactivat', 'resposta', 'Ok', 'Ok')

cas "Amunt"

s = servo (a, 'D10');

per a angle =.5:.1: 1

writePosition (s, angle);

posició_actual = readPosition (s);

posició_actual = posició_actual * 180;

% d'impressió de la posició actual del servomotor

fprintf ('La posició actual és% d / n', posició_actual);

Es requereix un% de retard petit perquè el servo es pugui situar al

% d'angle que s'hi explica.

pausa (2);

final

Pas 4: Servo

Servo
Servo

· El servo representa

un aire condicionat, i és una sortida de l'entrada de detecció de moviment

· Requereix un cable positiu, un cable de terra i un cable del port "D9" al servo

· Codi de servo:

% torna el motor a la posició d'angle 0

writePosition (s, 0);

clar s

prompt = 'Premeu qualsevol tecla per continuar'

questdlg ('CA activat', 'resposta', 'Ok', 'Ok')

final

final

pausa

trencar

final

final

* Nota especial: part del codi del servo està integrat amb el codi del detector òptic / fototransistor.

Recomanat: