Sensores internos

De Caninos Loucos
Ir para navegação Ir para pesquisar

A Labrador conta com diferentes sensores internos nos chips de processador e de gerenciamento de energia. Todos estes sensores podem ser acessados no diretório /sys/kernel/auxadc.

Sensores disponíveis

Os sensores disponíveis bem como suas unidades de medida são conforme abaixo:

  • ictemp - Temperatura do controlador de energia - 10-3 oC
  • batv - Tensão no conector de bateria - mV
  • bati - Corrente no conector de bateria - mA
  • vbusv - Tensão no bus USB 3 - mV
  • vbusi - Corrente no bus USB 3 - mA
  • syspwrv - Tensão interna do processador - mV
  • wallv - Tensão da fonte de entrada - mV
  • walli - Corrente da fonte de entrada - mA
  • chgi - Corrente de carregamento da bateria pela fonte - mA *

* O carregamento da bateria ainda não está implementado na última versão do sistema, não recomendamos conectar bateria e fonte simultaneamente.

Leitura

O valor dos arquivos de cada sensor serão atualizados quando for realizada uma leitura. A leitura terá o timestamp do momento da mediçãop e o valor obtido, inclusive com sinal para casos negativos. Por exemplo através do comando abaixo:

$ cat /sys/kernel/auxadc/ictemp
102345 53000 mCelsius

No caso, mostrando 53oC no gerenciador de energia.

$ cat /sys/kernel/auxadc/ictemp
102348 -15000 mCelsius

No caso, mostrando -15oC no gerenciador de energia.


Leitura em programas

Os arquivos podem ser acessados também dentro de outros programas, e atualizarão a cada leitura, é necessário que o arquivo seja aberto, lido e fechado para que os dados continuem atualizados. Um exemplo seria:

fd= fopen("/sys/kernel/auxadc/ictemp")
read(fd, buffer)
close(fd)

Outra opção é utilizar a função open do C para Linux, que utiliza um buffer intermediário e também atualiza os valores de leitura, sendo mais rápido do que abrir e fechar o arquivo em cada atualização.