Tabla de contenido:

EF 230: Home System 3000 Instructable: 4 pasos
EF 230: Home System 3000 Instructable: 4 pasos

Video: EF 230: Home System 3000 Instructable: 4 pasos

Video: EF 230: Home System 3000 Instructable: 4 pasos
Video: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, Mes de julio
Anonim
EF 230: Home System 3000 Instructable
EF 230: Home System 3000 Instructable

El Home System 3000 es un dispositivo que utiliza un Arduino, un sensor de temperatura, un zumbador piezoeléctrico, un detector óptico / fototransistor y un servo para mostrar formas de mejorar la eficiencia energética del hogar.

Paso 1: sensor de temperatura

Sensor de temperatura
Sensor de temperatura

· Ejecute sus cables de energía y tierra desde

el microcontrolador al costado de la placa de pan

· Coloque el sensor de temperatura en la placa de pruebas y ejecute los cables de alimentación y tierra correspondientes en consecuencia

· Observe que el sensor de temperatura tiene tres clavijas y la clavija del medio tiene un cable que va desde el puerto "A0".

· Código para sensor de temperatura:

answer = questdlg ('Ejecute arduino y el código de inicio del servo', 'respuesta', 'Ok', 'Ok')

prompt = 'Presione cualquier tecla para comenzar'

pausa

prompt1 = 'Establecer temperatura mínima'

x = entrada (prompt1)

prompt2 = 'Establecer temperatura máxima'

y = entrada (prompt2)

prompt3 = 'presione cualquier tecla para comenzar'

pausa

figura

h = línea animada;

ax = gca;

ax. YGrid = 'encendido';

ax. YLim = [65 85];

detener = falso;

startTime = datetime ('ahora');

mientras ~ detente

% Leer valor de voltaje actual

v = readVoltage (a, 'A0');

% Calcular la temperatura a partir del voltaje (según la hoja de datos)

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

TempF = 9/5 * TempC + 32;

% Obtener la hora actual

t = datetime ('ahora') - startTime;

% Agregar puntos a la animación

addpoints (h, datenum (t), TempF)

% Actualizar ejes

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

datetick ('x', 'mantener límites')

sacar ahora

% Compruebe la condición de parada

detener = readDigitalPin (a, 'D12');

Paso 2: zumbador

Zumbador
Zumbador

· Conecte el zumbador que se utilizará para señalar una lectura de temperatura extremadamente alta o extremadamente baja

· No se corre ningún cable desde la columna positiva al lado positivo del zumbador

· En su lugar, un cable se ejecuta desde el lado positivo del zumbador hasta un puerto con la etiqueta "11"

Esto se utilizará más tarde para llamar a la ubicación del zumbador en el código escrito.

· Código para zumbador:

si TempF> = y

disp ('cierra puerta hace calor')

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

elseif TempF <= x

disp ('cierra puerta hace frío')

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

fin

fin

Paso 3: Detector óptico / Fototransistor

Detector óptico / fototransistor
Detector óptico / fototransistor

· Este sensor requiere resistentes a diferencia de los demás

· Asegúrese de que las cuatro clavijas del sensor estén incluidas en el bucle después de enchufar los cables

· El sensor detecta un cambio en la luz, que representa el movimiento, y lo registra como una entrada

· Código para detector óptico / fototransistor:

borrar un

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

prompt = 'Establecer umbral de nivel de luz'

z = entrada (solicitud)

lightLevel = 0

mientras que lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

si lightLevel> = z

answer = questdlg ('¿le gustaría modificar AC?', 'Sí', 'No')

cambiar respuesta

caso 'Sí'

answer2 = questdlg ('¿Subir o bajar el aire acondicionado?', 'respuesta', 'Abajo', 'Arriba', 'Arriba')

cambiar answer2

caso 'Abajo'

s = servo (a, 'D10');

para ángulo = 0:.1:.5

writePosition (s, ángulo);

current_position = readPosition (s);

posición_actual = posición_actual * 180;

% imprime la posición actual del servomotor

fprintf ('La posición actual es% d / n', posición_actual);

Se requiere un pequeño retardo para que el servo pueda colocarse en el

% de ángulo que se le dijo.

pausa (2);

fin

% devolver el motor a la posición de ángulo 0

writePosition (s, 0);

claro s

prompt = 'Presione cualquier tecla para continuar'

questdlg ('AC rechazado', 'respuesta', 'Ok', 'Ok')

caso 'Up'

s = servo (a, 'D10');

para ángulo =.5:.1: 1

writePosition (s, ángulo);

current_position = readPosition (s);

posición_actual = posición_actual * 180;

% imprime la posición actual del servomotor

fprintf ('La posición actual es% d / n', posición_actual);

Se requiere un pequeño retardo para que el servo pueda colocarse en el

% de ángulo que se le dijo.

pausa (2);

fin

Paso 4: Servo

Servo
Servo

· El servo representa

un acondicionador de aire, y es una salida de la entrada de detección de movimiento

· Requiere un cable positivo, un cable a tierra y un cable desde el puerto "D9" al servo

· Código para servo:

% devolver el motor a la posición de ángulo 0

writePosition (s, 0);

claro s

prompt = 'Presione cualquier tecla para continuar'

questdlg ('AC apareció', 'respuesta', 'Ok', 'Ok')

fin

fin

pausa

rotura

fin

fin

* Nota especial: parte del código del servo está integrado con el código del detector óptico / fototransistor.

Recomendado: