Skip to content

celsorv/cooler-display

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cooler Display Monitor

Um serviço em Python para Linux projetado para monitorar a temperatura da CPU ou o consumo de energia (via RAPL) e exibir essas informações em tempo real em um display de Air Cooler via USB.

🧪 Ambiente de Testes

O projeto foi validado e testado com sucesso no seguinte setup:

🚀 Funcionalidades

  • Monitoramento de Hardware: Coleta dados de temperatura via psutil ou consumo de energia via intel-rapl.
  • Conectividade USB: Gerenciamento automático de dispositivos USB, incluindo o desanexamento de drivers do kernel que podem bloquear a comunicação.
  • Resiliência: Reconexão automática em caso de desconexão do dispositivo.
  • Service-Ready: Projetado para rodar como um serviço em segundo plano (systemd), garantindo um desligamento gracioso (graceful shutdown) ao receber sinais do sistema.
  • Baixo impacto: Logging configurado apenas para erros, mantendo o sistema leve e limpo.

📋 Pré-requisitos

  • Python 3.x
  • Bibliotecas: pyusb, psutil
  • Acesso root (necessário para interagir com o dispositivo USB e/ou ler sensores de energia)

📦 Instalação

  1. Clone o repositório:

  2. Crie e ative um ambiente virtual:

    • python3 -m venv .venv
    • source .venv/bin/activate
  3. Instale as dependências:

    • pip install -r requirements.txt

⚙️ Configuração como Serviço (Systemd)

Para que o monitoramento inicie automaticamente com o sistema:

  1. Crie o arquivo de serviço:

    • sudo nano /etc/systemd/system/cooler-display.service
  2. Cole a configuração abaixo (ajuste os caminhos para o seu diretório):

    [Unit]
    Description=Cooler Display Monitor Service
    After=multi-user.target
    
    [Service]
    ExecStart=/opt/cooler-display/.venv/bin/python -u /opt/cooler-display/main.py
    WorkingDirectory=/opt/cooler-display
    Restart=always
    User=root
    
    [Install]
    WantedBy=multi-user.target
  3. Habilite e inicie o serviço:

    • sudo systemctl enable cooler-display.service
    • sudo systemctl start cooler-display.service

📝 Monitoramento e Logs

Como o serviço roda em segundo plano, você pode verificar o status e ver os logs (caso ocorra algum erro) com o seguinte comando:

  • sudo systemctl status cooler-display.service
  • journalctl -u cooler-display.service -f

⚠️ Notas de Compatibilidade

  • Processadores Intel:
    • O monitoramento de energia (RAPL) é suportado nativamente na maioria das arquiteturas Intel desde a microarquitetura Sandy Bridge.
  • Processadores AMD:
    • O driver intel-rapl não é compatível com processadores AMD. Usuários de sistemas AMD podem utilizar o monitoramento de temperatura normalmente, mas devem manter a configuração 'USE_WATTS = False'.

🏗️ Como funciona (Arquitetura)

O código utiliza uma abordagem de loop infinito com tratamento de sinais. Ele captura o sinal SIGTERM do sistema operacional e o converte em uma exceção KeyboardInterrupt, permitindo que o programa feche a porta USB corretamente antes de finalizar, evitando o travamento do hardware.

About

Linux hardware monitor: Captures data via psutil and intel-rapl, and manages the display of the Rise Mode Temp 6 Air Cooler via USB. Includes systemd service support and USB device handling.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages