[Ubuntu-cat] Caixa refrigerada per a Raspberry 4 Model B

Pau Espin Pedrol pespin.shar a gmail.com
div feb 26 15:45:11 UTC 2021


Hola Roger,

Una opció que potser no has contemplat: posar un ventilador dins la caixa
amb un transistor connectat a un gpio que encengui el ventilador només quan
el core passa de certa temperatura, controlat per software a la RPI mateix
amb un petit script en python:
""""
#!/usr/bin/env python3
import sys
import time
import os

# define the GPIO to control the transistor's B pin
# NPN transistor, looking at letters: Out, Switch, In
GPIO_NUM=26
TURN_ON_CELSIUS = 60.0 # upper bound to turn on the fan
TURN_OFF_CELSIUS = 55.0 # lower bound to turn off the fan

def cpu_temp():
    with open('/sys/class/thermal/thermal_zone0/temp', 'r') as f:
        return float(f.read())/1000

def gpio_path(gpio_nr):
    return '/sys/class/gpio/gpio' + str(gpio_nr) + '/'

def set_gpio_direction(gpio_nr):
    with open(os.path.join(gpio_path(gpio_nr), 'direction'), 'w') as f:
        f.write("out")

def prepare_gpio(gpio_nr):
    print('Preparing GPIO ' + gpio_path(gpio_nr))
    if not os.path.isdir(gpio_path(gpio_nr)):
        with open('/sys/class/gpio/export', 'w') as f:
            f.write(str(gpio_nr))
    if not os.path.isdir(gpio_path(gpio_nr)):
        raise RuntimeError('gpio path ' + gpio_path(gpio_nr) + ' not found')
    set_gpio_direction(gpio_nr)

def set_gpio_value(gpio_nr, enable):
    with open(os.path.join(gpio_path(gpio_nr), 'value'), 'w') as f:
        if enable:
            f.write("1")
        else:
            f.write("0")

if __name__ == '__main__':
    prepare_gpio(GPIO_NUM)
    set_gpio_value(GPIO_NUM, False)
    is_on = False
    while True:
        temp = cpu_temp()
        if not is_on:
            if temp > TURN_ON_CELSIUS: # upper bound to turn on the fan
                print(time.ctime(), temp, 'Fan ON')
                set_gpio_value(GPIO_NUM, True)
                is_on = True
        else:
            if temp < TURN_OFF_CELSIUS: # lower bound to turn off the fan
                print(time.ctime(), temp, 'Fan OFF')
                set_gpio_value(GPIO_NUM, False)
                is_on = False

        time.sleep(2.0)
        print(time.ctime(), temp)
""""

Si busques per Internet "rpi fan transistor" trobaràs molts tutorials
explicant-ho.

Salutacions,
Pau Espin Pedrol


Missatge de Roger Angela <roger.angela a gmail.com> del dia dv., 26 de febr.
2021 a les 12:47:

> Bon dia ubuntaires,
>
> Perdoneu l'off topic, però segur que aquí hi ha gent amb més experiència
> que jo que em pugui aconsellar.
>
> A la feina tenim una Raspberry Pi 4 Model B, connectada a un televisor i a
> la xarxa, que gestiona i reprodueix els continguts multimèdia. És un
> sistema a mida, fruit d'un TFG, per gestionar la senyalització digital. Els
> continguts es mostren en un navegador (Chromium) maximitzat.
>
> La tenim dins de la caixa de plàstic oficial, sense ventilador ni
> dissipador. La temperatura de la placa ronda els 75º i és evident que
> haurem de canviar de caixa. Aquí ve la pregunta: m'ho he estat mirant del
> dret i del revés i hi ha moltes alternatives, diversos materials, amb
> ventilador o ventilació passiva... Per assegurar-nos que aconseguim
> disminuir notablement aquesta temperatura suposo que més val descartar les
> que no tinguin ventilador. Algú hi té experiència i recomana una caixa en
> concret? M'he estat mirant les valoracions a Amazon, però no m'acabo de
> decidir.
>
> Gràcies
>
> Roger Angela Gambús
>
> --
> Ubuntu-cat mailing list
> Ubuntu-cat a lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat
>
-------------- part següent --------------
Un document HTML ha estat eliminat...
URL: <https://lists.ubuntu.com/archives/ubuntu-cat/attachments/20210226/d676c87b/attachment-0001.html>


Més informació sobre la llista de correu Ubuntu-cat