Índice:
- Etapa 1: Configuração
- Etapa 2: Configurando Relés
- Etapa 3: Controlador de histerese
- Etapa 4: Controlador PID
- Etapa 5: Bus de mensagens
- Etapa 6: Libs
Vídeo: Termostato baseado em Arduino: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Desta vez, vamos construir um termostato baseado em Arduino, sensor de temperatura e relé. Você pode encontrar no github
Etapa 1: Configuração
Toda a configuração é armazenada em Config.h. Você pode alterar os PINs de controle de relés, leitura de temperatura, limites ou temporizações.
Etapa 2: Configurando Relés
Vamos supor que gostaríamos de ter 3 relés:
- ID: 0, PIN: 1, ponto de ajuste de temperatura: 20
- ID: 1, PIN: 10, ponto de ajuste de temperatura: 30
- ID: 2, PIN: 11, Ponto de ajuste de temperatura: 40
Em primeiro lugar, certifique-se de que o PIN de sua escolha ainda não foi obtido. Todos os pinos podem ser encontrados em Config.h, eles são definidos por variáveis que começam com DIG_PIN.
Você tem que editar Config.h e configurar PINs, limites e quantidade de relés. Obviamente, algumas propriedades já existem, então você deve apenas editá-las.
const estático uint8_t DIG_PIN_RELAY_0 = 1; const estático uint8_t DIG_PIN_RELAY_1 = 10; const estático uint8_t DIG_PIN_RELAY_2 = 11;
const estático uint8_t RELAYS_AMOUNT = 3;
const static int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const static int16_t RELAY_TEMP_SET_POINT_2 = 40;
Agora temos que configurar relés e controlador, isso acontece em RelayDriver.cpp
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Etapa 3: Controlador de histerese
É o escolhido no exemplo acima, tem algumas configurações adicionais:
const estático uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minutosconst estático uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS dá tempo de espera para comutar o próximo relé. Imagine que a configuração do nosso exemplo começaria a funcionar em um ambiente de 40 graus. Isso resultaria na ativação de todos os três relés ao mesmo tempo. Isso pode levar a um alto consumo de energia - dependendo do que você está controlando, o motor elétrico, por exemplo, consome mais energia durante a partida. No nosso caso, os relés de comutação têm o seguinte fluxo: o primeiro relé passa, espere 5 minutos, o segundo passa, espere 5 minutos, o terceiro passa.
RHC_RELAY_MIN_SWITCH_MS define histerese, é a frequência mínima para um determinado relé alterar seu estado. Uma vez ligado, ele permanecerá ligado por pelo menos este período de tempo, ignorando as mudanças de temperatura. Isso é bastante útil se você estiver controlando motores elétricos, uma vez que cada chave tem um impacto negativo no tempo ao vivo.
Etapa 4: Controlador PID
Este é um tópico avançado. Implementar tal controlador é uma tarefa simples, encontrar as configurações corretas de amplitude é uma história diferente.
Para usar o controlador PID, você deve alterar initRelayHysteresisController (…..) para initRelayPiDController (….) E encontrar as configurações corretas para ele. Como de costume, você os encontrará em Config.h
Implementei um simulador simples em Java, para que seja possível visualizar os resultados. Ele pode ser encontrado na pasta: pidsimulator. Abaixo você pode ver as simulações para dois controladores PID a P. O PID não é perfeitamente estável porque não apliquei nenhum algoritmo sofisticado para encontrar os valores corretos.
Em ambos os gráficos, a temperatura necessária é definida para 30 (azul). A temperatura atual indica linha lida. O relé tem dois estados ON e OFF. Quando está habilitado, a temperatura cai 1,5, quando é desabilitado, aumenta 0,5.
Etapa 5: Bus de mensagens
Módulos de software diferentes precisam se comunicar uns com os outros, espero que não de ambas as maneiras;)
Por exemplo:
- o módulo de estatísticas deve saber quando um determinado relé liga e desliga,
- pressionar um botão tem que alterar o conteúdo da tela e também suspender serviços que consumiriam muitos ciclos da CPU, por exemplo, leitura de temperatura do sensor,
- depois de algum tempo, a leitura da temperatura deve ser renovada,
- e assim por diante….
Cada módulo está conectado ao Message Bus e pode se registrar para eventos específicos e pode produzir quaisquer eventos (primeiro diagrama).
No segundo diagrama, podemos ver o fluxo de eventos ao pressionar o botão.
Alguns componentes têm algumas tarefas que precisam ser executadas periodicamente. Poderíamos chamar seus métodos correspondentes do loop principal, uma vez que temos Message Bus, é necessário apenas propagar o evento correto (terceiro diagrama)
Etapa 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Recomendado:
Termostato de sala - Arduino + Ethernet: 3 etapas
Termostato de ambiente - Arduino + Ethernet: Em termos de hardware, o projeto utiliza: Arduino Uno / Mega 2560 blindagem Ethernet Wiznet W5100 / módulo Ethernet Wiznet W5200-W5500 DS18B20 sensor de temperatura no barramento OneWire Relé SRD-5VDC-SL-C usado para caldeira trocando
Controle remoto IR baseado em Arduino automático baseado em temperatura: 7 etapas
Controle remoto IR baseado em Arduino automático baseado em temperatura: Ei, e aí, pessoal! Akarsh aqui da CETech. Cansado de acordar no meio de um sono profundo só porque a temperatura ambiente está muito baixa ou muito alta por causa do seu AC mudo. Então este projeto é para você. Neste projeto, vamos fazer o nosso
Termômetro infravermelho sem contato baseado em Arduino - Termômetro baseado em IR usando Arduino: 4 etapas
Termômetro infravermelho sem contato baseado em Arduino | Termômetro baseado em IR usando Arduino: Olá pessoal, neste instructables faremos um termômetro sem contato usando arduino. Já que às vezes a temperatura do líquido / sólido é muito alta ou muito baixa e então é difícil fazer contato com ele e ler sua temperatura então naquele cenário
Termostato Arduino Kombucha: 3 etapas (com fotos)
Termostato Arduino Kombuchá: Sempre adorei o Kombuchá, mas na loja é muito caro. Por cerca de US $ 4 por 12 onças. não tinha como beber tanto quanto queria. Eu procurei fazer meu próprio kombuchá e percebi que não era tão difícil, e não exigia
Servo termostato / controlador Arduino HVAC: 5 etapas (com imagens)
Servo termostato / controlador Arduino HVAC: Bem-vindo ao meu instrutível 'verde'! Vou mostrar como usar um Arduino, dois servo motores, um sensor de temperatura e um pouco de metal (ou madeira) para fazer um termostato digital para uma unidade HVAC de parede. De acordo com CB Richard Ellis (um grande real