Informações da CPU da Raspberry Pi Zero W com display OLED - MakerHero

Informações da CPU da Raspberry Pi Zero W com display OLED 7

Aos que acompanham os últimos lançamentos das placas de desenvolvimento de sistemas embarcados, sobretudo às da linha Raspberry Pi, uma coisa ficou clara: a Raspberry Pi Zero W é uma das placas da linha mais impressionantes, dada seu reduzido tamanho físico, conectividade, versatilidade de aplicação e preço baixo (em relação a outras placa da mesma linha). São praticamente infinitas as aplicações com ela. Desde uso como computador pessoal simples, central de jogos até projetos robustos com Linux embarcado e IoT. E neste post, vamos explicar como mostrar as informações da CPU da Raspberry Pi Zero W com display OLED 0.96″.

Informações de CPU da Raspberry Pi Zero W

E o que será mostrado? Com tanto uso, é importante monitorar informações de sua placa em tempo real, incluindo àquelas que mostram a “saúde” da mesma, tais como temperatura da CPU, frequência da CPU e uso percentual.

Material necessário

Para fazer este projeto, você precisará de:

 

Preparação: habilitar uso do I²C na Raspberry Pi Zero W

A primeira coisa a ser feita é habilitar o uso do I²C na Raspberry Pi Zero W. Para fazer isso, siga o procedimento abaixo:

  1. Em algum terminal Linux da Raspberry (seja por acesso SSH ou local), execute o seguinte comando:
  2. Na tela que aparecer, vá até Advanced Options (utilize as setas para cima e para baixo para navegar nas opções e a tecla Enter para selecionar a opção desejada).
  3. Em Advanced Options, selecione a opção I2C.
  4. Selecione a opção Enable.
  5. O I²C está habilitado. Para voltar ao terminal  / sair da configuração, selecione a opção Finish.

Preparação: baixar bibliotecas para o display OLED

Para baixar as bibliotecas necessárias para utilizar o display OLED na Raspberry Pi, execute (na ordem informada) os comandos abaixo no terminal. É necessário aqui que sua Raspberry Pi Zero W tenha acesso à Internet.

Preparação: baixar fonte TTF para display

No projeto, irá ser utilizada para exibição de informações no display uma fonte TTF que simula um display de 7 segmentos. O resultado final fica bem bacana! Para isso, faça o seguinte procedimento:

  1. Acessando a Raspberry PI Zero W (com interface gráfica, ou seja, utilizando-a como um computador), baixe o arquivo compactado da fonte clicando aqui.
  2. Descompacte o arquivo em qualquer pasta da sua Raspberry PI Zero W.
  3. Na pasta em que ficará o projeto, coloque somente o arquivo .TTF (advanced_pixel_lcd-7.ttf)

Se quiser outras fontes, esse site tem um monte delas. É só escolher, baixar e usar!

Preparação: biblioteca PSUTIL

A biblioteca PSUTIL é uma biblioteca Python capaz de obter informações do computador ao qual está rodando (no nosso caso, na Raspberry PI).  As informações possíveis de serem obtidas são diversas:  uso de CPU, uso de disco, memória RAM utilizada e livre, usuários logados e muito mais. Para mais informações sobre ela, visite este site.

Para instala-la na Raspberry PI Zero W, utilize o comando abaixo:

Circuito esquemático Raspberry Pi Zero W com display Oled

Veja abaixo o circuito esquemático do projeto.

Circuito Raspberry Pi Zero W com display OLED
Figura 1 – circuito esquemático do projeto

Código-fonte

Abaixo está o código-fonte do projeto que mostra as informações da CPU da Raspberry Pi Zero W com display OLED:

Salve este código-fonte como InfoDispOLED.py e rode-o com o seguinte comando:

Projeto em ação!

Abaixo você confere o projeto do monitor de informações da Raspberry Pi Zero W com display OLED em ação.

Gostou deste post sobre Raspberry Pi Zero W com display OLED? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

7 Comments

  1. Pedro, tudo bem? Não estou conseguindo rodar :/

    Fiz todos os passos certinho, porém recebo sempre o mesmo erro:

    Traceback (most recent call last):
    File “display.py”, line 83, in
    disp.begin()
    File “/usr/local/lib/python2.7/dist-packages/Adafruit_SSD1306/SSD1306.py”, line 148, in begin
    self._initialize()
    File “/usr/local/lib/python2.7/dist-packages/Adafruit_SSD1306/SSD1306.py”, line 247, in _initialize
    self.command(SSD1306_DISPLAYOFF) # 0xAE
    File “/usr/local/lib/python2.7/dist-packages/Adafruit_SSD1306/SSD1306.py”, line 129, in command
    self._i2c.write8(control, c)
    File “/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/I2C.py”, line 114, in write8
    self._bus.write_byte_data(self._address, register, value)
    File “/usr/local/lib/python2.7/dist-packages/Adafruit_PureIO/smbus.py”, line 256, in write_byte_data
    self._device.write(data)
    IOError: [Errno 121] Remote I/O error

    1. Aparentemente, uma das duas coisas aconteceu:

      – algo deu errado com a instalação da biblioteca python-smbus
      – você esqueceu de habilitar a I²C no raspi-config

      Verifique se você habilitou a I²C, reinstale a biblioteca python-smbus e tente novamente. Fique atento se alguma mensagem de erro aparece ao instalar a biblioteca python-smbus.

  2. Bom trabalho Pedro.
    Estou procurando alguém para desenvolver um projeto com a raspberry zero e, de um terminal tela touché, para ser usado em rede Modbus com PLC mestre.
    Preciso que tenha 10 I/OS.
    POIS tenho sensores e controle de motor. Vc.
    Você topa um desafio.

    1. Angelo, obrigado pelo elogio.

      Agradeço o convite mas, infelizmente, eu não tenho disponibilidade no momento para trabalhar como free-lancer.

      Atenciosamente,
      Pedro Bertoleti

  3. Olá, tenho um projeto em que preciso monitorar os 4 núcleos do raspberry . Você pode me indicar um projeto?
    Obrigado.

  4. Olá, gostaria de saber se fica muito complicado mostrar outras informações, como o status da conexão via Eth0 e Eth1 (no meu caso, possuo uma placa de rede na USB)

    1. Edmilson, boa tarde.

      Infelizmente esse tipo de informação nunca precisei ler, portanto não sei te responder como obtê-las.

      Atenciosamente,
      Pedro Bertoleti