Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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
· 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
· 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
· 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
· 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.