Tabla de contenido:
- Paso 1: preparación de esquemas
- Paso 2: hacer un dibujo de PCB
- Paso 3: soldadura
- Paso 4: preparación de la prueba
- Paso 5: Prueba (la temperatura de la CPU es de nivel medio)
- Paso 6: Prueba (la CPU necesita nivel de enfriamiento)
- Paso 7: Suministro de energía al circuito INDICADOR
- Paso 8: cableado RPI
- Paso 9: Programa Python
- Paso 10: Operación del INDICADOR
- Paso 11: Fabricación alternativa (usando transistor NPN) y mayor desarrollo
Video: Indicador de temperatura de la CPU de Raspberry Pi: 11 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Anteriormente, había introducido un circuito indicador de estado operativo simple raspberry pi (en adelante, RPI).
Esta vez, explicaré un circuito indicador más útil para que el RPI se ejecute sin cabeza (sin monitor).
El circuito anterior muestra la temperatura de la CPU en 4 niveles diferentes, tales como:
- LED verde encendido cuando la temperatura de la CPU está dentro de 30 ~ 39 grados
- El LED amarillo indica que la temperatura aumenta en un rango de 40 a 45 grados
- El tercer LED rojo muestra que la CPU se calienta un poco al alcanzar los 46 ~ 49 grados
- Otro LED rojo parpadeará cuando la temperatura supere los 50 grados
Los rangos de temperatura de la CPU anteriores son mi concepto de diseño personal (se pueden configurar otros rangos de temperatura cambiando las condiciones de prueba del programa Python que controla este circuito).
Al usar este circuito, no necesariamente está ejecutando el comando “vcgencmd measure_temp” con frecuencia en el terminal de la consola.
Este circuito informará la temperatura actual de la CPU de manera continua y conveniente.
Paso 1: preparación de esquemas
Aunque puede controlar 4 LED directamente utilizando solo códigos de Python, la lógica de control del programa cargará el RPI y, como resultado, la temperatura de la CPU aumentará más porque debe ejecutar un código de Python un poco complejo de forma continua.
Por lo tanto, estoy minimizando la complejidad del código Python de la manera más simple posible y descargando la lógica de control de LED al circuito de hardware externo.
El circuito indicador de temperatura de la CPU (en adelante INICATOR) consta de las siguientes partes principales.
- Dos optoacopladores están conectados a los pines RPI GPIO para obtener datos de nivel de temperatura como 00-> BAJO, 01-> Medio, 10-> Alto, 11-> Necesita enfriamiento.
- 74LS139 (o 74HC139, decodificador y demultiplexor 2 a 4) salidas de control (Y0, Y1, Y2, Y3) según las entradas (A, B)
- Cuando la temperatura está dentro de los 30 ~ 39 grados, el código Python envía 00 a los pines GPIO. Por lo tanto, 74LS139 obtiene los datos de entrada 00 (A-> 0, B-> 0)
- Cuando se ingresa 00, la salida Y0 pasa a ser BAJA. (Consulte la tabla de verdad de 74LS139)
- Cuando la salida Y0 se vuelve BAJA, activa el transistor 2N3906 PNP y, como resultado, el LED verde se enciende
- Del mismo modo, Y1 (01 -> temperatura media de la CPU) encenderá el LED amarillo y así sucesivamente
- Cuando Y3 se vuelve BAJO, DB140 activa el circuito de parpadeo del LED NE555 (este es un parpadeo de LED común basado en IC 555) que es la carga del transistor BD140 PNP
El componente más importante de este circuito es 74LS139 que decodifica la entrada de 2 dígitos en 4 salidas individuales diferentes como se muestra en la tabla de verdad a continuación.
Entrada | Producción
G (Activar) | 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 |
A medida que la salida 74LS139 se vuelve BAJA, el transistor tipo PNP puede simplificar el circuito general ya que el transistor PNP se enciende cuando el terminal base se vuelve BAJO. (Mostraré la versión de NPN al final de esta historia)
Como el potenciómetro de 100K está incluido en el circuito de luz intermitente LED NE555, el tiempo de ENCENDIDO / APAGADO del LED rojo se puede ajustar libremente según las necesidades.
Paso 2: hacer un dibujo de PCB
Como se explica el esquema de funcionamiento del INDICADOR, comencemos a hacer el circuito.
Antes de soldar algo en una placa universal, es útil preparar el dibujo de la PCB que se muestra arriba para minimizar cualquier error.
El dibujo se realiza usando power-point para ubicar cada parte en la placa universal y hacer patrones de cableado entre las partes con cables.
Como las imágenes de los pines de IC y transistores están ubicadas junto con el patrón de cableado de la PCB, la soldadura se puede realizar usando este dibujo.
Paso 3: soldadura
Aunque el dibujo original de la placa de circuito impreso no está hecho con cables individuales para conectar componentes en la placa de circuito impreso, estoy soldando de manera algo diferente.
Al usar un solo conductor de cables (no alambre de estaño), estoy tratando de reducir el tamaño de PCB universal que contiene el circuito INDICADOR.
Pero como puede ver en el lado de soldadura de la PCB, estoy usando alambre de estaño también de acuerdo con los patrones representados en el dibujo de la PCB.
Cuando cada componente está conectado de acuerdo con el diseño original del dibujo de PCB, la placa PCB completada con soldadura, incluido el circuito INDICADOR, funcionará correctamente.
Paso 4: preparación de la prueba
Antes de la conexión RPI, el circuito terminado requiere prueba.
Como pueden existir errores de soldadura, el proveedor de energía de CC se utiliza para prevenir daños cuando se producen cortocircuitos o cableado incorrecto.
Para probar el INDICADOR, se conectan dos cables de alimentación adicionales al conector de alimentación de 5 V del circuito.
Paso 5: Prueba (la temperatura de la CPU es de nivel medio)
Cuando no se aplica una entrada de 5 V, entonces 74LS139 decodifica la entrada y activa la salida Y0 como BAJA (LED verde encendido).
Pero 5V aplicados a la entrada A, salida Y1 de 74LS139 activando (BAJA).
Por lo tanto, el LED amarillo se enciende como se muestra en la imagen de arriba.
Paso 6: Prueba (la CPU necesita nivel de enfriamiento)
Cuando 5V aplicaron ambas entradas (A y B) del 74LS139, el cuarto LED rojo parpadeará.
La velocidad de parpadeo se puede cambiar ajustando 100K VR como se muestra en la imagen de arriba.
Una vez finalizada la prueba, se pueden quitar dos cables hembra Molex de 3 clavijas.
Paso 7: Suministro de energía al circuito INDICADOR
Para alimentar el circuito INDICADOR, estoy usando un cargador de teléfono de mano común que emite 5 V y un adaptador USB tipo B como se muestra en la imagen de arriba.
Para evitar problemas con el RPI al conectar un GPIO de 3,3 V y un circuito INDICADOR con alimentación de 5 V, la interfaz de señal y la fuente de alimentación están totalmente aisladas entre sí.
Paso 8: cableado RPI
Para interconectar el circuito INDICADOR con RPI, se deben dedicar dos pines GPIO junto con dos pines de tierra.
No hay ningún requisito específico para elegir pines GPIO.
Puede utilizar cualquier pines GPIO para conectar el INDICADOR.
Pero los pines cableados deben designarse como entradas a 74LS139 (por ejemplo, A, B) en el programa Python.
Paso 9: Programa Python
A medida que se completa el circuito, se requiere hacer un programa de Python para usar la función INDICADOR.
Consulte el diagrama de flujo anterior para obtener más detalles sobre la lógica del programa.
# - * - codificación: utf-8 - * -
importar subproceso, señal, sys
importar tiempo, re
importar RPi. GPIO como g
A = 12
B = 16
g.setmode (g. BCM)
g.configuración (A, g. OUT)
g.configuración (B, g. OUT)
##
def manejador_de_señal (sig, marco):
print ('¡Presionaste Ctrl + C!')
g. salida (A, falso)
g. salida (B, falso)
f.close ()
sys.exit (0)
signal.signal (signal. SIGINT, signal_handler)
##
mientras que es cierto:
f = open ('/ home / pi / Mi_proyecto / CPU_temperature_log.txt', 'a +')
temp_str = subprocess.check_output ('/ opt / vc / bin / vcgencmd measure_temp', shell = True)
temp_str = temp_str.decode (codificación = 'UTF-8', errores = 'estricto')
CPU_temp = re.findall ("\ d + \. / D +", temp_str)
# extrayendo la temperatura actual de la CPU
current_temp = float (CPU_temp [0])
si current_temp> 30 y current_temp <40:
# temperatura baja A = 0, B = 0
g. salida (A, falso)
g. salida (B, falso)
hora de dormir (5)
elif current_temp> = 40 y current_temp <45:
# temperatura del medio A = 0, B = 1
g. salida (A, falso)
g. salida (B, verdadero)
hora de dormir (5)
elif current_temp> = 45 y current_temp <50:
# temperatura alta A = 1, B = 0
g. salida (A, verdadero)
g. salida (B, falso)
hora de dormir (5)
elif current_temp> = 50:
# Se requiere enfriamiento de CPU alto A = 1, B = 1
g. salida (A, verdadero)
g. salida (B, verdadero)
hora de dormir (5)
tiempo_actual = tiempo.tiempo ()
formated_time = time.strftime ("% H:% M:% S", time.gmtime (current_time))
f.write (str (formated_time) + '\ t' + str (current_temp) + '\ n')
f.close ()
La función principal del programa Python es la siguiente.
- Primero configurando GPIO 12, 16 como puerto de salida
- Definición del controlador de interrupciones Ctrl + C para cerrar el archivo de registro y apagar GPIO 12, 16
- Cuando ingrese al bucle infinito, abra el archivo de registro como modo de anexión
- Lea la temperatura de la CPU ejecutando el comando "/ opt / vc / bin / vcgencmd measure_temp"
- Cuando la temperatura está en el rango de 30 ~ 39, entonces la salida 00 para encender el LED verde
- Cuando la temperatura está en el rango de 40 ~ 44, entonces la salida 01 para encender el LED amarillo
- Cuando la temperatura está en el rango de 45 ~ 49, entonces la salida 10 para encender el LED rojo
- Cuando la temperatura es superior a 50, la salida 11 para que el LED rojo parpadee
- Escriba la marca de tiempo y los datos de temperatura en el archivo de registro
Paso 10: Operación del INDICADOR
Cuando todo está bien, puede ver que cada LED se enciende o parpadea según la temperatura de la CPU.
No es necesario que ingrese el comando de shell para verificar la temperatura actual.
Después de recopilar datos en el archivo de registro y convertir los datos de texto en un gráfico utilizando Excel, el resultado se muestra en la imagen de arriba.
Cuando se aplican cargas elevadas (ejecutando dos navegadores Midori y reproduciendo videos de Youtube), la temperatura de la CPU aumenta hasta 57.9C.
Paso 11: Fabricación alternativa (usando transistor NPN) y mayor desarrollo
Este es un ejemplo de proyecto INDICATOR anterior que utiliza transistores NPN (2N3904 y BD139).
Como puede ver, es necesario un IC más (74HC04, inversores cuádruples) para impulsar el transistor NPN, ya que se debe aplicar un voltaje de nivel ALTO a la base de NPN para encender el transistor.
Como resumen, el uso del transistor NPN agrega una complejidad innecesaria para hacer el circuito INDICADOR.
Para un mayor desarrollo de este proyecto, agregaré un ventilador de enfriamiento como se muestra en la imagen de arriba para hacer que el circuito INDICATOR sea más útil.
Recomendado:
Caja de ventilador de refrigeración Raspberry Pi con indicador de temperatura de CPU: 10 pasos (con imágenes)
Caja de ventilador de refrigeración Raspberry Pi con indicador de temperatura de CPU: introduje el circuito indicador de temperatura de CPU de Raspberry Pi (en adelante, RPI) en el proyecto anterior. La temperatura de la CPU está dentro de 30 ~
The OreServer: un servidor de Minecraft dedicado para Raspberry Pi con indicador de reproductor LED: 9 pasos (con imágenes)
The OreServer: un servidor de Minecraft dedicado de Raspberry Pi con indicador de reproductor LED: ACTUALIZACIÓN de julio de 2020: antes de comenzar con este proyecto, tenga en cuenta que se han realizado MUCHOS cambios y actualizaciones en las diversas herramientas de software que utilicé para crear esto en dos hace años que. Como resultado, muchos de los pasos ya no funcionan como están escritos
Indicador de temperatura y humedad de Arduino: 7 pasos (con imágenes)
Indicador de temperatura y humedad de Arduino: esta instrucción mostrará cómo hacer una caja que pueda indicar temperatura y humedad con Arduino Puede poner esta caja en la mesa para medir la temperatura y la humedad en su habitación Por alta calidad de la caja de MDF por corte láser, todo es compactado f
Termómetro de cocina con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura: 7 pasos (con imágenes)
Termómetro de cocción con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura: Aún en camino para completar un " proyecto próximo ", " Termómetro de cocina con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura " es un Instructable que muestra cómo agrego una sonda de temperatura NTP, piezo b
Indicador de temperatura RGB (con XinaBox): 5 pasos (con imágenes)
Indicador de temperatura RGB (con XinaBox): Este es oficialmente mi primer artículo de Instructables, así que voy a admitir que estoy aprovechando esta oportunidad ahora mismo para probarlo. Obtenga una idea de cómo funciona la plataforma, todo el lado de la experiencia del usuario. Pero mientras hago eso, pensé que podía