Índice:

Indicador de temperatura da CPU Raspberry Pi: 11 etapas (com imagens)
Indicador de temperatura da CPU Raspberry Pi: 11 etapas (com imagens)

Vídeo: Indicador de temperatura da CPU Raspberry Pi: 11 etapas (com imagens)

Vídeo: Indicador de temperatura da CPU Raspberry Pi: 11 etapas (com imagens)
Vídeo: MUITA PASTA TÉRMICA!! O que acontece se usar muito?? 😲😲😲 2024, Novembro
Anonim
Indicador de temperatura da CPU Raspberry Pi
Indicador de temperatura da CPU Raspberry Pi

Anteriormente, eu tinha introduzido o circuito indicador de status operacional simples do raspberry pi (doravante denominado RPI).

Desta vez, explicarei um circuito indicador mais útil para RPI funcionando de maneira sem cabeça (sem monitor).

O circuito acima mostra a temperatura da CPU em 4 níveis diferentes, como:

- LED verde aceso quando a temperatura da CPU está entre 30 ~ 39 graus

- LED amarelo indica que a temperatura aumentou em uma faixa de 40 a 45 graus

- O 3º LED vermelho mostra que a CPU ficou um pouco quente ao atingir 46 ~ 49 graus

- Outro LED vermelho piscará quando a temperatura ultrapassar mais de 50 graus

As faixas de temperatura da CPU acima são meu conceito de design pessoal (outras faixas de temperatura podem ser configuradas alterando as condições de teste do programa python que controla este circuito).

Ao usar este circuito, você não está necessariamente executando o comando “vcgencmd measure_temp” com freqüência no terminal do console.

Este circuito deve informar a temperatura atual da CPU de forma contínua e conveniente.

Etapa 1: Preparando Esquemas

Preparando esquemas
Preparando esquemas

Embora você possa controlar 4 LEDs diretamente utilizando apenas códigos Python, a lógica de controle do programa carregará o RPI e, como resultado, a temperatura da CPU aumentará mais porque você deve executar um código Python um pouco complexo continuamente.

Portanto, estou minimizando a complexidade do código Python da forma mais simples possível e descarregando a lógica de controle do LED para o circuito de hardware externo.

O circuito indicador de temperatura da CPU (doravante INICATOR) consiste nas seguintes partes principais.

- Dois optoacopladores são conectados aos pinos RPI GPIO para obter dados de nível de temperatura, como 00-> BAIXO, 01-> Médio, 10-> Alto, 11-> Precisa de resfriamento.

- 74LS139 (ou 74HC139, decodificador 2 para 4 e desmultiplexador) saídas de controle (Y0, Y1, Y2, Y3) de acordo com as entradas (A, B)

- Quando a temperatura está entre 30 ~ 39 graus, o código python gera 00 para os pinos GPIO. Portanto, 74LS139 obtém os dados de entrada 00 (A-> 0, B-> 0)

- Quando 00 é inserido, a saída Y0 torna-se BAIXA. (Consulte a tabela de verdade de 74LS139)

- Quando a saída Y0 torna-se BAIXA, ele ativa o transistor 2N3906 PNP e, como resultado, o LED verde é ligado

- Da mesma forma, Y1 (01 -> temperatura média da CPU) deve acender o LED amarelo e assim por diante

- Quando Y3 torna-se BAIXO, DB140 ativando o circuito piscando do LED NE555 (este é um piscar de LED baseado em 555 IC comum) que é a carga do transistor BD140 PNP

O componente mais importante deste circuito é o 74LS139, que decodifica a entrada de 2 dígitos em 4 saídas únicas diferentes, conforme mostrado na tabela verdade abaixo.

Input | Saída

G (ativar) | B | A | Y0 | Y1 | Y2 | Y3 |

H | X | X | H | H | H | H |

L | L | L | L | H | H | H |

L | L | H | H | L | H | H |

L | H | L | H | H | L | H |

L | H | H | H | H | H | L |

Como a saída 74LS139 torna-se BAIXA, o transistor do tipo PNP pode tornar o circuito geral simples, pois o transistor PNP é ligado quando o terminal de base fica BAIXO. (Vou mostrar a versão NPN no final desta história)

Como o potenciômetro 100K está incluído no circuito do pisca-pisca NE555, o tempo de LIGAR / DESLIGAR do LED vermelho pode ser ajustado livremente de acordo com as necessidades.

Etapa 2: Fazendo o desenho do PCB

Fazendo desenho de PCB
Fazendo desenho de PCB

Conforme o esquema operacional do INDICADOR é explicado, vamos começar a fazer o circuito.

Antes de soldar algo na placa universal, preparar o desenho da PCB mostrado acima é útil para minimizar quaisquer erros.

O desenho é feito usando power-point para localizar cada peça na placa universal e fazer padrões de fiação entre as peças com fios.

Como as imagens de pinagem do IC e do transistor são co-localizadas junto com o padrão de fiação do PCB, a soldagem pode ser realizada usando este desenho.

Etapa 3: Solda

De solda
De solda

Embora o desenho original do PCB não seja feito usando fios únicos para conectar os componentes do PCB, estou soldando de forma um pouco diferente.

Usando um único condutor de fios (não fio de estanho), estou tentando reduzir o tamanho do PCB universal que contém o circuito INDICADOR.

Mas, como você pode ver no lado da solda do PCB, estou usando fio de estanho também de acordo com os padrões descritos no desenho do PCB.

Quando cada componente é conectado de acordo com o design original do desenho da PCB, a soldagem da placa PCB completa incluindo o circuito INDICADOR irá operar corretamente.

Etapa 4: Preparação para o teste

Preparação de teste
Preparação de teste

Antes da conexão RPI, o circuito concluído requer testes.

Como podem existir erros de soldagem, o fornecedor de energia CC é usado para prevenir danos quando curtos ou fiação incorreta ocorrem.

Para testar o INDICADOR, dois cabos de fonte de alimentação adicionais são conectados ao conector de fonte de alimentação de 5 V do circuito.

Etapa 5: teste (a temperatura da CPU é de nível médio)

Teste (a temperatura da CPU é de nível médio)
Teste (a temperatura da CPU é de nível médio)

Quando nenhuma entrada de 5 V é aplicada, o 74LS139 decodifica a entrada e ativa a saída Y0 como BAIXA (LED verde aceso).

Mas 5 V aplicado à entrada A, saída Y1 de 74LS139 ativando (LOW).

Portanto, o LED amarelo está aceso conforme mostrado na imagem acima.

Etapa 6: teste (nível de resfriamento necessário da CPU)

Teste (CPU Need Cooling Level)
Teste (CPU Need Cooling Level)

Quando 5 V aplicado a ambas as entradas (A e B) de 74LS139, o 4o LED vermelho está piscando.

A taxa de intermitência pode ser alterada ajustando 100K VR conforme mostrado na imagem acima.

Quando o teste for concluído, dois cabos fêmea Molex de 3 pinos podem ser removidos.

Etapa 7: Fonte de alimentação para o circuito INDICADOR

Fonte de alimentação para o circuito INDICADOR
Fonte de alimentação para o circuito INDICADOR

Para alimentar o circuito INDICADOR, estou usando um carregador de celular comum com saída de 5 V e adaptador USB tipo B, conforme mostrado na imagem acima.

Para evitar problemas com RPI conectando o circuito de 3,3 V GPIO e 5 V alimentado pelo INDICADOR, a interface de sinal e a fonte de alimentação são totalmente isoladas.

Etapa 8: Fiação RPI

Fiação RPI
Fiação RPI

Para fazer a interface do circuito INDICADOR com RPI, dois pinos GPIO devem ser dedicados junto com dois pinos de aterramento.

Não há nenhum requisito específico para a escolha dos pinos GPIO.

Você pode usar qualquer pino GPIO para conectar o INDICADOR.

Mas os pinos com fio devem ser designados como entradas para 74LS139 (por exemplo, A, B) no programa python.

Etapa 9: Programa Python

Programa Python
Programa Python

Quando o circuito é concluído, é necessário fazer o programa python para usar a função INDICADOR.

Consulte o fluxograma acima para obter mais detalhes sobre a lógica do programa.

# - * - codificação: utf-8 - * -

importar subprocesso, sinal, sys

tempo de importação, re

importar RPi. GPIO como g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

print ('Você pressionou Ctrl + C!')

g.output (A, False)

g.output (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

enquanto verdadeiro:

f = open ('/ home / pi / My_project / CPU_temperature_log.txt', 'a +')

temp_str = subprocess.check_output ('/ opt / vc / bin / vcgencmd measure_temp', shell = True)

temp_str = temp_str.decode (codificação = 'UTF-8', erros = 'estrito')

CPU_temp = re.findall ("\ d + \. / D +", temp_str)

# extraindo a temperatura atual da CPU

current_temp = float (CPU_temp [0])

se current_temp> 30 e current_temp <40:

# temperatura baixa A = 0, B = 0

g.output (A, False)

g.output (B, False)

tempo.sono (5)

elif current_temp> = 40 e current_temp <45:

# temperatura média A = 0, B = 1

g.output (A, False)

g.output (B, True)

tempo.sono (5)

elif current_temp> = 45 e current_temp <50:

# temperatura alta A = 1, B = 0

g.output (A, True)

g.output (B, False)

tempo.sono (5)

elif current_temp> = 50:

# O resfriamento da CPU é necessário alto A = 1, B = 1

g.output (A, True)

g.output (B, True)

tempo.sono (5)

current_time = time.time ()

formated_time = time.strftime ("% H:% M:% S", time.gmtime (current_time))

f.write (str (formated_time) + '\ t' + str (current_temp) + '\ n')

f.close ()

A principal função do programa python é a seguinte.

- Em primeiro lugar, definindo GPIO 12, 16 como porta de saída

- Definir manipulador de interrupção Ctrl + C para fechar o arquivo de log e desligar o GPIO 12, 16

- Quando entrar no loop infinito, abra o arquivo de log como modo de anexo

- Leia a temperatura da CPU executando o comando “/ opt / vc / bin / vcgencmd measure_temp”

- Quando a temperatura está na faixa de 30 ~ 39, então a saída 00 para ligar o LED verde

- Quando a temperatura está na faixa de 40 ~ 44, a saída 01 para ligar o LED amarelo

- Quando a temperatura está na faixa de 45 ~ 49, a saída 10 para ligar o LED vermelho

- Quando a temperatura é superior a 50, a saída 11 para fazer o LED vermelho piscar

- Grave o carimbo de data / hora e dados de temperatura no arquivo de registro

Etapa 10: Operação do INDICADOR

Operação do INDICADOR
Operação do INDICADOR

Quando tudo estiver OK, você pode ver que cada LED está aceso ou piscando de acordo com a temperatura da CPU.

Você não precisa inserir o comando shell para verificar a temperatura atual.

Depois de coletar os dados no arquivo de log e renderizar os dados de texto em um gráfico usando o Excel, o resultado é mostrado na imagem acima.

Ao aplicar cargas elevadas (executando dois navegadores Midori e reproduzindo vídeo do Youtube), a temperatura da CPU atinge um pico de até 57,9 ° C.

Etapa 11: Produção Alternativa (Usando Transistor NPN) e Desenvolvimento Adicional

Fabricação Alternativa (Usando Transistor NPN) e Desenvolvimento Adicional
Fabricação Alternativa (Usando Transistor NPN) e Desenvolvimento Adicional

Este é o exemplo anterior do projeto INDICATOR utilizando transistores NPN (2N3904 e BD139).

Como você pode ver, mais um IC (74HC04, inversores Quad) é necessário para acionar o transistor NPN, pois a tensão de nível ALTO deve ser aplicada à base do NPN para ligar o transistor.

Como um resumo, o uso do transistor NPN adiciona complexidade desnecessária para fazer o circuito INDICADOR.

Para o desenvolvimento deste projeto, adicionarei ventoinha de resfriamento conforme mostrado na imagem acima para tornar o circuito INDICADOR mais útil.

Recomendado: