Ayer ya deje listo el humidificador.
Simplemente lo conecte al enchufe hembra del trasto, el unico que hay de momento, y el que esta controlado por un rele.
La programacion no puede ser mas sencilla:
Estuve dandole unas cuantas vueltas para decidir cuanto elevar la humedad antes de apagar el humidificador...
Si se pone un valor bajo, digamos un +5%, el humidificador se va a encender mas veces y la humedad va a ser mas constante (se movera entre 35% y 40%)
Si se pone un valor alto, digamos un +30%, el humidificador se va a encender menos veces, pero la humedad va a ser mas variable (se movera entre 35% y 65%).
Luego se podria ajustar para controlar las inercias, es decir, que se encienda y se apague un poco antes... pero vamos, no me quita el sueño.
Aqui el resultado, de momento hace esto, solo ha saltado una vez desde ayer (a eso de las 9 y pico de la noche):
No quiero enrollarme con temas de programacion, hay muchas formas de hacer lo mismo, de una manera mas o menos elegante.
Lo de arriba es pseudo-codigo, realmente mi planteamiento en todo momento va ser que el codigo sea FUNCIONAL, y que sea FIABLE.
Anoche por ejemplo me tire 3 horas preparando el codigo para el rele que va a encender/apagar los focos.
Realmente se hace en 5 minutos, pero me enrolle a perfeccionarlo, bueno perfeccionarlo... a meterle pijadas mas por pura diversion que por funcionalidad...
Total, que luego busque en google para ver como lo hacia la gente, y me di cuenta que hay una forma mil veces mas sencilla, pero sobretodo, mil veces MAS FIABLE.
Esta forma es utilizar el CRONTAB, es decir, "el programador de tareas" que todo Linux tiene, y Raspbian logicamente tambien.
En el crontab puedes añadir tareas del tipo:
-Cuando arranque el ordenador, hacer esto.
-Cada x tiempo hacer esto otro
-A una hora concreta hacer tal cosa.
-...
Lo bueno es que Python tiene un modulo para trabajar de manera sencilla con crontab, para añadir, editar... las tareas.
Es decir, el script que maneja todo va seguir siendo un ficherito Python, pero algunas ordenes o tareas no las va a lanzar directamente el propio script, sino que las dejara programadas en crontab. Estas tareas pueden ser: encendido/apagado de luces, control de extractores (por ej. encender 5 minutos cada 15 minutos, cosas asi) y etc.
Con esto se consigue dar mas fiabilidad al sistema.
Si todo se lanzase desde el el propio script, si este tuviese algun fallo u excepcion que no hemos controlado, algunas ordenes podrian fallar, y por ejemplo quedarse las luces encendidas/apagadas cuando no corresponde.
Simplemente lo conecte al enchufe hembra del trasto, el unico que hay de momento, y el que esta controlado por un rele.
La programacion no puede ser mas sencilla:
Si humedad_ambiente es menor que 35:
Encender rele_humidificador
Si humedad_ambiente es mayor que 55:
Apagar rele_humidificador
Estuve dandole unas cuantas vueltas para decidir cuanto elevar la humedad antes de apagar el humidificador...
Si se pone un valor bajo, digamos un +5%, el humidificador se va a encender mas veces y la humedad va a ser mas constante (se movera entre 35% y 40%)
Si se pone un valor alto, digamos un +30%, el humidificador se va a encender menos veces, pero la humedad va a ser mas variable (se movera entre 35% y 65%).
Luego se podria ajustar para controlar las inercias, es decir, que se encienda y se apague un poco antes... pero vamos, no me quita el sueño.
Aqui el resultado, de momento hace esto, solo ha saltado una vez desde ayer (a eso de las 9 y pico de la noche):
No quiero enrollarme con temas de programacion, hay muchas formas de hacer lo mismo, de una manera mas o menos elegante.
Lo de arriba es pseudo-codigo, realmente mi planteamiento en todo momento va ser que el codigo sea FUNCIONAL, y que sea FIABLE.
Anoche por ejemplo me tire 3 horas preparando el codigo para el rele que va a encender/apagar los focos.
Realmente se hace en 5 minutos, pero me enrolle a perfeccionarlo, bueno perfeccionarlo... a meterle pijadas mas por pura diversion que por funcionalidad...
Total, que luego busque en google para ver como lo hacia la gente, y me di cuenta que hay una forma mil veces mas sencilla, pero sobretodo, mil veces MAS FIABLE.
Esta forma es utilizar el CRONTAB, es decir, "el programador de tareas" que todo Linux tiene, y Raspbian logicamente tambien.
En el crontab puedes añadir tareas del tipo:
-Cuando arranque el ordenador, hacer esto.
-Cada x tiempo hacer esto otro
-A una hora concreta hacer tal cosa.
-...
Lo bueno es que Python tiene un modulo para trabajar de manera sencilla con crontab, para añadir, editar... las tareas.
Es decir, el script que maneja todo va seguir siendo un ficherito Python, pero algunas ordenes o tareas no las va a lanzar directamente el propio script, sino que las dejara programadas en crontab. Estas tareas pueden ser: encendido/apagado de luces, control de extractores (por ej. encender 5 minutos cada 15 minutos, cosas asi) y etc.
Con esto se consigue dar mas fiabilidad al sistema.
Si todo se lanzase desde el el propio script, si este tuviese algun fallo u excepcion que no hemos controlado, algunas ordenes podrian fallar, y por ejemplo quedarse las luces encendidas/apagadas cuando no corresponde.
Última edición: