Skip to content

Control temperature system developed for the subject of Embedded System Fundamentals

Notifications You must be signed in to change notification settings

rogerioo/Embarcados_Projeto01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Controle de Temperatura

Objetivos

Este sistema consiste em um gerenciador de temperaturas de um ambiente controlado desenvolvido como requisito de aprovação da matéria de Fundamentos de Sistemas Embarcados (2021/1) sob orientação do professor Renato Coral. Este sistema consiste em dois dispositivos que atuam no controle da temperatura, sendo um resistor, que gera calor, e uma ventoinha, que auxilia no resfriamento,. Nesse sistema existe um sensor de temperatura que interno que mede a temperatura do ambiente controlado.

Para conseguir atingir esse escopo, outros sensores são atuantes no esquema como evidencia o esquema abaixo.

Esquema_Sistema.png

Outros épicos do sistema são a exibição dos dados do sistema com atualização em real-time pelo terminal e interação para mudança dos parametros manualmente a qualquer instante. Os dados também são exibidos em um display LCD 16x2.

Como executar

Dê o clone no repositório

    git clone https://github.com/rogerioo/Embarcados_Projeto01.git

Entre na pasta raiz do projeto

    cd Embarcados_Projeto01

Compile os executáveis do projeto

    make

Execute o projeto

    make run

Interface

terminal.png

Entradas e Saídas

As entradas do sistema consiste tantos nas informações fornecidas pelos sensores como pelas definidas pelo usuário via terminal, de forma que:

  • Temperatura interna: proveniente do sensor DS18B20 lido pelo barramento UART pela ESP32 ou fornecida pelo terminal pelo usuário;

  • Temperatura externa: proveniente do sensor BME280 lido pelo barramento I2C;

  • Temperatura de referência: proveniente do potenciomêtro lido pelo barramento UART pela ESP32 ou fornecida pelo terminal pelo usuário;

  • Modo de controle: proveniente do switch lido pelo barramento UART pela ESP32.

  • Parâmetros do PID (KP, KI, KD): usa o padrã 5 1 5 ou fornecida pelo terminal pelo usuário;

As saídas são dadas pelo retorno das informações do status do sistema, de forma que pode ser lida:

  • Pelo terminal, interfaceado pela biblioteca ncurses do C com atualizações em real-time;

  • Pelo arquivo de log, gerado para cada vez que o sistema é iniciado com a respectiva hora na pasta logs;

  • Pelo display lcd 16x2.

Módulos do Sistema

  • bme280 módulo que fornece os drivers e funções para a recuperação de dados de temperatura;
  • control módulo resposável pela recuperação de informaçãoes, geração do sinal de controle e controle do sistema;
  • crc módulo responsável pela geração dos bytes de paridade usados para verificação da consistência dos dados transmitidos;
  • csv módulo responsável pela geração do arquivo de log CSV;
  • display módulo responsável pela comunicação com o display lcd 16x2;
  • pid módulo responsável por gerar o sinal de controle pela estrágia do PID (Controlador Proporcional Integral Derivativo);
  • pwm módulo responsável pela comunicação com os dispositivos de controle (Ventoinha e Resistor) pela GPIO usando o método do PWM (Pulse Width Modulation);
  • screen módulo responsável pelo controle do terminal interativo;
  • uart módulo responsável pela comunicação com o barramento UART da ESP32.

Experimentos

Os gráficos abaixo evidenciam como o sistema opera dada cada estratégia de controle.

Controle ON/OFF

Usando como valor de histerese 3.

Controle_ON_OFF

Sinal_de_Controle_ON_OFF

Controle PID

Usando como valor do KP, Ki e KD 5 1 5, respectivamente.

Controle_PID

Sinal_de_Controle_PID

Referências

About

Control temperature system developed for the subject of Embedded System Fundamentals

Topics

Resources

Stars

Watchers

Forks