Monitor de Hardware com Arduino

Olá caro leitor, sempre gostei de painéis de monitoramento é algo belo de se ver para um nerd como eu, e a ideia de monitorar meu hardware via algum tipo de painel é extremamente sedutora, além do que meu kit de Arduino guardado em uma gaveta sem estar sendo utilizado em nada estava me incomodando, com essas motivações tive esta ideia.

 

Monitor de Hardware com Arduino

 

Eu utilizo o conky como monitor de hardware, este é extremamente flexível, fiz um build dele desabilitando o outuput no X deixando e sobrescrevendo a saída para console, este por sua vez permite escrever a saída do console diretamente para um arquivo o que possibilitou escrever a saída na porta serial (/dev/ttyACM0) usada  para comunicação com o Arduíno, abaixo segue a ligação feita no Arduíno

 

Ligação com o Arduino

 

Ligacao-LCD-HD44780-Backlight-Azul_bb

Código fonte do programa para rodar no Arduíno


//Carrega a biblioteca LiquidCrystal
#include <LiquidCrystal.h>

//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
}

void loop() {
  char caractere;
  String linha1 = "";
  String linha2 = "";
  byte linha = 1;

  if (Serial.available()) {
    while(Serial.available() > 0) {

      caractere = Serial.read();

      if (caractere != '\n'){
        if (linha == 1)
          linha1.concat(caractere);
        if (linha == 2)
          linha2.concat(caractere);
      }
      else
      {
        if (linha == 1)
          linha = 2;
      }
      delay(10);
    }

    // clear the screen
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(linha1);
    lcd.setCursor(0, 1);
    lcd.print(linha2);
    delay(2000);
  }
}

Arquivo de configuração do conky (.conky_no_x)

 

out_to_x no
cpu_avg_samples 2
net_avg_samples 2
no_buffers yes
out_to_console no
#out_to_stdeerr no
extra_newline no
update_interval 3.0
#uppercase yes
#user_space none
overwrite_file /dev/ttyACM0

TEXT
CPU $cpu% MEM $memperc%
D ${downspeedf eth0}k U ${upspeedf eth0}k

 

para rodar é necessário o comando

conky -c .conky_no_x</pre>

Para finalizar devo acoplar esse aparato dentro do gabinete, este já vai exigir habilidades artesanais as quais não possuo.

 

Posted in Uncategorized Tagged with:

Leave a Reply