Tabla de contenido:

Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak: 7 pasos
Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak: 7 pasos

Video: Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak: 7 pasos

Video: Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak: 7 pasos
Video: 11) Raspberry PI 4 y Python3 desde Cero - Reproducción MP3 y Control de Temperatura 2024, Mes de julio
Anonim
Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak
Control inteligente del ventilador de Raspberry Pi con Python y Thingspeak

Breve descripción

Por defecto, el ventilador está conectado directamente al GPIO, lo que implica su funcionamiento constante. A pesar del funcionamiento relativamente silencioso del ventilador, su funcionamiento continuo no es un uso eficaz de un sistema de refrigeración activo. Al mismo tiempo, el funcionamiento constante de un ventilador puede resultar molesto. Además, si Raspberry Pi está apagado, el ventilador seguirá funcionando si la alimentación está conectada.

Este artículo mostrará cómo, mediante manipulaciones simples y no complicadas, convertir un sistema de enfriamiento existente en uno inteligente, que solo se encenderá cuando el procesador realmente lo necesite. El ventilador se enciende solo cuando hay un uso intensivo, lo que reduce el consumo de energía y el ruido del ventilador. También prolonga la vida útil del ventilador manteniéndolo apagado cuando no se necesita.

Lo que vas a aprender

Cómo implementar un script de Python para controlar un ventilador basado en la temperatura actual de la CPU Raspberry usando el control On-Off con histéresis de temperatura Cómo transportar datos desde su RaspberryPi a Things Speak Cloud.

Suministros

Los componentes que se le requerirán para este proyecto son los siguientes

  • Computadora Raspberry Pi 4 Modelo B 4GB
  • Transistor NPN S8050330ohms resistor
  • Carcasa metálica de aluminio Armor con ventiladores dobles para Raspberry Pi
  • Cables de salto
  • Tablero de circuitos

Paso 1: construcción del circuito

Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito

El circuito es bastante simple. La alimentación del ventilador se corta mediante un transistor NPN. En esta configuración, el transistor actúa como un interruptor de lado bajo. Solo se requiere resistencia para limitar la corriente a través de GPIO. El GPIO de Raspberry Pi tiene una salida de corriente máxima de 16 mA. Usé 330 ohmios, lo que nos da una corriente base de aproximadamente (5-0,7) / 330 = 13 mA. Seleccioné un transistor NPN S8050, por lo que cambiar una carga de 400 mA de ambos ventiladores no es un problema.

Paso 2: registrar la temperatura de la CPU con ThingSpeak

Registrar la temperatura de la CPU con ThingSpeak
Registrar la temperatura de la CPU con ThingSpeak

ThingSpeak es una plataforma para proyectos basada en el concepto de Internet de las cosas. Esta plataforma le permite crear aplicaciones basadas en datos recopilados de sensores. Las principales características de ThingSpeak incluyen: recopilación, procesamiento y visualización de datos en tiempo real. ThingSpeak API no solo le permite enviar, almacenar y acceder a datos, sino que también proporciona varios métodos estadísticos para procesarlos.

ThingSpeak puede integrar dispositivos y servicios populares como:

  • Arduino
  • Pii de frambuesa
  • oBridge / RealTime.io
  • Diablillo eléctrico
  • Aplicaciones web y móviles
  • Redes sociales
  • Análisis de datos en MATLAB

Antes de comenzar, necesita una cuenta en ThingSpeak.

  1. Vaya al siguiente enlace y regístrese en ThingSpeak.
  2. Después de la activación de su cuenta, inicie sesión.
  3. Vaya a Canales -> Mis canales
  4. Haga clic en el botón Nuevo canal.
  5. Ingrese el nombre, descripción y campos de los datos que desea cargar
  6. Haga clic en el botón Guardar canal para guardar todas sus configuraciones.

Necesitamos una clave API, que luego agregaremos al código Python para cargar la temperatura de nuestra CPU en la nube de Thingspeak.

Haga clic en la pestaña Claves de API para obtener la clave de API de escritura

Una vez que tenga la clave Write API, estamos casi listos para cargar nuestros datos.

Paso 3: obtener la temperatura de la CPU de una Raspberry Pi con Python

El script se basa en recuperar la temperatura del procesador, lo que ocurre cada segundo. Se puede obtener desde la terminal ejecutando el comando vcgencmd con el parámetro measure_temp.

vcgencmd Measure_temp

Se usó la biblioteca Subprocess.check_output () para ejecutar el comando y luego usar una expresión regular para extraer el valor real de la cadena devuelta.

desde el subproceso de importación check_output

from re import findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) imprimir (get_temp ())

Una vez que se obtiene el valor de temperatura, los datos deben enviarse a la nube ThingSpeak. Use su clave de API de escritura para cambiar la variable myApi en el siguiente código de Python.

desde la solicitud de importación urllib

desde volver a importar findall desde el tiempo de importación dormir desde el subproceso import check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "medir_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) return (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) excepto KeyboardInterrupt: print ("Salir presionó Ctrl + C")

Paso 4: control del ventilador según la temperatura

El script de Python que se muestra a continuación implementa una lógica que enciende el ventilador cuando la temperatura sube por encima de tempOn y se apaga solo cuando la temperatura desciende por debajo del umbral. De esta forma, el ventilador no se encenderá y apagará rápidamente.

importar RPi. GPIO como GPIO

import sys desde re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 umbral = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) while True: temp = get_temp () if temp> tempOn y no pinState o temp <tempOn - umbral y pinState: pinState = no pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) excepto KeyboardInterrupt: print ("Salida presionada Ctrl + C") excepto: print ("Otra excepción") print ("--- Iniciar datos de excepción:") traceback.print_exc (límite = 2, file = sys.stdout) print ("--- Fin de datos de excepción:") finalmente: print ("Limpieza") GPIO.cleanup () print ("Fin del programa")

Paso 5: Código Python final

El código principal de Python se puede encontrar en mi cuenta de GitHub en el siguiente enlace. Recuerde poner su propia clave Write API.

  1. Inicie sesión en su placa Raspberry PI
  2. Ejecute el siguiente comando en la terminal

python3 cpu.py

Paso 6: Monitoreo de datos a través de Thingspeak Cloud

Monitoreo de datos a través de Thingspeak Cloud
Monitoreo de datos a través de Thingspeak Cloud

Después de un tiempo, abra su canal en ThingSpeak y debería ver la temperatura subiendo a la nube de Thingspeak en tiempo real.

Paso 7: Ejecute el script de Python al inicio

Para hacer esto, al final del archivo /etc/rc.local:

sudo nano /etc/rc.local

Debe colocar el comando de inicio del script delante de la línea exit 0:

sudo python /home/pi/cpu.py &

La presencia del símbolo & al final del comando es obligatoria, ya que es una bandera para iniciar el proceso en segundo plano. Después del reinicio, el script se ejecutará automáticamente y el ventilador se encenderá cuando se cumplan las condiciones especificadas.

Recomendado: