Índice:
- Etapa 1: Preparando Esquemas
- Etapa 2: Fazendo o desenho do PCB
- Etapa 3: Solda
- Etapa 4: Preparação para o teste
- Etapa 5: teste (a temperatura da CPU é de nível médio)
- Etapa 6: teste (nível de resfriamento necessário da CPU)
- Etapa 7: Fonte de alimentação para o circuito INDICADOR
- Etapa 8: Fiação RPI
- Etapa 9: Programa Python
- Etapa 10: Operação do INDICADOR
- Etapa 11: Produção Alternativa (Usando Transistor NPN) e Desenvolvimento Adicional
Vídeo: Indicador de temperatura da CPU Raspberry Pi: 11 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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
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
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
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
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)
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)
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
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
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
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
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
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:
Indicador de carga da CPU Raspberry Pi: 13 etapas
Indicador de carga de CPU do Raspberry Pi: ao executar o Raspberry Pi (RPI) como sem cabeça, sem monitor de console, nenhuma indicação visual específica está disponível para reconhecer que o RPI está realmente fazendo algo. Mesmo que o terminal remoto seja usado com SSH, a execução do comando Linux em tempo a tempo
Raspberry Pi Box de Cooling FAN com indicador de temperatura da CPU: 10 etapas (com imagens)
Raspberry Pi Box do Ventilador de resfriamento com indicador de temperatura da CPU: Eu introduzi o circuito indicador de temperatura da CPU raspberry pi (doravante como RPI) no projeto anterior. O circuito está simplesmente mostrando RPI 4 níveis diferentes de temperatura da CPU como segue.- LED verde aceso quando A temperatura da CPU está dentro de 30 ~
Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: 4 etapas (com imagens)
Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: Muitos gabinetes do Raspberry Pi vêm com uma pequena ventoinha de 5 V para ajudar a resfriar a CPU. No entanto, essas ventoinhas geralmente são muito barulhentas e muitas pessoas as conectam no pino 3V3 para reduzir o ruído. Esses ventiladores são normalmente classificados para 200mA, o que é bastante h
Indicador de temperatura e umidade do Arduino: 7 etapas (com imagens)
Indicador de temperatura e umidade do Arduino: Esta instrução mostrará como fazer uma caixa que pode indicar temperatura e umidade com o Arduino. Você pode colocar esta caixa na mesa para medir temperatura e umidade em sua sala. Com a caixa de MDF de alta qualidade por corte a laser, tudo é compactado f
Indicador de temperatura RGB (com XinaBox): 5 etapas (com imagens)
RGB Temperature Indicator (with XinaBox): Este é oficialmente meu primeiro artigo Instructables, então vou admitir que estou usando esta oportunidade agora para experimentá-lo. Tenha uma ideia de como a plataforma funciona, todo o lado da experiência do usuário. Mas enquanto estou fazendo isso, descobri que posso