Índice:

Termostato de sala - Arduino + Ethernet: 3 etapas
Termostato de sala - Arduino + Ethernet: 3 etapas

Vídeo: Termostato de sala - Arduino + Ethernet: 3 etapas

Vídeo: Termostato de sala - Arduino + Ethernet: 3 etapas
Vídeo: Acidente de trabalho em máquina 2024, Julho
Anonim
Termostato de sala - Arduino + Ethernet
Termostato de sala - Arduino + Ethernet

Em termos de hardware, o projeto usa:

  • Arduino Uno / Mega 2560
  • Blindagem Ethernet Wiznet W5100 / Módulo Ethernet Wiznet W5200-W5500
  • Sensor de temperatura DS18B20 no barramento OneWire
  • Relé SRD-5VDC-SL-C usado para troca de caldeira

Etapa 1: Descrição do termostato Ethernet

Descrição do termostato Ethernet
Descrição do termostato Ethernet

Arduino é uma plataforma embutida prática que pode ser usada, por exemplo, para construir um termostato de ambiente, que mostraremos hoje. O termostato é acessível a partir da rede LAN na qual está localizado, embora seja equipado com uma interface web que permite a configuração de todos os elementos do termostato. A interface da web é executada diretamente no Arduino no modo de servidor da web. O servidor web permite a execução de várias páginas HTML independentes, que podem ser informativas ou mesmo funcionais. O servidor da web é executado na porta 80 -

O relé eletromagnético SRD-5VDC-SL-C, que é utilizado no projeto, permite chaveamento de até 10A a 230V - potência 2300W. No caso de comutação de um circuito DC (carga), é possível comutar 300W (10A a 30V DC). Alternativamente, o relé SSR OMRON G3MB-202P é totalmente compatível com o diagrama de fiação, que é adequado apenas para cargas não indutivas e exclusivamente para circuitos CA. Potência máxima de comutação 460 W (230 V, 2 A). O consumo de Arduino com blindagem Ethernet e outros periféricos está no nível de 100-120mA com o relé aberto. Quando fechado, abaixo de 200mA com alimentação de 5V.

Etapa 2: Interface da Web

Interface web
Interface web

A interface da web para o termostato permite:

  • Visualize a temperatura em tempo real do sensor DS18B20
  • Visualize o status do relé em tempo real com mudança dinâmica de saída na página
  • Modifique a temperatura alvo (referência) na faixa de 5 a 50 ° C com uma etapa de 0,25 ° C
  • Modifique a histerese na faixa de 0 a 10 ° C com uma etapa de 0,25 ° C

A interface da web foi projetada para acomodar telas maiores e menores. É responsivo, suporta telas widescreen de alta definição, mas também dispositivos móveis. A interface usa estilos CSS importados da estrutura Bootstrap de um servidor CDN externo, que carrega o dispositivo do lado do cliente ao abrir uma página em execução no Arduino. Como o Arduino Uno tem memória limitada, ele só pode executar páginas com alguns kB de tamanho. Ao importar estilos CSS de um servidor externo, isso reduzirá o desempenho e a carga de memória do Arduino. A implementação do software (para Arduine Uno) usa 70% da memória flash (32kB - 4kB Bootloader) e 44% da memória RAM (2kB).

As partes estáticas de uma página da web (cabeçalho e rodapé do documento HTML, vinculação CSS do Bootstrap, metatags, cabeçalho de resposta HTTP, tipo de conteúdo, formulário e mais) são armazenadas diretamente na memória flash do Arduino, o que pode reduzir significativamente a quantidade de RAM usada pelo usuário conteúdo gerado. O servidor da web é, portanto, mais estável e pode lidar com várias conexões de vários dispositivos na rede ao mesmo tempo.

Para manter os valores definidos mesmo após uma falha de energia, eles são armazenados na memória EEPROM do Arduino. Temperatura de referência para o deslocamento 10, histerese para o deslocamento 100. Cada um dos valores ocupa no máximo 5B na memória EEPROM. O limite de transcrição da EEPROM está no nível de 100.000 transcrições. Os dados são substituídos apenas quando o formulário HTML é enviado. Caso o dispositivo não tenha nada armazenado nos deslocamentos EEPROM mencionados na primeira inicialização, a escrita automática será realizada com os valores padrão - referência: 20,25, histerese 0,25 ° C

A meta tag Refresh atualiza toda a página do Arduino a cada 10 segundos. Nesse momento, é necessário escrever a alteração para o termostato, caso contrário, as janelas de entrada serão redefinidas quando a página for atualizada. Como a biblioteca Ethernet não inclui o uso de um servidor web assíncrono, toda a página deve ser reescrita. Os dados dinâmicos que estão mudando principalmente são o valor atual da saída - On / Off.

Etapa 3: páginas HTML em execução no servidor da Web, esquemas, código-fonte

Páginas HTML em execução no servidor da Web, esquemas, código-fonte
Páginas HTML em execução no servidor da Web, esquemas, código-fonte

Páginas HTML em execução no Arduino:

  • / - página raiz contendo o formulário, listagem de saída lógica atual para o relé, temperatura
  • /action.html - processa valores do formulário, grava-os na memória EEPROM, redireciona o usuário de volta para a página raiz
  • / get_data / - distribui dados sobre a temperatura atual, temperatura de referência e histerese para terceiros (computador, microcontrolador, outro cliente …) no formato JSON

Também existe uma versão estendida deste termostato que inclui:

  • Modo manual para relés (tempo ilimitado, hard ON / OFF)
  • Cronômetro de watchdog
  • Disponíveis mais sensores, por exemplo: SHT21, SHT31, DHT22, BME280, BMP280 e outros
  • Modo de refrigeração
  • Controle e configuração via RS232 / UART independente de Ethernet
  • Controle de temperatura PID para termostato
  • Possibilidade de usar plataformas ESP8266, ESP32 para termostato

A implementação do programa para o projeto pode ser encontrada em: https://github.com/martinius96/termostat-ethernet/ A implementação contém programas para o endereço IPv4 estático / dinâmico atribuído ao escudo Ethernet.

O termostato destina-se apenas a temperaturas internas! (acima de 0 ° C), ao qual a lógica do sistema é adaptada. É possível substituir um termostato existente por um termostato, é possível substituir temporariamente um termostato em uma geladeira, manter uma temperatura constante em um terrário e similares.

Recomendado: