Biblioteca estável da Pypi:
sudo pip install fanshimMais recente/biblioteca de desenvolvimento do Github:
apt install git python3-pipgit clone https://github.com/pimoroni/fanshim-pythoncd fanshim-pythonsudo ./install.sh Você deve primeiro configurar uma instância da classe FANShim , por exemplo:
from fanshim import FanShim
fanshim = FanShim ()Ligue o ventilador com:
fanshim . set_fan ( True )Desligue com:
fanshim . set_fan ( False )Você também pode alternar o ventilador com:
fanshim . toggle_fan ()Você pode verificar o status do ventilador com:
fanshim . get_fan () # returns 1 for 'on', 0 for 'off' O Fan Shim inclui um LED RGB APA-102.
Defina -o para qualquer cor com:
fanshim . set_light ( r , g , b )Os argumentos R, G e B devem ser números entre 0 e 255 que descrevem a cor que você deseja.
Por exemplo, vermelho completo:
fanshim.set_light(255, 0, 0)
O Fan Shim inclui um botão, você pode vincular ações para pressionar, liberar e manter eventos.
Faça algo quando o botão for pressionado:
@ fanshim . on_press ()
def button_pressed ():
print ( "The button has been pressed!" )Ou quando foi lançado:
@ fanshim . on_release ()
def button_released ( was_held ):
print ( "The button has been pressed!" )Ou quando é pressionado o tempo suficiente para desencadear uma espera:
fanshim . set_hold_time ( 2.0 )
@ fanshim . on_hold ()
def button_held ():
print ( "The button was held for 2 seconds" ) A função que você vincula ao on_release() é passada um parâmetro was_held , isso permite que você saiba se o botão foi retido por mais tempo do que o tempo de espera configurado. Se você deseja vincular uma ação para "pressionar" e outra para "segurar", verifique esta bandeira e execute sua ação no manipulador on_release() :
@ fanshim . on_release ()
def button_released ( was_held ):
if was_held :
print ( "Long press!" )
else :
print ( "Short press!" )Para configurar a quantidade de tempo em que o botão deve ser mantido (em segundos), use:
fanshim . set_hold_time ( number_of_seconds )Se você precisar impedir que o calço do ventilador pesquise o botão, use:
fanshim . stop_polling ()Você pode começar de novo com:
fanshim . start_polling ()