Para muchos, está lejos de ser un secreto que dispositivos como los termostatos semanales ayudan a garantizar la temperatura ambiente óptima en la casa, además de ahorrar recursos de energía gastados en calefacción. Para el correcto funcionamiento del dispositivo, generalmente se coloca en la habitación más alejada, donde se encuentra la temperatura más baja. Pero la mayoría de los termostatos requieren una conexión por cable a la caldera para el control y no siempre es posible tender estos cables. Una solución a este problema se discutirá en este artículo. Cualquier persona interesada en pedir un gato ...
Tuve que enfrentar una tarea similar. La construcción de mi casa es bastante extensa, y la instalación correcta del termostato, necesitaba estirar más de 50 m de cable a través de las habitaciones con las reparaciones ya hechas, la alternativa estaba en la fachada, pero inmediatamente la descarté. Además, llevar un cable desde la calle hasta la caldera también era problemático, y no quería estropear la vista de la fachada con otro cable, sin eso había suficiente extra. La caldera se instaló en la cocina y fue una mala idea colocar el termostato al lado del grifo. Como resultado, llegué a la conclusión de que el termostato aún debe trasladarse a la habitación lejana, y la señal debe transmitirse por el aire. El proceso de desarrollar mi próxima nave comenzó como de costumbre con la declaración del problema. Así que empecemos ...
TK
Defina los requisitos para que el dispositivo resuelva el problema.
- El diseño de los dispositivos debe ser pequeño y colocarse en un estuche estético en blanco o negro.
- El módulo receptor y transmisor debe estar alimentado por un par de baterías AA.
- La vida útil de los módulos de un conjunto de baterías debe ser de al menos un año.
- La conexión al termostato y a la caldera de gas debe realizarse utilizando interfaces estándar sin realizar ningún cambio de diseño.
- Los dispositivos deben ensamblarse en una base de hardware asequible de proveedores locales.
Hardware
Cuando hayamos decidido los requisitos básicos, pasemos al diseño. Comencemos con el hardware.
Según las especificaciones técnicas, los requisitos básicos para la base del elemento serán: la capacidad de trabajar en el rango de voltaje de 1.8 a 3 voltios. Además de la capacidad de cambiar al modo de suspensión o apagar la periferia cuando no es necesario. Decidí comenzar mi camino de elección con la selección de un transceptor. Consideré las soluciones más simples en forma de módulos MX-FS-03V y MX-05V, el precio es ciertamente muy atractivo, pero la calidad de las revisiones es horrible y el rango de comunicación no es tan bueno. Y en mi caso fue necesario transmitir una señal a través de 4 paredes. Además, originalmente tenía la intención de hacer una confirmación del envío, por lo que la conexión era necesaria en ambos sentidos, lo que requeriría dos conjuntos. También se consideraron módulos LoRa y varios módulos de la serie HC. El rango todavía estaba limitado a lo que se vende localmente. Como resultado, después de considerar todas las opciones disponibles, decidí optar por módulos SI4432 listos para usar. En términos de relación precio-rendimiento, en mi opinión, fueron los mejores.
Este módulo tiene amplias capacidades técnicas y también es muy económico con configuraciones seleccionadas correctamente. La capacidad de controlar la potencia de salida también es muy útil, porque puede elegir el mejor, reduciendo así el consumo de energía de la batería. Aquí hay una tabla con especificaciones de la documentación.
Consideremos con más detalle los indicadores de consumo de energía en varios modos de la tabla. Necesitaremos estos datos más adelante para calcular la duración de la batería de los dispositivos.
En nuestro caso, ya es aceptable usar el modo de suspensión, sin mencionar el apagado completo por la función de apagado.
Inicialmente, se suponía que debía tomar ATMega 8 como procesador central, pero después de estudiar la documentación con más detalle, me di cuenta de que no entraba en mi rango de voltaje de suministro. Como resultado, elegí ATMega 328P, como Ella cumplió todos mis requisitos. Mirando hacia el futuro, diré que el hecho de que encontré un gestor de arranque listo para ella, pero más sobre eso más tarde, también jugó a su favor.
Considere el controlador con más detalle en términos de consumo de energía y reloj central.
Tratemos con el tiempo primero. Porque tenemos un rango de voltaje de trabajo de hasta 3 voltios, luego la elección de un resonador de cuarzo también es limitada, y el siguiente gráfico nos informa sobre esto
Como vemos a 8 MHz, no podemos lograr una operación estable, por lo tanto, utilizaremos cuarzo a 4 MHz.
Ahora veamos el consumo de energía en varios modos de operación. Aquí hay una tabla de la documentación que describe las características de consumo de energía.
Por lo tanto, si transfiere el controlador al modo de apagado, el consumo del propio microcontrolador cae a 44 uA con ciertas reservas, por supuesto.
Además de los elementos ya seleccionados, agregaremos un LED rojo con una corriente de trabajo de 1 mA.
Esto completa los componentes comunes para el receptor y el transmisor.
Considere los componentes adicionales para el receptor.
En la salida de un termostato de ambiente convencional hay un contacto de relé con buena capacidad de conmutación (250 V 5 A), por lo que no importa lo que controle, por lo tanto, de acuerdo con los términos de referencia, nuestro receptor debe tener la misma salida de relé. Pero cómo asegurar un bajo consumo de energía del relé en el modo encendido, porque la bobina del relé más pequeño consume decenas de miliamperios, y el termostato de fábrica funciona con un conjunto de baterías normales sin exagerar durante al menos 2 temporadas de calefacción. Pensé en esta tarea durante un par de días y, de repente, durante la reparación de uno de los dispositivos que se me ocurrió, solo hay un relé biestable. Y por qué durante la reparación, sino porque se utilizan en el dispositivo que se está reparando. Este tipo de relé puede mantener su estado por tiempo infinito sin consumo de energía. Para que el relé cambie su estado, es suficiente aplicar un impulso a la bobina necesaria, en el caso de dos relés de devanado, o un impulso en la polaridad inversa, en el caso de un relé con un devanado. Por lo tanto, decidimos el tipo de relé, pero ¿qué hacer con un modelo específico? Después de buscar un poco en Internet, llegué a la conclusión de que obtener un relé de bajo voltaje sería un problema para mí, tuve que detenerme en el relé Takamisawa ALD24W-K 24V que tengo. Pero esta solución planteó un nuevo problema: ¿dónde obtener 24 V?
La respuesta se encontró rápidamente, quizás no sea la más correcta, pero aún así. Decidí instalar un convertidor elevador y elevar el voltaje a 20 V, es suficiente para una conmutación de relé confiable. El convertidor tomó de un módulo bastante común basado en MT3608. Esta es una solución de trabajo que probé más de una vez, incluido el diseño de un destornillador eléctrico (puede leer sobre esto aquí en Habré). La salida EN le permite controlar el funcionamiento del convertidor, lo que reduce significativamente el consumo de energía. En realidad, aquí están los datos de la documentación.
Después de reunir toda la información recibida, dibujé diagramas de ambos dispositivos:
Transmisor
Receptor
Habiendo terminado con el hardware del proyecto, pasemos a los algoritmos y su implementación de software.
Algoritmo
Comencemos desarrollando un concepto y algoritmo de trabajo común para nuestros dispositivos. La siguiente figura muestra un diagrama de secuencia general para todos los dispositivos involucrados en el proceso.
Como puede ver, el algoritmo no es complicado, haré una presentación narrativa (bueno, soy demasiado vago para dibujar un diagrama de flujo, disculpe). Comencemos con el transmisor, como Es el más simple desde el punto de vista del algoritmo. El microcontrolador transmisor realiza la siguiente secuencia:
- comprueba el estado de carga de las baterías, si la carga es baja, indicamos una descarga por el LED incorporado.
- Interroga el estado de entrada.
- Transmite este estado por el aire.
- pone el transmisor en modo de suspensión y se queda dormido durante 1 minuto.
- el ciclo se repite desde el principio.
Con el receptor, las cosas son un poco más complicadas. El microcontrolador funciona de acuerdo con el siguiente algoritmo:
- comprueba el estado de carga de las baterías, si la carga es baja, indicamos una descarga por el LED incorporado.
- estamos esperando el paquete del transmisor, si en 2 minutos no se ha recibido la señal, nos quedamos dormidos durante 59 segundos, después de lo cual el ciclo comienza desde el principio.
- Si llega el paquete, tenemos un nuevo estado de retransmisión.
- si el nuevo estado del relé difiere del previamente guardado, encienda el convertidor elevador y cambie el relé al estado deseado.
- quedarse dormido por 59 segundos
- repita el ciclo primero
Por lo tanto, cuando enciende el receptor por primera vez, espera una señal del transmisor, tan pronto como lo recibe, hace un cambio en el estado del relé y se queda dormido 1 segundo menos que el transmisor. Como resultado, en el momento de un nuevo envío, el receptor ya está en funcionamiento y esperando un nuevo envío, es decir. es como sincronizado por un transmisor. Como resultado, fue posible ahorrar bien el consumo de energía. Si no se recibe la señal del transmisor, entonces esperamos un máximo de 2 minutos, se elige dicho intervalo para garantizar que la señal sea capturada independientemente del momento en que se enciende el transmisor. Pero es extremadamente antieconómico y está destinado únicamente a dispositivos de sincronización.
Tiempo de vida
Cuando quedó claro con el algoritmo, intentemos calcular la duración de la batería.
Pasemos un poco a la teoría necesaria para obtener números precisos al calcular el tiempo de funcionamiento de los sensores de un conjunto de baterías.
Entonces, primero veremos cuándo y en qué energía se gasta.
Considere el procedimiento de envío con más detalle.
Para transmitir el estado del relé, necesitamos formar un paquete y enviarlo al aire. En general, la estructura de dicho paquete es la siguiente:
Usé los parámetros predeterminados del transmisor, es decir FSK, No Manchester, Rb = 2.4kbs, Fd = 36kHz. La cantidad de datos transmitidos en el paquete es de 3 bytes. El preámbulo tendrá un tamaño de 40 bits de la tabla:
Para no profundizar en la jungla de la configuración del módulo y la operación de la biblioteca, aceptaremos los parámetros restantes como el máximo permitido. Como resultado, obtenemos el tamaño total del paquete de 5 bytes + 4 bytes + 4 bytes + 1 byte + 3 bytes + 2 bytes = 19 bytes, es decir. 152 bits. Que a una velocidad de 2400 bps, el tiempo de transmisión será de aproximadamente 64 ms.
Pasamos a la tabla de consumo de energía del módulo al comienzo del artículo y tomamos de ella el valor de la corriente durante la transmisión con una potencia de salida de 13 dBm. Por lo tanto, al enviar datos, el módulo gasta 30 mA.
En el modo de recepción, el módulo consumirá estáticamente 18,5 mA según la misma tabla.
Todavía no pude traducir el módulo al modo de apagado, por alguna razón no pude sacarlo del coma, como resultado me limité al modo de suspensión en el que el módulo consume 1 uA.
Además, mientras recibo y transmito el paquete, enciendo el LED rojo conectado a través de una resistencia de 1 kΩ a 3.3 voltios, consume aproximadamente 1 mA.
El microcontrolador en el modo de activación consume 2,4 mA y en modo de suspensión con el WDT encendido - 44 uA. Datos obtenidos de la tabla anterior.
El receptor también tiene una fuga de corriente parásita cuando el termostato se cierra a través de una resistencia pull-up al suelo (ver diagrama del transmisor), por lo que fluyen 3,3 V / 10 kOhm = 33 uA. Me pareció una gran cantidad, así que en el circuito cambié el valor de la resistencia a 100 kOhm, pero en el hierro todavía está ensamblado con 10 kOhm, por lo que lo tomaremos como está.
El receptor tiene más consumidores. En primer lugar, es un convertidor de refuerzo de 20 voltios. En modo de suspensión, consume 1 uA. En funcionamiento inactivo, el consumo será de 2.2 mA, en el programa espero 100 ms para iniciar el convertidor. La bobina del relé actúa como una carga para nosotros, su característica se indica a continuación:
Por lo tanto, resulta que la bobina, cuando se alimenta con 20 voltios, consumirá 20 V / 1920 ohmios = 11 mA. Ahora pasamos al gráfico de la dependencia de la eficiencia del consumo de corriente por la carga para evaluar el consumo total del convertidor con una bobina de relé conectada.
Como puede ver, con tal consumo, el gráfico no refleja la eficiencia, pero suponga que también se mueve linealmente hacia abajo y, en el peor de los casos, la eficiencia será aproximadamente del 85%. Como resultado, el consumo de corriente será de 11 mA / 0,85 = 13 mA. Vale la pena reconocer que, de hecho, la corriente máxima en el inicio del convertidor será de al menos 1A, y la operación y los procesos de inicio son complejos, y no soy la persona que puede expresarlos correctamente, por lo que los extrañaré y simplificaré un poco el proceso.
El tiempo de impulso generado por el relé de conmutación es de 20 ms.
Ahora que hemos descubierto quién consume energía y cuánto, calcularemos la vida útil teórica de las baterías AA. Nuevamente, considere el receptor y el transmisor por separado.
Comencemos como siempre con el transmisor. Tomemos como base el algoritmo de trabajo dado anteriormente. El tiempo de activación del controlador será un poco más largo que el tiempo de transmisión, y teniendo en cuenta los costos de configurar el módulo, sondear la entrada y medir el voltaje de la batería será de 70 ms, luego el controlador se pondrá en modo de suspensión durante un minuto. Por lo tanto, en un ciclo de operación, el controlador consumirá 0.07 s * (transmisor de 30 mA + 1 mA LED + 2.4 mA MK) + 60 s * (44 uA MK + 1 transmisor uA + resistencia de entrada de 33 uA) = 2.338 mA * s + 4.68 mA * s = 7.018 mA * s. Dividiendo el valor obtenido por 60.07 s, obtenemos el valor de corriente promedio por un segundo - 0.117 mA. La capacidad promedio de una batería de tamaño AA es de 2800 mA * h (cuando se conecta en serie, la capacidad total de las baterías no aumenta, si de repente alguien no lo sabe): esto es 2800 * 3600 = 10080000 mA * s. Como resultado, el tiempo de funcionamiento teórico del transmisor de un conjunto de baterías es de 10080000 mA * s / 0.117 mA / 3600 s / 24 h = 997 días.
Ahora sobre el receptor. También tomaremos como base el algoritmo de operación descrito anteriormente, pero con una advertencia, encendimos tanto el receptor como el transmisor casi simultáneamente, y, por lo tanto, el receptor se sincronizó inmediatamente con el transmisor.
Para ello, el tiempo máximo de activación del controlador será la suma del tiempo de espera del paquete (la recepción también entrará en él, ya que la interrupción por el módulo se generará solo después de que el paquete se haya recibido por completo), retirándolo del módulo, iniciando el convertidor y configurando un nuevo estado de relé, así como midiendo voltaje de la batería Después de resumir todos los datos, obtenemos 1.126 s, luego el controlador se pondrá en modo de suspensión durante 59 segundos. Pero desde Como el ciclo de trabajo es más complicado que en el receptor, el cálculo consistirá en más estados. Para un ciclo de operación, el controlador consumirá 1.006 s * (receptor de 18.5 mA + 2.4 mA MK) + 0.1 * (0.1 s * (receptor de 18.5 mA + 1 LED de mA + 2.4 mA MK + convertidor de 2.2 mA en XX) + 0.02 s * (18.5 Receptor de mA + 1 mA LED + 2,4 mA MK + 13 mA convertidor)) + 59 s * (44 uA MK + 1 uA receptor + 1 uA convertidor) = 21.0254 mA + 0.1 * (2.41 mA + 0.698 mA) + 2.714 mA = 24.0502 mA * s. El coeficiente 0.1 refleja el hecho de que en solo uno de 10 ciclos cambiamos el relé. Dividiendo el valor obtenido por 60.126 s, obtenemos el valor de corriente promedio por un segundo - 0.4 mA. Calcularemos la duración de la batería. Como resultado, el tiempo de funcionamiento teórico del receptor de un conjunto de baterías es de 10080000 mA * s / 0.4 mA / 3600 s / 24 h = 291 días, siempre que cambiemos el estado del relé cada 10 minutos.
Es obvio que en estos cálculos no se realizan todos los tiempos durante más de dos años debido a las características químicas del dispositivo de batería. Las baterías AA no pueden funcionar durante más de dos años con una fuente de alimentación constante del dispositivo, incluso con una corriente insignificante, a pesar de que la capacidad debería ser suficiente. Pero todo lo que tenga menos de dos años ya se convertirá en una limitación de capacidad. Desafortunadamente, los resultados del cálculo de la vida útil del receptor no se ajustan completamente a las especificaciones técnicas, pero en esta situación, me hice una concesión.
Implementación de código
Honestamente, soy escéptico de Arduino y sus IDEs similares. Comencé a comprender la programación de microcontroladores en C y trabajar con registros es más comprensible y predecible para mí que las llamadas veladas a funciones de alto nivel. Aunque en general he estudiado la plataforma en sí y algunos pequeños proyectos, todavía lo hago. Así que esta vez también la pereza prevaleció sobre mí. La disponibilidad de una biblioteca preparada para los módulos SI4432 para Arduino me sobornó y realmente no quería perder el tiempo intentando portarlo a CVAVR. Y el resto del código es extremadamente simple. Después de pasar varias tardes estudiando las bibliotecas para trabajar con el módulo, así como el modo de suspensión del microcontrolador, las primeras versiones de los bocetos del receptor y el transmisor estuvieron listas con bastante rapidez. Luego, fue necesario ensamblar el hardware y continuar el desarrollo con hardware real.
Esta vivo ...
El servicio en línea EasyEDA desarrolló un proyecto con un circuito y placas de circuito impreso. , .
…
… .
, . , , , .
, .. . , 3.3 , 5 , . , . , , . . , , 3 , , , . . , . . . , . , , . .
. Arduino 4 , , , . . , , . , , .
Conclusión
. 3- , , , .
, , 3 , , . , . — , …
, , . , .
Referencias
- GitHub
- .
- .