Tabla de contenido:

Termostato de ambiente - Arduino + Ethernet: 3 pasos
Termostato de ambiente - Arduino + Ethernet: 3 pasos

Video: Termostato de ambiente - Arduino + Ethernet: 3 pasos

Video: Termostato de ambiente - Arduino + Ethernet: 3 pasos
Video: Arduino IoT Cloud con ESP32, Relé (relay) y Sensor DHT22. Guía completa paso a paso desde cero 2024, Mes de julio
Anonim
Termostato de ambiente - Arduino + Ethernet
Termostato de ambiente - Arduino + Ethernet

En términos de hardware, el proyecto utiliza:

  • Arduino Uno / Mega 2560
  • Blindaje Ethernet Wiznet W5100 / Módulo Ethernet Wiznet W5200-W5500
  • Sensor de temperatura DS18B20 en el bus OneWire
  • Relé SRD-5VDC-SL-C utilizado para la conmutación de calderas

Paso 1: Descripción del termostato Ethernet

Descripción del termostato Ethernet
Descripción del termostato Ethernet

Arduino es una práctica plataforma empotrada que se puede utilizar, por ejemplo, para construir un termostato de habitación, que mostraremos hoy. El termostato es accesible desde la red LAN en la que se encuentra, mientras que está equipado con una interfaz web que se utiliza para configurar todos los elementos del termostato. La interfaz web se ejecuta directamente en Arduino en modo servidor web. El servidor web permite la ejecución de varias páginas HTML independientes, que pueden ser informativas o incluso funcionales. El servidor web se ejecuta en el puerto 80 -

El relé electromagnético SRD-5VDC-SL-C, que se utiliza en el proyecto, permite conmutar hasta 10A a 230V - potencia 2300W. En caso de conmutar un circuito de CC (carga), es posible conmutar 300W (10A a 30V CC). Alternativamente, el relé OMRON G3MB-202P SSR es totalmente compatible con el diagrama de cableado, que solo es adecuado para cargas no inductivas y exclusivamente para circuitos de CA. Potencia de conmutación máxima 460W (230V, 2A). El consumo de Arduino con escudo Ethernet y otros periféricos está en el nivel de 100-120mA con el relé abierto. Cuando está cerrado, por debajo de 200mA a 5V de suministro.

Paso 2: interfaz web

Interfaz web
Interfaz web

La interfaz web del termostato permite:

  • Ver la temperatura en tiempo real del sensor DS18B20
  • Ver el estado del relé en tiempo real con cambio de salida dinámica en la página
  • Modifique la temperatura objetivo (de referencia) en el rango de 5 a 50 ° C con un paso de 0,25 ° C
  • Modifique la histéresis en el rango de 0 a 10 ° C con un paso de 0,25 ° C

La interfaz web está diseñada para adaptarse a pantallas más grandes y más pequeñas. Responde, admite pantallas de pantalla ancha de alta definición, pero también dispositivos móviles. La interfaz utiliza estilos CSS importados del marco Bootstrap desde un servidor CDN externo, que carga el dispositivo del lado del cliente al abrir una página que se ejecuta en Arduino. Debido a que Arduino Uno tiene memoria limitada, solo puede ejecutar páginas de unos pocos kB de tamaño. Al importar estilos CSS desde un servidor externo, reducirá el rendimiento y la carga de memoria del Arduino. La implementación del software (para Arduine Uno) usa el 70% de la memoria flash (32kB - 4kB Bootloader) y el 44% de la memoria RAM (2kB).

Las partes estáticas de una página web (encabezado y pie de página de un documento HTML, enlaces CSS Bootstrap, metaetiquetas, encabezado de respuesta HTTP, tipo de contenido, formulario y más) se almacenan directamente en la memoria flash de Arduino, lo que puede reducir significativamente la cantidad de RAM utilizada por el usuario. -contenido generado. Por tanto, el servidor web es más estable y puede gestionar la multiconexión de varios dispositivos en la red al mismo tiempo.

Para mantener los valores establecidos incluso después de un corte de energía, se almacenan en la memoria EEPROM del Arduino. Temperatura de referencia al offset 10, histéresis al offset 100. Cada uno de los valores ocupa un máximo de 5B en la memoria EEPROM. El límite de transcripción de EEPROM está en el nivel de 100, 000 transcripciones. Los datos se sobrescriben solo cuando se envía el formulario HTML. En caso de que el dispositivo no tenga nada almacenado en las compensaciones EEPROM mencionadas en la primera puesta en marcha, la escritura automática se realizará con los valores predeterminados - referencia: 20.25, histéresis 0.25 ° C

La metaetiqueta Refresh actualiza toda la página de Arduino cada 10 segundos. En este momento, es necesario escribir el cambio para el termostato, de lo contrario, las ventanas de entrada se restablecerán cuando se actualice la página. Debido a que la biblioteca de Ethernet no incluye el uso de un servidor web asíncrono, se debe reescribir toda la página. Los datos dinámicos que están cambiando principalmente son el valor actual de la salida: encendido / apagado.

Paso 3: páginas HTML que se ejecutan en el servidor web, esquemas, código fuente

Páginas HTML que se ejecutan en el servidor web, esquemas, código fuente
Páginas HTML que se ejecutan en el servidor web, esquemas, código fuente

Páginas HTML que se ejecutan en Arduino:

  • / - página raíz que contiene el formulario, listado de salida lógica actual para el relé, temperatura
  • /action.html: procesa los valores del formulario, los escribe en la memoria EEPROM y redirige al usuario a la página raíz.
  • / get_data /: distribuye datos sobre la temperatura actual, la temperatura de referencia y la histéresis a un tercero (computadora, microcontrolador, otro cliente …) en formato JSON

También hay una versión extendida de este termostato que incluye:

  • Modo manual para relés (tiempo ilimitado, encendido / apagado automático)
  • Temporizador de vigilancia
  • Disponibles más sensores, por ejemplo: SHT21, SHT31, DHT22, BME280, BMP280 y otros
  • Modo de enfriamiento
  • Control y configuración vía RS232 / UART independiente de Ethernet
  • Control de temperatura PID para termostato
  • Posibilidad de utilizar plataformas ESP8266, ESP32 para termostato

La implementación del programa para el proyecto se puede encontrar en: https://github.com/martinius96/termostat-ethernet/ La implementación contiene programas para la dirección IPv4 estática / dinámica asignada al escudo Ethernet.

¡El termostato solo está diseñado para temperaturas interiores! (por encima de 0 ° C), a la que se adapta la lógica del sistema. Es posible reemplazar un termostato de habitación existente con un termostato, es posible reemplazar temporalmente un termostato en un refrigerador, mantener una temperatura constante en un terrario y similares.

Recomendado: