Esta aplicação é responsável por:
- Apresentar imagens e informações no display
- Piscar os LEDs
- Tratar o pressionamento do botão
Primeira Versão
A primeira versão que eu fiz da aplicação foi em python (veja no github). O acesso aos LEDs e ao botão foi feito com a biblioteca gpiozero. O acesso ao display foi feito usando a biblioteca da Adafruit em conjunto com o Pillow. A biblioteca psutil fornece as informações de IP, memória, disco e CPU.
O código em python é bem compacto e funcionou corretamente. Porém o desempenho deixou um pouco a desejar, o intervalo entre as atualizações do display era maior do que eu desejava.
Segunda Versão
Hora de apelar para o C. O programa ficou mais extenso e foi quebrado em vários módulos (os links são para os fontes no github):
Execução como Service
Esta aplicação deve ser disparada quando o Raspbian inicia e fica em rodando "eternamente". Até não muito tempo atrás isto seria feito convertendo a aplicação para ser um daemon (o que tem vários requisitos). O Raspbian atual utilizam o systemd para a implementação de services; basta seguir uns poucos requisitos e criar um arquivo de configuração.
A primeira versão que eu fiz da aplicação foi em python (veja no github). O acesso aos LEDs e ao botão foi feito com a biblioteca gpiozero. O acesso ao display foi feito usando a biblioteca da Adafruit em conjunto com o Pillow. A biblioteca psutil fornece as informações de IP, memória, disco e CPU.
O código em python é bem compacto e funcionou corretamente. Porém o desempenho deixou um pouco a desejar, o intervalo entre as atualizações do display era maior do que eu desejava.
Segunda Versão
Hora de apelar para o C. O programa ficou mais extenso e foi quebrado em vários módulos (os links são para os fontes no github):
- leds.c: Controla os LEDs, usando a biblioteca pigpio
- display.c: Controla o display, usando as rotinas de i2c do pigpio
- util.c: Obtém as informações de IP, memória, disco e CPU.
- painelc.c: Programa principal
Execução como Service
Esta aplicação deve ser disparada quando o Raspbian inicia e fica em rodando "eternamente". Até não muito tempo atrás isto seria feito convertendo a aplicação para ser um daemon (o que tem vários requisitos). O Raspbian atual utilizam o systemd para a implementação de services; basta seguir uns poucos requisitos e criar um arquivo de configuração.
Nenhum comentário:
Postar um comentário