Persianas inteligentes
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
¡Hola!
Este proyecto presenta las mejoras realizadas a mi proyecto original (y primer), las Persianas Horizontales Automáticas con Energía Solar. El diseño original publicado cumplía con los requisitos en ese momento. Funcionó correctamente durante casi 4 meses antes de que aparecieran algunos defectos de diseño.
En resumen, el propósito de las persianas es abrirse y cerrarse según los niveles de luz, para dejar entrar la luz o cerrarse para mayor privacidad. Y también las persianas deben cerrarse cuando hace "demasiado calor", que es una designación completamente arbitraria.
Importé este proyecto de otro lugar, y la sección de hardware / herramientas aquí simplemente no me estaba dando las opciones que quería, por lo que tendrá que lidiar con la lista detallada tal como está, en lugar de en el formato ordenado de Hackster.io. Lo siento.
El nuevo diseño hace lo siguiente:
- Ábralo (gírelo a 85 grados) por la mañana para dejar entrar la luz
- Ciérrelo (gírelo a 0 grados, las persianas apuntan hacia abajo) por la noche para brindar privacidad
- Cierre (gire a 165 grados - persianas apuntando hacia arriba, contra el sol) si la temperatura excede una temperatura de 30 C (~ 86 F) - esta temperatura es arbitraria, su nivel de comodidad puede variar.
- Realice todas estas actividades sin cableado externo, cajas, dispositivos, etc. En otras palabras, pase el factor de aceptación de la esposa.
- Ser lo suficientemente sostenible como para no abandonar el proyecto porque tengo que cambiar las pilas con demasiada frecuencia.
- No cueste demasiado. Creo que el resultado final es que las persianas se pueden construir por unos 50 dólares estadounidenses. El dinero invertido en nuevas herramientas y el tiempo dedicado a programar, probar, soldar y retocar, por supuesto, no cuentan.
La razón de estos requisitos de diseño es que la ventana para la que fueron diseñados es una ventana del segundo piso sobre la puerta de entrada de la casa. Esta ventana está orientada hacia el sur (en realidad, SSE), lo que significa que hay mucha luz solar (y calor potencial) en el invierno con las persianas abiertas, pero la posibilidad de que haya demasiado calor en el verano.
Como se indicó, las persianas funcionaron perfectamente durante aproximadamente 4 meses (instalación de enero, volvieron a bajar aproximadamente en junio). Las fallas descubiertas fueron:
- La casa no está orientada hacia el sur ... Por lo tanto, en invierno, el sol está en la ventana la mayor parte del día, y solo sale por la ventana a última hora de la tarde. Esto proporciona mucha carga solar durante el invierno. Durante el verano, sin embargo, el sol pasa por encima de la casa al mediodía, lo que significa que no hay suficiente sol para cargar durante una gran parte de las horas de luz. Y la ubicación original del panel solar en la ventana se sombrea durante las primeras horas del día, además de eso. Solución:mejor posición del panel solar.
- El servomotor utilizado para controlar las persianas consume 13 mA continuos. Esto me sorprendió. En mi primer intento, no medí la corriente con el servo en su lugar porque mi multímetro no podía soportar el gran consumo del servo y proporcionar la precisión para verlo cuando estaba en "suspensión". Solución:interruptor de lado alto con un transistor PNP.
- Mi panel solar de 6V de diseño original realmente funciona contra el módulo de carga LiPo. El módulo de carga tiene una entrada nominal de 4.5V a 5.5V. Cuando el panel recibió pleno sol y generó 6 V o más de electricidad, el módulo de carga se apagó. No descubrí esto hasta después de que se instalaron las persianas. Solución:panel con el tamaño correcto.
- Sin registro / recopilación de telemetría. Esto hizo que fuera realmente difícil diagnosticar las persianas cuando comenzaron a funcionar mal. Solución:función de registro EEPROM.
- No había forma de conectarse / desconectarse para diagnosticar / corregir. Esto se aplicó tanto al panel solar como a la batería. Solución:conectores JST entre la batería y el circuito, el panel solar y el circuito.
- Las mediciones (temperatura y luz) deben ser contra un voltaje de referencia sólido de 5V (salida VCC en el Arduino), NO la salida de 5V del amplificador DC-DC. Ese voltaje puede variar un poco, lo que afecta las mediciones de la conversión de analógico a digital. En mi primer diseño, la línea "5V" que usé era en realidad la línea no regulada que salía del amplificador DC-DC. Solución:parece obvio, ¿no? Utilice la salida * regulada * de 5 V del Arduino Pro Mini.
¡Así que comencemos!
Paso 1:Lista de piezas
Elegí usar un Arduino para este proyecto. Es lo que yo se. Podrías usar otro microcontrolador, lo que más te convenga. Notarás que compro mucho en SparkFun, son locales para mí. Lo bueno de esto es que puedo hacer un pedido por la mañana y luego ir a recogerlo esa misma tarde.
Otros enlaces que verá son de banggood.com; tienen muchos componentes económicos y una amplia variedad de componentes electrónicos. Si se siente cómodo esperando hasta un mes o más por sus piezas, puede obtener cosas baratas. Y de taydaelectronics.com. Si puedes comprar varias cosas a la vez, los precios son MUY buenos. El envío es bastante razonable. Entonces, algunas de las partes que verá en mi lista, de hecho, ordené 5, 10 o 20 artículos para llegar a un pedido mínimo. Quién sabe, tal vez construya varios de estos.
- Arduino Pro Mini ($ 10 - SparkFun)
- Arduino Uno, para programar el Mini, puedes usar cables especiales, pero esta configuración me funciona.
- Sensor de temperatura LM35DZ ($ 1.23 - Tayda)
- Transistor PN2907A PNP ($ 0.05 - Tayda)
- Resistencia dependiente de la luz (LDR) ($ 1.24 por un paquete de 10 piezas de banggood.com) -
- Una (1) resistencia de 10K ohmios ($ 0.01 - Tayda), aunque compré un paquete de resistencias de SparkFun por $ 8.
- Una (1) resistencia de 1K ohmios
- Panel solar de 5V 1.5W ($ 4.07 - banggood.com)
- Amplificador DC-DC de 5 V ($ 1.38 - banggood.com)
- Módulo de carga de batería de litio ($ 2.89 por un paquete de 3 piezas de banggood.com)
- Conectores JST ($ 3.33 por un paquete de 60 de banggood.com)
- Batería de litio recargable de 3.6V ($ 15.39 por un paquete de 4 de Amazon, incluye un cargador de verrugas de pared)
- Soporte de batería 18650 ($ 1 - SparkFun)
- Servomotor (utilicé un Hitec HS-325HB que encontré en una tienda de pasatiempos local) (aquí hay un equivalente) Tuve que adivinar qué tipo de torque era necesario. No pude encontrar una llave dinamométrica a un precio razonable para realizar una medición.
- Acoplamiento de servomotor. Debido a que usé un Hitec Servo, lo necesitaba. ($ 5 - SparkFun)
- Condensador de 100 uF ($ 0.03 - Tayda)
- Cables de conexión surtidos (compré este kit - $ 17.79 en Amazon)
- PCB ($ 2.74 por un paquete de 10 de Amazon)
Paso 2:herramientas
Elementos útiles para tener:
- Perforar
- Soldador
- SolderWire
- Cortaalambres
- Pelacables
- Multímetro
- Dremel o una herramienta de corte pequeña similar
- Placa de circuito / placa de soldadura
- Envoltura termorretráctil
Paso 3:Prototipo del proyecto
está bien. Entonces, ahora que tiene todos sus componentes y un área de trabajo, es hora de juntarlo todo y ver qué sucede.
En el proyecto original, lo primero que hice fue conectar dos baterías AA al amplificador DC-DC de 5V y verificar que obtuve 5V de salida. Esta vez, hice lo mismo, solo que con la batería real, la batería de litio recargable de 3.6V. Totalmente cargada, se encuentra a 4.1-4.2V. Según mi multímetro, saco 5.04V del amplificador. Suficientemente bueno.
El siguiente paso que tomé fue colocar todos los componentes en una placa de prueba sin soldadura, con el fin de escribir el código para controlarlo, así como tomar medidas de corriente y voltaje.
- Conecte los conectores apropiados del módulo de carga de litio a la batería y al panel solar (positivo a positivo, negativo a negativo)
- Conecte un cable desde el terminal positivo del panel al analógico A0; esto proporciona voltaje del panel para el registro.
- La batería también se conecta al amplificador DC-DC de 5V.
- Conecte un cable desde el terminal positivo de la batería al analógico A1; esto proporciona el voltaje de la batería para el registro.
- La salida de 5V del amplificador va a la entrada RAW en el Arduino.
- Se utiliza tierra del amplificador de 5 V en todo momento.
- Conecte el pin Arduino VCC a todo lo que necesite 5V regulados.
- El servo puede conectarse a la salida de 5V del amplificador DC-DC, pero primero pasará por el transistor PNP.
- Desde el LDR, conecte la resistencia de 10K ohmios a tierra. Conecte un cable entre el LDR y la resistencia a Analog A3:esta es su detección de luz.
- Conecte 5V al lado de 5V del LM35DZ (o su sensor de temperatura)
- Conecte la tierra del LM35DZ a tierra.
- Conecte un cable desde el pin central (o de salida) del LM35DZ a A2; este es su sensor de temperatura.
- Conecte la salida de 5V del amplificador DC-DC al pin E (Emisor) del PN2907A.
- Conecte una resistencia de 1K-Ohm entre el pin B (Base) del transistor al pin 11; este es el control para permitir que la corriente fluya al servomotor.
- Conecte el pin C (colector) del transistor al pin de alimentación del servomotor.
- Conecte el pin de tierra del servomotor a tierra.
- Conecte el pin de señal del servo al pin 10; este es el pin PWM que está usando para controlar el servo.
Mientras crea prototipos, no necesita el panel solar ni los módulos de carga de litio conectados. Las instrucciones están aquí para todo el montaje. A partir de este momento, todos los componentes, excepto el módulo de carga, estarán en su lugar para todas las mediciones.
Antes de agregar el transistor en los pasos 13-16, se llevó a cabo la siguiente secuencia:
- Eche un vistazo a la corriente inactiva sin el servo.
- Ahora agreguemos el servomotor y observemos la corriente.
¿¡Que está pasando aqui!? Simplemente conectando el servo, hemos agregado 14 mA de corriente inactiva al sistema. ¿Cómo podemos abordar esto? Nuestro buen amigo el transistor. La compra de mi kit Arduino original contenía algunos transistores NPN. Después de leer un poco sobre ellos (¡gracias SparkFun!), Decidí que probaría una configuración de interruptor lateral bajo. Sin embargo, esto no funcionó. Yo * todavía * tenía una corriente inactiva mucho mayor de lo que esperaba. Medí los voltajes en los pines del emisor, la base y el colector, y descubrí que el pin de la base tenía un voltaje cuando no esperaba ninguno. No estoy 100% seguro de lo que está pasando, aparte de que quizás el circuito interno del servo esté encontrando un camino a tierra a través del pin PWM utilizado para controlar la posición del motor. Si alguien tiene ideas, soy todo oídos.
Así que probemos con un transistor PNP en una configuración de interruptor de lado alto.
¡Éxito! Ahora, cuando el servo no se mueve, parece que no hay ningún servo conectado. De ahí el uso del transistor en los pasos 13-16.
Paso 4:programación
Por supuesto, después de diseñarlo, debe programar el Pro Mini para probarlo. Lo vas a probar primero, ¿verdad? Intenté usar el cable SparkFun TTL a USB, pero no pude hacerlo funcionar. ¿Quizás tengo el cable equivocado? Así que decidí ver si se podía hacer sin él.
Bueno, solo en este sitio, hay varias instrucciones para programar un Arduino Pro Mini usando un Arduino Uno. Es muy sencillo. Para mí, la parte más aterradora fue quitar el IC del Uno (esto debe hacerse porque no se puede programar un Uno como Pro Mini):
- Retire el circuito integrado del Uno (tome nota de la dirección en la que se encuentra la muesca, para que pueda volver a colocarla). Hice esto usando un dispositivo de plástico tipo cuchillo, como el que podría usar para abrir un iPhone. Comencé haciendo palanca suavemente debajo del circuito integrado, alternando desde ambos lados, para evitar doblar los pines.
- Conecte el pin Uno 5V al pin Pro Mini VCC.
- Conecte el pin Uno GND al pin Pro Mini GND.
- Conecte el pin Uno TX al pin Pro Mini TX0.
- Conecte el pin Uno RX al pin Pro Mini RXI
- Conecte el pin Uno RESET al pin Pro Mini RST.
Me hice dos juegos de cables y los conecté a una placa de pruebas. Uní los dos extremos de los cables de puente con cinta adhesiva para no tener que conectar los pines individualmente, una vez hecho. Soy el tipo de persona que dice, si tengo que hacer esto dos veces, puedo automatizarlo o simplificarlo.
Ahora, cuando ingrese al IDE de Arduino, seleccione "Arduino Pro o Pro Mini" y podrá programar la placa directamente. Incluso puedo reprogramarlo sin quitar todo el ensamblaje de las persianas, si encuentro cambios que quiero hacer.
Aquí está el boceto de SmartBlinds que utilicé para este proyecto. Creo que está bastante bien documentado, pero si tiene preguntas, no dude en preguntar. La clase de registro EEPROM también es necesaria y está disponible en las bibliotecas de mi github.
También agregué un intento tanto en la vista de tablero como en la vista esquemática del proyecto. Fritzing sigue interfiriendo conmigo, sin embargo, por lo que puede que no se vea bien.
Paso 5:Comience el ensamblaje
Ahora que tenemos algunos datos sobre nuestro sistema, comencemos a ensamblarlos.
La adición que hice esta vez es usar los conectores JST y soldarles el cable de núcleo sólido para darles un poco más de rango. Por defecto, son MUY cortos. El uso de conectores tiene la ventaja adicional de brindarle un fácil punto de ruptura entre la batería y el resto del circuito.
Tenga en cuenta que en mi primer proyecto debo haber fallado en esta medición crítica, ya que no descubrí que el servomotor consume 14 mA todo el tiempo.
Este es un buen momento para soldar también el cable de núcleo sólido al panel solar. Agregué aproximadamente 2 pies de cable al conector JST para colocar el panel solar en la ubicación adecuada en la ventana para maximizar la cobertura solar durante todo el año, pero minimizar el impacto visual. Mantenga los conectores más cortos (más) para soldar a la PCB. Esto minimiza el tamaño de la pieza que entra en el riel superior ciego. Además, el uso de alambre de núcleo sólido para soldarlo a la PCB parece (para mí) funcionar mejor que soldar alambre trenzado en los orificios. Su kilometraje puede variar.
Corta la PCB al tamaño que necesites para tus persianas. Las tablas que compré son demasiado grandes en unas 3 filas de agujeros, así que las corté tanto. Traté de diseñar el circuito lo más pequeño posible y lo más ordenado que pude. Precorte los cables al tamaño que necesite, y doble un poco para pasar por las esquinas, etc. Y luego hacia abajo (o hacia arriba) en los orificios de la PCB. Tenga en cuenta la altura de los pines del conector del servo y asegúrese de que el conector no interfiera con el funcionamiento del servo dentro de las persianas.
También raspé las líneas grabadas en el amplificador DC-DC que conducen al indicador LED. Ahorra alrededor de 1 mA todo el tiempo. Idealmente, el sensor de temperatura estaría apagado solo, para reducir cualquier impacto potencial del servo u otros componentes. Fallé en hacer eso, y está justo al lado del transistor.
Paso 6:Montaje completo, una última reprogramación
Lo último que hago después de completar el ensamblaje es restaurar la clase de registro EEPROM. No quería escribir en EEPROM mientras creaba prototipos y probaba cosas diferentes, así que hice que comentaran ese código. Pero ahora que estamos listos para implementar, es hora de habilitar el registro. La salida del registro está aquí. También se adjunta a continuación, ya que estaba en el formato original.
El Pro Mini tiene 1024Kb de EEPROM. Basado en un tamaño de 22 bytes por entrada, más 2 bytes de "patrón de sincronización", debería poder obtener 42 entradas en EEPROM antes de que finalice. Eso es menos de un mes de datos, a 2 actividades por día. Me gustaría obtener más, pero eso requeriría una tarjeta SD o EEPROM más grande. Quizás la próxima rev.
También tomo una última medición de corriente, para asegurarme de que no tengo un corto en algún lugar. La corriente que medí es de aproximadamente 1,5 mA. Con una batería de 900 mA-hora, debería proporcionar unas 600 horas de funcionamiento sin carga. Reste un poco porque no siempre estará durmiendo y, por supuesto, cada vez que se mueve, está agotando la batería más rápido. Usando la biblioteca LowPower de rocketlabs, duerme a 1.5 mA. Durante la ejecución, es de aproximadamente 25 mA, y al mover las persianas, está entre 200 mA y aproximadamente 500 mA, o más. Me gustaría hacer que la batería dure aún más, pero también me gusta que los LED se enciendan cuando funciona para saber que está funcionando, así que estoy de acuerdo con esa compensación.
FEF476VIRXTB0NK.txt
Paso 7:instalación
Bien, ahora para instalar en las persianas.
- Primero, retire el sacacorchos para el cordón de tiro (si sus persianas los tienen). Proporcionan demasiada resistencia para que el servomotor funcione correctamente. (No tengo una imagen de eso porque estoy reutilizando las persianas originales y no puedo encontrar esa pieza)
- Taladre un pequeño orificio para que salga el LDR (yo uso el lado exterior de las persianas)
- Ahora use una Dremel u otra herramienta de corte para cortar un cuadrado del tamaño de su servomotor. Debe ajustarse bien, pero no querrás rayar o dañar el servo (utilicé el lado que mira hacia el exterior de nuevo, no quiero verlo en la casa, aunque podría estar cubierto por la decoración recorte. Solo asegúrese de que no interfiera con el recorte si elige ese lado)
- Cubra los bordes ásperos con cinta adhesiva o alísela de alguna manera.
- Inserte la PCB en las persianas y asegúrese de que el sensor de luz sobresalga por el orificio que hizo en el paso 2.
- Ahora conecte el servomotor al eje y apriete el tornillo de fijación. En este punto, debe quedar claro el motivo de la espera de 90 grados y 10 segundos al comienzo de la operación. Comienzo el programa, dejo que el servo se mueva a 90 grados y luego desactivo la batería. Luego utilizo esa posición para fijarlo a las persianas, que moví manualmente a 90 grados para que coincida.
- Ahora súbase a la escalera e instale las persianas.
- Coloqué el panel solar en el panel central, en el tercio superior de la ventana. Paso los cables a lo largo de los separadores de paneles y pego el panel y los cables en su lugar para minimizar la visibilidad.
- Ahora conecte el panel solar al circuito.
- Conecte la batería y deslice rápidamente las persianas en su lugar. Deben moverse al centro, luego, después de la demora de 10 segundos, moverse a la posición apropiada. Coloco el soporte de la batería dentro del riel ciego antes de conectarlo.
- Vuelva a instalar la moldura decorativa.
- Tómate una cerveza (o en mi caso, un ron con Coca Cola).
Paso 8:¡Relájate y disfruta!
Disfrute del buen funcionamiento de las persianas, ya que se abren y cierran automáticamente.
Si haces uno con mi diseño, ¡házmelo saber! Me encantaría saber si ha realizado cambios o mejoras. Si tiene alguna pregunta, pregunte. Este sitio web ha sido muy útil para aprender las diferentes habilidades involucradas en este proyecto, y me encantaría retribuir.
Actualización:Después de varios meses de funcionamiento, me complace decir que se están comportando EXACTAMENTE como deberían. Una peculiaridad que encontramos fue que si las luces en el pasillo de arriba Y la entrada de abajo están encendidas, las persianas permanecen abiertas más allá del anochecer, lo que lo hace perfecto para mostrar su función en compañía. Y en esos días de finales de verano en los que hacía mucho calor, las persianas se cerraban debido al calor a una temperatura muy agradable:la ventana se calienta más que el piso principal, por lo que las persianas se cierran mientras todavía están en los 70 (F) en la casa. .
Código
Github
https://github.com/Froz3nArcher/libraries/tree/master/EEPROMLoghttps://github.com/Froz3nArcher/libraries/tree/master/EEPROMLogGithub
https://github.com/Froz3nArcher/SmartBlindshttps://github.com/Froz3nArcher/SmartBlindsEsquemas
Esquemas de persianas inteligentes
https://github.com/Froz3nArcher/SmartBlinds/blob/master/SmartBlinds.fzzProceso de manufactura
- Smart Bartender
- Persianas inteligentes
- Sensor de obstáculos simple con Arduino
- Zapatos inteligentes (autoajuste y generación de electricidad)
- Seguidor solar basado en Internet de las cosas (IoT)
- Brazo robótico simple e inteligente con Arduino
- Monitoreo SMART de temperatura para escuelas
- Guante de mano inteligente
- Multiplexor de cargador de batería inteligente con pantalla inteligente
- Una entrada analógica aislada para Arduino
- Smart Energy Monitor basado en Arduino