Índice:

EF 230: Home System 3000 Instrutível: 4 etapas
EF 230: Home System 3000 Instrutível: 4 etapas

Vídeo: EF 230: Home System 3000 Instrutível: 4 etapas

Vídeo: EF 230: Home System 3000 Instrutível: 4 etapas
Vídeo: Как выбрать сейф для дома? Какой сейф лучше и не дорого... 2024, Julho
Anonim
EF 230: Instrução Home System 3000
EF 230: Instrução Home System 3000

O Home System 3000 é um dispositivo que usa um Arduino, um sensor de temperatura, uma campainha piezoelétrica, um detector óptico / fototransistor e um servo para exibir maneiras de melhorar a eficiência energética em casa.

Etapa 1: Sensor de temperatura

Sensor de temperatura
Sensor de temperatura

· Execute seus fios de alimentação e aterramento de

o microcontrolador ao lado da placa de pão

· Coloque o sensor de temperatura na placa do pão e ligue os cabos de alimentação e aterramento correspondentes

· Observe que o sensor de temperatura tem três pinos, e o pino do meio tem um fio que sai da porta "A0".

· Código para sensor de temperatura:

answer = questdlg ('Execute o arduino e o código de início do servo', 'response', 'Ok', 'Ok')

prompt = 'Pressione qualquer tecla para começar'

pausa

prompt1 = 'Definir temperatura mínima'

x = entrada (prompt1)

prompt2 = 'Definir temperatura máxima'

y = entrada (prompt2)

prompt3 = 'pressione qualquer tecla para começar'

pausa

figura

h = linha animada;

ax = gca;

ax. YGrid = 'ligado';

ax. YLim = [65 85];

stop = false;

startTime = datetime ('agora');

enquanto ~ pare

% Lê o valor da tensão atual

v = readVoltage (a, 'A0');

% Calcular a temperatura da tensão (com base na folha de dados)

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

TempF = 9/5 * TempC + 32;

% Obtém a hora atual

t = datetime ('agora') - startTime;

% Adicionar pontos à animação

addpoints (h, datenum (t), TempF)

% Atualizar eixos

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

datetick ('x', 'keeplimits')

desenhar agora

% Verifique a condição de parada

parar = lerDigitalPin (a, 'D12');

Etapa 2: campainha

Campainha
Campainha

· Ligue a campainha que será usada para sinalizar uma leitura de temperatura extremamente alta ou extremamente baixa

· Nenhum fio é executado da coluna positiva para o lado positivo da campainha

· Em vez disso, um fio é passado do lado positivo da campainha para uma porta identificada como "11"

Isso será usado posteriormente para chamar a localização da campainha no código escrito.

· Código para campainha:

se TempF> = y

disp ('fecha a porta está quente')

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

elseif TempF <= x

disp ('fecha a porta está frio')

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

fim

fim

Etapa 3: Detector óptico / fototransistor

Detector óptico / fototransistor
Detector óptico / fototransistor

· Este sensor requer resistores ao contrário dos outros

· Certifique-se de que todos os quatro pinos do sensor estão incluídos no loop após conectar os fios

· O sensor detecta uma mudança na luz, representando o movimento, e registra como uma entrada

· Código para Detector Ótico / Fototransistor:

limpar um

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

prompt = 'Definir limite de nível de luz'

z = entrada (prompt)

lightLevel = 0

enquanto lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

se lightLevel> = z

answer = questdlg ('gostaria de alterar o AC?', 'Sim', 'Não')

mudar a resposta

caso 'Sim'

answer2 = questdlg ('Aumentar ou diminuir a CA?', 'response', 'Down', 'Up', 'Up')

mudar a resposta 2

case 'Down'

s = servo (a, 'D10');

para ângulo = 0:.1:.5

WritePosition (s, ângulo);

posição_atual = posição (ões) de leitura;

posição_atual = posição_atual * 180;

% imprime a posição atual do servo motor

fprintf ('A posição atual é% d / n', current_position);

% pequeno atraso é necessário para que o servo possa ser posicionado no

% angle disse a ele.

pausa (2);

fim

% traz o motor de volta para a posição de ângulo 0

writePosition (s, 0);

claro s

prompt = 'Pressione qualquer tecla para continuar'

questdlg ('AC recusado', 'resposta', 'Ok', 'Ok')

case 'Up'

s = servo (a, 'D10');

para ângulo = 0,5: 0,1: 1

WritePosition (s, ângulo);

posição_atual = posição (ões) de leitura;

posição_atual = posição_atual * 180;

% imprime a posição atual do servo motor

fprintf ('A posição atual é% d / n', current_position);

% pequeno atraso é necessário para que o servo possa ser posicionado no

% angle disse a ele.

pausa (2);

fim

Etapa 4: Servo

Servo
Servo

· O servo representa

um condicionador de ar e é uma saída da entrada de detecção de movimento

· Requer um fio positivo, fio terra e um fio da porta "D9" para o servo

· Código para servo:

% traz o motor de volta para a posição de ângulo 0

writePosition (s, 0);

claro s

prompt = 'Pressione qualquer tecla para continuar'

questdlg ('AC aumentou', 'resposta', 'Ok', 'Ok')

fim

fim

pausa

pausa

fim

fim

* Nota especial: parte do código do servo está integrado ao código do detector óptico / fototransistor.

Recomendado: