Tabla de contenido:
- Paso 1: LED sensible a la luz
- Paso 2: Mini interruptor de encendido
- Paso 3: Segunda fotocélula
- Paso 4: LED RGB
- Paso 5: sensor de temperatura
- Paso 6: Motorreductor DAGU
- Paso 7: Código
Video: Proyecto de hogar inteligente EF230: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Piezas y materiales necesarios:
- 1 Arduino MKR 1000
- 3 placas de prueba
- 2 Mini fotocélulas
- 1 transistores NPN
- 1 mini interruptor de encendido
- 1 LED - RGB (4 clavijas)
- 1 LED (color de su elección)
- 1 diodo 1N4148
- 1 resistencias de 10K ohmios
- 5 Resistencia de 100 ohmios
- 1 sensor de temperatura TMP36
- 1 motorreductor de relación 48: 1 DAGU
- 25 cables de puente
- Cable USB
- Programa MATLAB
-
Guía de experimentos SIK para la placa Arduino 101 / Genuino 101 - Enlace de la guía de experimentos SIK
Este proyecto detalla el diseño conceptual de un sistema de hogar inteligente que usaría datos para ayudar a los propietarios a optimizar su uso de energía y seguridad. Incluye un sensor de luz para encender las luces exteriores por la noche, un sensor de luz para la seguridad y un sensor de temperatura y ventilador para el control de la temperatura interior.
Paso 1: LED sensible a la luz
- La configuración de LED sensibles a la luz está destinada a representar las luces exteriores de una casa que se encienden por la noche.
- Cuando la mini fotocélula detecta una cantidad reducida de luz, el LED se encenderá.
- Para una casa inteligente, esto tiene implicaciones energéticas y de seguridad. Ahorrará energía al dejar las luces apagadas durante el día y brindará mayor seguridad durante la noche.
- El cableado y la configuración exactos para esta parte del proyecto se pueden encontrar en el experimento 7 en la Guía de experimentos de SIK.
Paso 2: Mini interruptor de encendido
- El interruptor es el primer paso en el proceso de seguridad de la casa inteligente.
- Cuando se enciende, el interruptor iniciará una respuesta preguntando al usuario si desea ingresar al modo 'En casa' o al modo 'Ausente'.
- Si se selecciona el modo 'En casa', la seguridad se considera desarmada, pero si se selecciona el modo 'Ausente', se armará el sistema de seguridad.
- El cableado para esta parte del proyecto se puede encontrar en el experimento 6 en la Guía de experimentos. Para los propósitos de la casa inteligente, no es necesario incluir los LED y sus cables de conexión que se encuentran en el experimento 6.
Paso 3: Segunda fotocélula
- La segunda fotocélula sirve como sensor de movimiento para el sistema de seguridad de la casa inteligente.
- El sensor solo se utiliza cuando el sistema se pone en modo 'Ausente' como se describe en el paso anterior.
- Si la fotocélula experimenta una disminución en la cantidad de luz que recibe, reconoce esto como movimiento dentro de la casa.
- La configuración para esta parte del proyecto se puede encontrar en el experimento 7 en la Guía de experimentos SIK. Sin embargo, solo la fotocélula y sus cables de conexión deben incluirse en el cableado.
Paso 4: LED RGB
- El LED RGB se utiliza junto con el mini interruptor de encendido y la segunda fotocélula para el sistema de seguridad de la casa inteligente.
- Los tres colores diferentes se utilizan como indicadores para el residente de una casa inteligente.
- Cuando el sistema se coloca en el modo 'Inicio', el LED se vuelve azul. Cuando el sistema se coloca en modo 'Ausente', el LED se vuelve verde. Cuando se dispara la fotocélula utilizada como sensor de movimiento, la luz parpadea en rojo.
- El cableado para el LED RGB se puede encontrar en el experimento 3 de la Guía de experimentos SIK.
Paso 5: sensor de temperatura
- El sensor de temperatura es una parte importante de la conservación de energía en el hogar inteligente.
- El residente puede ingresar la temperatura deseada para su hogar cuando la casa inteligente está en uso.
- El sensor de temperatura es la forma en que el sistema sabe qué tan lejos está la temperatura real de la temperatura deseada.
- La configuración del sensor de temperatura se puede encontrar en el experimento 9 de la Guía de experimentos SIK.
Paso 6: Motorreductor DAGU
- El motor permite que la casa inteligente regule la temperatura en la casa en función de la temperatura deseada y las lecturas del sensor de temperatura.
- Actuando como la unidad de aire acondicionado en el hogar, el motor girará a diferentes velocidades en función de cuánto más alta sea la temperatura real que la temperatura deseada. Cuanto mayor sea la diferencia, más rápido gira el motor.
- El cableado del motor se puede encontrar en la Guía de experimentos en el experimento 11.
Paso 7: Código
- El código para la casa inteligente incluye múltiples interfaces de usuario que permiten al residente comprender fácilmente cómo funciona y cambiar fácilmente la configuración.
- Con el sistema de casa inteligente, el residente recibirá una alerta por correo electrónico si el sensor de movimiento se activa mientras está fuera.
- El único cambio que debe realizarse es insertar la información del correo electrónico del remitente y la dirección de correo electrónico del destinatario.
claro a; claro s; claro m; clc; cierra todo; % Limpiar las variables arduino y servo para que puedan redefinirse cada vez para que el código se ejecute de manera eficaz ("clear m" es necesario para que uno de los bucles while funcione correctamente) a = arduino (); % Establecer la variable arduino
s = servo (a, 'D6'); % Establecer la servovariable
% Inicializar las variables de correo electrónico para el correo electrónico de advertencia del sistema de seguridad
emails = {'insertar dirección del destinatario'}; % Matriz de correos electrónicos a los que se enviará el correo electrónico de seguridad
% Configuración de preferencias de correo electrónico necesaria para usar Gmail para enviar correo desde
setpref ('Internet', 'E_mail', 'dirección de correo electrónico del remitente');
setpref ('Internet', 'SMTP_Username', 'nombre de usuario del remitente');
setpref ('Internet', 'SMTP_Password', 'contraseña del remitente');
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'verdadero');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
% Asunto del correo electrónico y variables de texto
subj = 'Alerta de intrusos en su hogar';
text = 'Hola, Este es el sistema de seguridad de su hogar inteligente que le informa que se ha detectado movimiento fuera de su hogar. Hemos tomado las medidas necesarias y nos hemos puesto en contacto con las autoridades por usted. Mantenerse a salvo.';
si bien es cierto
prompt = {'Ingrese la temperatura deseada en el hogar (entre 65F y 85F):'}; % Solicitud del menú de entrada del usuario
dlgtitle = 'Selección de temperatura'; % Título del menú de entrada del usuario
dim = [1 30]; % Dimensiones para el menú de entrada del usuario
definput = {'72'}; % Entrada predeterminada que aparece cuando se abre el menú por primera vez
tempsel_array = inputdlg (indicador, dlgtitle, dims, definput); % Menú de entrada de usuario emergente que guardará el número introducido en una matriz
if ~ isempty (tempsel_array)% Si la matriz NO está vacía
tempsel_char = cell2mat (tempsel_array); % Convierte la matriz en una cadena de caracteres
tempsel = str2double (tempsel_char); % Convierte la cadena de caracteres en números
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Campos', 1); % Escribe la temperatura seleccionada en tu canal ThingSpeak
break% Rompe el ciclo while para que el menú no aparezca varias veces
else% Si el usuario hace clic en cancelar en lugar de ingresar una temperatura
msg1 = msgbox ('No se seleccionó temperatura, el valor predeterminado es 85F', '¡Advertencia!'); % Mensaje mostrado al usuario después de hacer clic en cancelar
esperar (msg1); % Espere a que se cierre el cuadro de mensaje antes de continuar
tempsel = 85; % Establezca la temperatura a lo que se indicó en el cuadro de mensaje
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Campos', 1); % Escribe la temperatura seleccionada en tu canal ThingSpeak
break% Rompe el ciclo while para que el menú no aparezca varias veces
fin
fin
si bien es cierto
chID = 745517; % ID de canal ThingSpeak
writeKey = 'G9XOQTP8KOVSCT0N'; % Clave para acceder al canal ThingSpeak
% Inicializar sensores para recuperar datos
tempread = readVoltage (a, 'A3'); % Leer el voltaje del sensor de temperatura
lightl1 = readVoltage (a, 'A2'); % Nivel de luz para el fotoresistor que va al LED rojo
lightl2 = readVoltage (a, 'A5'); % Nivel de luz para el fotorresistor que va al sistema de seguridad
switchv = readVoltage (a, 'A0'); % Valor para el interruptor
% Convierta los datos de temperatura de voltaje a grados Fahrenheit
tempC = (tempread - 0,5) * 100; % Convertir voltaje a temperatura en grados Celsius
tempF = (tempC * 9/5) + 32; % Convertir temperatura en grados Celsius a temperatura en Fahrenheit
% Inicializar los números de pin para el LED multicolor
redp = 'D9'; % Pin para luz roja de LED
greenp = 'D10'; % Pin para luz verde de LED
bluep = 'D11'; % Pin para luz azul de LED
si tempsel <tempF% Si la temperatura seleccionada es mayor que la temperatura ambiente
writePosition (s, 1); % Servo comenzará a moverse
pause (10)% El servo seguirá girando durante 10 segundos para representar que el aire acondicionado se apagará después de un período de tiempo específico
writePosition (s, 0); % Apague el ventilador con el propósito de continuar con el código sin el ventilador encendido
tempsel = 150; % Cambie el valor de temperatura para salir del bucle después de que el ventilador se haya apagado, nuevamente solo con el propósito de continuar con el código.
fin
if lightl1 <= 3% Si el primer fotorresistor detecta un nivel de luz bajo
writeDigitalPin (a, 'A1', 1); % Enciende el LED rojo que representa las luces exteriores
else% Si el nivel de luz es alto de nuevo
writeDigitalPin (a, 'A1', 0); % Apague el LED rojo cuando el nivel de luz sea lo suficientemente alto nuevamente
fin
if switchv> 3% Si el interruptor está encendido
A = existe ('m', 'var'); % Verifique la existencia de la variable 'm', esto se inicializará para el ciclo while y permitirá que se rompa cuando se seleccione un elemento del menú (es por eso que se debe borrar m al comienzo del código)
mientras que A == 0% Loop se ejecutará hasta que exista la variable 'm'
menutext = '¿A qué modo de seguridad le gustaría ingresar?'; % Texto para el menú emergente de seguridad
opciones = {'Casa', 'Ausente'}; % Opciones para el menú emergente de seguridad
m = menú (texto del menú, opciones); % Menú emergente para los modos del sistema de seguridad
break% Asegura que el ciclo while esté roto para que el menú no aparezca varias veces
fin
si m == 1% Si se selecciona el modo 'Inicio'
writeDigitalPin (a, bluep, 1); % Enciende solo la luz azul en el LED que cambia de color
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2% Si se selecciona el modo 'Ausente'
writeDigitalPin (a, bluep, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); % Enciende solo la luz verde en el LED que cambia de color
if lightl2 <= 3% Si el nivel de luz en el segundo fotorresistor es bajo, representa el movimiento detectado por el sistema de seguridad
sendmail (correos electrónicos, asunto, texto); % Enviar un correo electrónico con las propiedades de correo electrónico definidas previamente writeDigitalPin (a, greenp, 0); % Intermitente de color rojo encendido y apagado 2 veces
writeDigitalPin (a, redp, 1);
pausa (0,3)
writeDigitalPin (a, redp, 0);
pausa (0,3)
writeDigitalPin (a, redp, 1);
pausa (0.3)
writeDigitalPin (a, redp, 0);
pausa (0.3)
writeDigitalPin (a, redp, 1); % Termine con rojo sólido después de parpadear para mostrar que hay movimiento hasta que el nivel de luz vuelva a subir
msg2 = msgbox ('Intruso detectado por el sistema de seguridad, se ha enviado un correo electrónico a los propietarios para informarles.', '¡ADVERTENCIA!'); % Cuadro de mensaje para informar al usuario del movimiento y para informar sobre el correo electrónico enviado waitfor (msg2)% Espere a que se cierre el cuadro de mensaje antes de continuar
demás
writeDigitalPin (a, greenp, 1); % Una vez que el nivel de luz ha subido de nuevo, volverá a ponerse verde
fin
fin
elseif switchv <3.3% Si el interruptor está apagado
writeDigitalPin (a, bluep, 0); % Apague el LED por completo para mostrar que el sistema de seguridad está apagado
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
fin
fin
Recomendado:
Integración del abre-puertas de garaje inteligente de bricolaje + asistente del hogar: 5 pasos
Abrepuertas de garaje inteligente de bricolaje + integración de asistente de hogar: convierta su puerta de garaje normal en inteligente con este proyecto de bricolaje. Le mostraré cómo construirlo y controlarlo usando Home Assistant (sobre MQTT) y tener la capacidad de abrir y cerrar de forma remota la puerta de su garaje. Usaré una placa ESP8266 llamada Wemos
Proyecto de bricolaje de automatización del hogar de IOT n. ° 1: 7 pasos
Proyecto de bricolaje de automatización del hogar de IOT # 1: # INTRODUCCIÓN La automatización del hogar es el proceso de automatización de electrodomésticos como aire acondicionado, ventilador, refrigerador, luces y la lista continúa, para que puedan controlarse con su teléfono, computadora o incluso de forma remota. Este proyecto se ocupa de la esp2866
Proyecto: Ahorro de energía en el hogar: 8 pasos
Proyecto: Home Energy Saver: Hannah Robinson, Rachel Wier, Kaila Cleary El uso de una placa Arduino y Matlab demostró ser un método simple y eficaz para ayudar a los propietarios a optimizar su uso de energía. La simplicidad y versatilidad de la placa Arduino es sorprendente. Existen
Proyecto de aplicación en el hogar con control remoto por infrarrojos con regulador de ventilador: 5 pasos
Proyecto de aplicación de hogar controlado por infrarrojos con regulador de ventilador: este proyecto para aquellos que tienen cultura con arduino y proyectos, no para novatos, lo hice como un proyecto, pero también lo estoy usando para fines de producción … por esta causa puedo ' t compartir todo el boceto completo
Cortinas para el hogar automatizadas - Mini proyecto con módulo BluChip de MakerChips (nRF51 BLE): 7 pasos (con imágenes)
Cortinas para el hogar automatizadas: mini proyecto con el módulo BluChip de MakerChips (nRF51 BLE): imagina que te despiertas y quieres que un rayo de sol atraviese las ventanas, o que cierras las cortinas para que puedas dormir más, sin el esfuerzo de acercarte. a las cortinas, sino más bien con el toque de un botón en su teléfono inteligente