Controlador de ventilador de escape WiFi

imagen
Han pasado casi dos años desde la fabricación del controlador de control de humedad para el baño . Todo este tiempo, el controlador sirvió fielmente sin fallas ni congelaciones, como corresponde a un buen dispositivo, e incluso obtuvo un glamoroso estuche hecho a mano de las manos de mi esposa.

imagen

Pero el progreso tecnológico avanza inexorablemente y las nuevas tendencias me persiguen nuevamente. Durante mucho tiempo he nutrido la idea de implementar el concepto de un hogar inteligente en los módulos WiFi ESP8266. Experimentó con estos módulos durante algún tiempo y ahora decidió transferirles su "hogar inteligente".

El objetivo principal del proyecto era la implementación de nuevas características que usaré en otros dispositivos en el futuro.
Entonces, ¿qué me dará la actualización del controlador de ventilador en el ESP8266?

Nuevas características


  • Ver todos los indicadores en WiFi desde una computadora / tableta / teléfono.
  • Procesamiento de parámetros adicionales: tiempo de funcionamiento del ventilador y tiempo de encendido de la lámpara en el baño.
  • Control de ventilador WiFi desde computadora / tableta / teléfono.
  • Configurar el controlador a través de WiFi con guardar valores en la memoria no volátil.
  • Grabando periódicamente los valores de todos los indicadores en un servidor en Internet.
  • Bueno, como todavía existe Internet, la hora se muestra con sincronización a través del protocolo NTP.

Todas estas funciones permiten analizar el funcionamiento del controlador y, en el futuro, optimizar los parámetros del algoritmo de control. Bueno, este controlador entrará en el sistema general de una casa inteligente con monitoreo de los parámetros ambientales del baño.
imagen
El esquema no ha cambiado mucho desde la versión anterior:
  • Atmega328 reemplazado por ESP8266
  • El indicador de siete segmentos reemplazó el módulo de visualización terminado con TN1637
  • Un triac con un optoacoplador se reemplaza por un relé de estado sólido (el mismo, pero en el caso).

Todas las principales diferencias en el programa controlador.

Lista de componentes


  • Módulo ESP8266 ESP07 con placa adaptadora ~ $ 2.3
  • Pantalla de cuatro dígitos y siete segmentos en el chip TM1637 con conexión I2C ~ $ 1
  • Relé de estado sólido OMRON G3MB-202P ~ $ 1
  • Fuente de alimentación 220V / 3.3V 600mA ~ $ 2.2
  • Sensor de temperatura y humedad (baja precisión, pero suficiente para mis tareas) DHT11 ~ $ 0.7
  • Instrumento caja de plástico 110x73x34 ~ $ 1
  • Fotoresistor, solo resistencias, tablero y cables

Total de alrededor de $ 9
Todas las partes, excepto la carcasa y la fuente de alimentación, se compraron en aliexpress.com. Ordeno cajas y fuentes de alimentación a precios razonables de taobao.com
imagen

Ensamblaje de controlador


Este controlador es un prototipo para futuros dispositivos en el ESP8266, por lo que la instalación se realizó en una placa de pruebas.
imagen
Hago un filtro de luz debajo del indicador desde una esquina de carpeta para papeles, comprado en una papelería. Una ventana transparente para la fotorresistencia: una película protectora que quedó de un teléfono (lo pedí una vez con un margen, ahora está por ahí).
imagen
Y este es mi viejo controlador que funcionó en el baño durante dos años.
imagen
Al depurar, se detectó un defecto tecnológico: el fotodiodo detrás de la ventana en el estuche recibió muy poca luz y sin un amplificador no funcionó cuando se encendió la lámpara en el baño, tuve que llevarla hacia la lámpara.
imagen
imagen

Ahora le contaré sobre las características del programa, los algoritmos de control y la configuración de este controlador.

ESP8266, a diferencia de Atmega328, en el que se implementó la versión anterior, tiene mucha más memoria (RAM, ROM. EEPROM), que, junto con el WiFi incorporado, le permite implementar las funciones del servidor WEB incorporado sin guardar memoria para cadenas de texto.

Pero con el GPIO, el ESP8266 es bastante malo, por lo tanto, un lujo como administrar un indicador de siete segmentos no es directamente accesible para él. Por lo tanto, se seleccionó el indicador en el chip TM1637, que requiere solo dos salidas para la conexión.

Entorno de desarrollo


He jugado lo suficiente con varios firmwares ESP8266 que me permiten escribir programas en los intérpretes integrados LUA, JC y generalmente programar a través de WEB. Traté de escribir en un SDK. Se decidió por una opción de compromiso: programar en el IDE de Arduino.
Una instalación bastante simple, programación y una gran cantidad de bibliotecas listas para usar, que, en su mayor parte, funcionan en el ESP. Este entorno permitió el uso de una gran cantidad de código antiguo que proporciona la lógica básica para el funcionamiento del controlador de control del ventilador, que se conservó de la versión anterior.

Básicamente, fue interesante transferir el algoritmo bien probado que implementa la máquina de estado determinista finita descrita en la tabla de transición de estado: las
imagen
bibliotecas Arduino surgieron sin problemasDHT para trabajar con sensores de humedad / temperatura de Adafruit y para trabajar con el indicador en TM1637 DigitalTube .

Los detalles del uso del Arduino IDE para programar el ESP8266 se describen bien en este artículo.

Implementando nuevas características


Es muy inconveniente hacer controladores WiFi en los que se unan los parámetros de conexión de red. ¿Imagínese el resultado del cambio de nombre o contraseña del punto de acceso si hay una docena de tales controladores en casa?

Por lo tanto, este programa implementa las funciones de almacenar parámetros de conexión en la memoria EEPROM no volátil y configurarlos en la red. La estructura para guardar los parámetros, así como para leerla y escribirla, se implementa en los archivos WC_EEPROM.h y WC_EEPROM.cpp de mi proyecto. La verificación de lectura y escritura se realiza calculando la suma de verificación de la configuración y comparándola con la escrita en la EEPROM.

Además de la configuración de red, todos los tiempos de espera y otros parámetros del algoritmo de control del ventilador también se guardan en la memoria, lo que permite optimizar y ajustar este controlador directamente "por aire".

La visualización de los modos de funcionamiento, la configuración de las configuraciones del controlador y el control directo del ventilador se implementan utilizando el servidor WEB incorporado (archivos WC_HTTP.h y WC_TTP.cpp).

El algoritmo de configuración del punto de acceso es el siguiente:

Si el gabinete ESP no pudo conectarse al punto de acceso especificado en la configuración EEPROM , luego eleva su punto de acceso y en la dirección 192.168.4.1, le permite configurarlo.
Bueno, si está conectado, funciona como de costumbre.
La página principal del servidor WEB muestra los parámetros básicos del controlador y le permite encender / apagar manualmente el controlador (análogo a presionar el botón de control manual)
imagen
Aquí también puede ir a la
imagen
página de configuración de red y la página de configuración del algoritmo de operación del controlador
imagen
Desde estas dos páginas, puede reiniciar el controlador y restablecer todas las configuraciones "predeterminadas".

Estoy planeando aportar belleza a la interfaz en el futuro, cuando el concepto de un hogar inteligente con WiFi esté más o menos establecido en mi cabeza.

Otra función implementada en este programa es un reloj en tiempo real sincronizado a través del protocolo NTP en Internet. (Archivos WC_NTP.h y WC_NTP.cpp)

No describiré el algoritmo principal, la lógica de trabajo ha funcionado bien y sigue siendo la misma, puedes leer sobre esto en el artículo anterior. Los principales cambios han afectado la pantalla. Quiero llamar la atención sobre una "característica": la función DisplaySpecialChar (), que le permite mostrar cualquier carácter que pueda imaginar para mostrar en un indicador de siete segmentos utilizando una máscara de bits. Se me ocurrió este símbolo de "porcentaje" en la pantalla de humedad
imagen
y el símbolo de "grado" en la pantalla de temperatura. Los
imagen
bits en la máscara de bits corresponden a los segmentos del indicador.

Bueno, la última de las nuevas características es guardar parámetros en un servidor en Internet para su visualización y posterior análisis. Se guardan los valores de humedad, temperatura, un puerto analógico con un fotorresistor para ajustar el umbral de iluminación, el tiempo del ventilador, el tiempo de encendido de la luz y el tiempo de funcionamiento del controlador desde el último reinicio.

La grabación en el servidor ocurre en dos modos. Los parámetros se registran con mayor frecuencia, cuando "algo sucede" en el baño, en este momento la luz está encendida o el ventilador está funcionando. Todos los tiempos de espera se configuran a través de la interfaz WEB.

Los datos se almacenan en mi servidor en Internet. La dirección del servidor se puede configurar, pero el formato de grabación todavía está cosido en el programa. De nuevo, hasta tiempos mejores concepto ustanivaniya))). Ahora los parámetros se guardan mediante el script PHP más simple en una tabla con una estructura simple.
imagen
Es bastante simple reconfigurar la configuración de guardado en la misma "supervisión pública". Personalmente, este servidor no me satisface con restricciones en la frecuencia de almacenamiento de datos y la profundidad del archivo.

Optimizar la configuración del controlador


Después de la "operación de prueba", puede determinar si los umbrales de iluminación y humedad están configurados correctamente, así como los tiempos de espera de varios eventos. En la implementación anterior, configuré el tiempo de respuesta en 20 minutos, sentado en el baño con un cronómetro. Después de observar el gráfico de parámetros durante varias duchas, vi lo siguiente:
imagen
  • La humedad en el invierno cambia en un 35-40%
  • Tiempo de normalización de humedad con ventilación natural 20-25 minutos.
  • Tiempo de normalización de humedad con un ventilador de trabajo 10-12 min.
  • El ventilador duplica la eficiencia de la ventilación.

En base a esto, puede reducir de manera segura el tiempo de funcionamiento del ventilador a 12 minutos, extendiendo así su vida útil y ahorrando un poco de energía. Se puede hacer un análisis similar para otras estaciones, cuando la humedad en el departamento es completamente diferente.

Ahora, después del análisis, puede aumentar el período de escritura de parámetros en el servidor.

Conclusiones



  • El controlador en el ESP8266 es estable, realiza sus funciones.
  • Su funcionalidad se ha expandido, ahora es fácil de administrar y se integra normalmente en el sistema Smart Home
  • Algunas cosas deben mejorarse, por ejemplo, la interfaz WEB, la autorización de acceso, la parte del servidor y algunas imprecisiones en el cálculo del ventilador y las horas de funcionamiento de la luz. Se pueden revelar otros deseos de mejora.
  • El proyecto piloto para Smart Home en WiFi puede considerarse exitoso;)

El boceto se puede descargar aquí. Estaría muy agradecido si denuncias algún error.

Boceto del controlador del ventilador en WiFi El

tiempo dedicado al proyecto es de dos días sin

PS. Respondo inmediatamente a la pregunta, ¿por qué es tan difícil? ¿Puedo sentarme en paralelo con el interruptor o en el temporizador?
- Sí puedes. Pero la inclusión de temporizador y luz no me convenía. Además, es un hobby, la implementación de algunas ideas que se utilizan en otros proyectos.

La instalación de almacenamiento tenía errores nuevamente, así que las imágenes de mi blog . Allí puedes ver mis desarrollos en el hogar inteligente

Source: https://habr.com/ru/post/es389751/


All Articles