Tabla de contenido:
- Paso 1: Para comenzar: Materiales
- Paso 2: Paso 2: Abordar el problema a resolver
- Paso 3: Paso 3: Configuración de la GUI y el flujo de código básico
- Paso 4: Paso 3: Configuración del sistema de termostato
- Paso 5: Paso 4: Configuración del sistema de puerta
- Paso 6: Paso 6: Configuración del sistema de iluminación de inundación
- Paso 7: Conclusión
Video: Sistema Arduino Smart Home: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este Instructable, le mostraremos cómo crear su propio sistema de hogar inteligente con el Diseñador de aplicaciones de MATLAB con una placa Sparkfun Red. Este Instructable se puede usar para ayudar a obtener una comprensión básica del Diseñador de aplicaciones de MATLAB, así como para usar un fotorresistor, un servomotor y un sensor de movimiento PIR.
Paso 1: Para comenzar: Materiales
Este proyecto requiere los siguientes materiales:
- Arduino Uno (Para este proyecto usamos una placa Sparkfun Red)
- Una fotorresistencia
- Un mini servomotor
- Un servomotor continuo
- Un sensor de movimiento PIR
- Un sensor de temperatura
- 2 LED
- Cables y resistencias según sea necesario
Paso 2: Paso 2: Abordar el problema a resolver
El objetivo principal de este proyecto era crear un sistema doméstico inteligente fácil de usar mediante la codificación de una placa Arduino Uno con MATLAB. Primero pensamos en trabajar con un sensor de temperatura y humedad, sin embargo, si nos quedáramos con esos dos sensores, nuestro sistema de hogar inteligente no sería fácilmente comercializable para una audiencia general. Decidimos que queríamos crear un sistema de energía doméstico inteligente general que funcionara como un termostato inteligente y un sistema de seguridad. Por último, queríamos trabajar con AppDesigner de MATLAB para que el usuario pueda modificar fácilmente la casa inteligente a su gusto.
Paso 3: Paso 3: Configuración de la GUI y el flujo de código básico
Para comenzar, deberá abrir MATLABs AppDesigner y colocar lo siguiente:
Dos campos de edición numéricos para una entrada de umbral caliente y frío
Un botón para desbloquear la puerta.
Y cuatro lámparas indicadoras para la chimenea, la puerta, el ventilador y el reflector.
Dos etiquetas para comunicarse con el usuario.
Para este proyecto, nos resultó más fácil trabajar con variables globales y la función de inicio dentro del diseñador. Necesitará estas variables dentro de la función de inicio:
global a
a = arduino ('COM3', 'uno', 'Bibliotecas', 'Servo'); global s global p global hotUI global coldUI global desbloqueo global temp global curr_temp global int_light
En este momento solo tenemos una asignación para la variable a para que su computadora pueda leer el arduino. COM3 puede diferir dependiendo del puerto que esté usando su computadora.
Cuando ejecute el código, se iniciará dentro de la función de inicio creando las variables globales y calibrando el sistema. Al final de esta función habrá una función de temporizador que llama a una propiedad que llamamos Timer. Dentro de esta propiedad del temporizador, colocamos el código que ejecuta el sistema doméstico para que el temporizador no vuelva a ejecutar el código de calibración.
Nota: No proporcionamos instrucciones de cableado para el sistema. Nos referimos al manual que viene con la placa SparkFun Red.
Paso 4: Paso 3: Configuración del sistema de termostato
La función del termostato funciona de la siguiente manera:
El usuario ingresará qué temperatura considera que es demasiado caliente o demasiado fría. Una vez que el termómetro toma una lectura, si la casa está demasiado fría, la "chimenea" (un LED rojo) se encenderá y calentará la casa. Si la casa hace demasiado calor, un "ventilador" (servomotor continuo) se encenderá para enfriar la casa.
Para codificar el sistema de termostato:
Comenzaremos dentro de la función de inicio para mostrar la temperatura actual y dejar que el usuario ingrese sus umbrales de frío y calor.
p = 'A0'% Pin fotorresistor
volt = readVoltage (a, temp); celc = (voltio-0,5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Text = num2str (curr_temp); % El número de etiqueta puede cambiar la pausa (10); % Puede querer cambiar !!!!!
Luego completaremos el sistema de termostato dentro de la propiedad Timer.
curr_temp global
coldUI global global a hotUI global if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; % Enciende la lámpara GUI en verde writePWMDutyCycle (a, 'D11',.9)% Las siguientes tres líneas de código ejecutan la pausa del servo ventilador (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; % Esto apaga todas las lámparas GUI y la aplicación de chimenea. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); fin
Paso 5: Paso 4: Configuración del sistema de puerta
La función de la puerta funciona de la siguiente manera:
Cuando ejecute su código MATLAB por primera vez, la aplicación le pedirá que abra la puerta para que el fotorresistor pueda tomar una lectura de luz inicial. Una vez que se haya completado, el temporizador se activará y la fotorresistencia tomará lecturas de luz secundarias. Si la lectura de la luz secundaria es más ligera que la inicial, un servomotor bloqueará la puerta. Si el usuario quiere que la puerta se desbloquee, puede presionar un botón en la aplicación que abrirá la puerta.
Para configurar el servomotor y la fotorresistencia:
Para codificar el sistema de la puerta:
Comenzaremos dentro de la función de inicio para tomar las lecturas de luz iniciales.
s = servo (a, 'D9')% El pin puede cambiar según el cableado
app. Label_4. Text = 'Abra la puerta para calibrar el sistema'; pausa (15); % Esto le da tiempo al usuario para abrir la puerta int_light = readVoltage (a, p); app. Label_4. Text = 'Puede quitar el dedo';
A continuación, completaremos el código dentro de la propiedad Timer.
desbloqueo global
global int_light global s global a% Obtener una lectura de luz actual para comparar curr_light = readVoltage (a, p); % - Bloquear puerta - si int_light <curr_light writePosition (s, 1)% Las posiciones del servo pueden diferir según la pausa del motor (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; end% - Desbloquear puerta - si desbloquear == 1234 pausa (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; fin
Finalmente crearemos la devolución de llamada del botón de desbloqueo. Una vez que el usuario presiona el botón de desbloqueo, al desbloqueo de la variable global se le asignará un número que puede completar la declaración if final en la propiedad Timer.
desbloqueo global
desbloquear = 1234;
Paso 6: Paso 6: Configuración del sistema de iluminación de inundación
La función de la luz de inundación funciona de la siguiente manera:
Cuando inicie el código MATLAB, el sensor de movimiento PIR comenzará a detectar movimiento. Una vez que detecta algún tipo de movimiento, cortará una señal de energía. Una vez que se corta esa señal, se encenderá una luz de inundación fuera de la casa.
Para configurar el sistema de iluminación de inundación:
Para codificar el sistema de iluminación de inundación:
Esta vez podemos saltar a la propiedad Timer porque no necesitamos escribir ninguna variable adicional.
humano_detected = readDigitalPin (a, 'D2'); % Pin puede cambiar según la configuración si human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin puede cambiar app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D7', 0) final
Paso 7: Conclusión
Ahora que tiene un borrador de su GUI con el Diseñador de aplicaciones y su código para Arduino, ¡está listo para hacer sus propias ediciones o conectar su Arduino y listo!
Recomendado:
Smart Home de Raspberry Pi: 5 pasos (con imágenes)
Smart Home de Raspberry Pi: ya existen varios productos que hacen que su piso sea más inteligente, pero la mayoría de ellos son soluciones patentadas. Pero, ¿por qué necesita una conexión a Internet para encender una luz con su teléfono inteligente? Esa fue una de las razones por las que construí mi propio Smar
Sistema de clasificación de color: sistema basado en Arduino con dos cinturones: 8 pasos
Sistema de clasificación por color: Sistema basado en Arduino con dos correas: El transporte y / o empaque de productos y artículos en el campo industrial se realiza mediante líneas fabricadas con correas transportadoras. Esos cinturones ayudan a mover el artículo de un punto a otro con una velocidad específica. Algunas tareas de procesamiento o identificación pueden ser
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 pasos
Sonoff B1 Firmware Home Automation Openhab Google Home: Me gusta mucho el firmware Tasmota para mis interruptores Sonoff. Pero no estaba muy contento con el firmware de Tasmota en mi Sonoff-B1. No logré integrarlo completamente en mi Openhab y controlarlo a través de Google Home, por lo que escribí mi propia firma
GO-4 Smart Home Arduino Bot: 7 pasos (con imágenes)
GO-4 Smart Home Arduino Bot: En este proyecto, le mostraré cómo construir un Smart Home Bot utilizando la tecnología IOT para controlar sus electrodomésticos de forma remota a través de Internet. Pero antes de comenzar, hablemos de esta técnica tal como la usamos. que hacer … ¿Qué es el IOT? Th
Cómo conectar y configurar correctamente un mini sistema de estantería HiFi (sistema de sonido): 8 pasos (con imágenes)
Cómo conectar y configurar correctamente un mini sistema de estantería HiFi (sistema de sonido): Soy una persona que disfruta aprendiendo sobre ingeniería eléctrica. Soy una escuela secundaria en la Escuela Ann Richards para Mujeres Líderes Jóvenes. Estoy haciendo este instructivo para ayudar a cualquiera que quiera disfrutar de su música desde un Mini LG HiFi Shelf Syste