Skip to main content

Python library for the Pimoroni Fan Shim for Raspberry Pi

Project description

Fan Shim for Raspberry Pi

Build Status Coverage Status PyPi Package Python Versions

Installing

Stable library from PyPi:

  • Just run sudo pip install fanshim

Latest/development library from GitHub:

  • git clone https://github.com/pimoroni/fanshim-python
  • cd fanshim-python
  • sudo ./install.sh

Reference

You should first set up an instance of the FANShim class, eg:

from fanshim import FanShim
fanshim = FanShim()

Fan

Turn the fan on with:

fanshim.set_fan(True)

Turn it off with:

fanshim.set_fan(False)

You can also toggle the fan with:

fanshim.toggle_fan()

You can check the status of the fan with:

fanshim.get_fan() # returns 1 for 'on', 0 for 'off'

LED

Fan Shim includes one RGB APA-102 LED.

Set it to any colour with:

fanshim.set_light(r, g, b)

Arguments r, g and b should be numbers between 0 and 255 that describe the colour you want.

For example, full red:

fanshim.set_light(255, 0, 0)

Button

Fan Shim includes a button, you can bind actions to press, release and hold events.

Do something when the button is pressed:

@fanshim.on_press()
def button_pressed():
    print("The button has been pressed!")

Or when it has been released:

@fanshim.on_release()
def button_released(was_held):
    print("The button has been pressed!")

Or when it's been pressed long enough to trigger a hold:

fanshim.set_hold_time(2.0)

@fanshim.on_hold()
def button_held():
    print("The button was held for 2 seconds")

The function you bind to on_release() is passed a was_held parameter, this lets you know if the button was held down for longer than the configured hold time. If you want to bind an action to "press" and another to "hold" you should check this flag and perform your action in the on_release() handler:

@fanshim.on_release()
def button_released(was_held):
    if was_held:
        print("Long press!")
    else:
        print("Short press!")

To configure the amount of time the button should be held (in seconds), use:

fanshim.set_hold_time(number_of_seconds)

If you need to stop Fan Shim from polling the button, use:

fanshim.stop_polling()

You can start it again with:

fanshim.start_polling()

0.0.3

  • Fix: lower polling frequency and make customisable, for PR #6

0.0.2

  • Fix: Fix error on exit

0.0.1

  • Initial Release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fanshim-0.0.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distributions

fanshim-0.0.3-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

fanshim-0.0.3-py2-none-any.whl (4.5 kB view details)

Uploaded Python 2

File details

Details for the file fanshim-0.0.3.tar.gz.

File metadata

  • Download URL: fanshim-0.0.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for fanshim-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ed5bfd3dd80d1866ec39502be4c025500a87411fb3ba269c92edbe2cdd187f22
MD5 3c0cda3b72aefbdf265a3fe23120cbd4
BLAKE2b-256 d90fc8b7091132a568031cbcd8775c1d6d8cee80c6e9ce4ce96cf16aed7a00a6

See more details on using hashes here.

File details

Details for the file fanshim-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: fanshim-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for fanshim-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c617dfccab727c81909d29e0156be7206b5749007f1a828d506b7b7e5a7f6fd3
MD5 bf0e74d4556b11f16b26fdc9c6298e1e
BLAKE2b-256 fb0fdef45b2f63e4cbddc7b7ac033de37dd62a17461959bd63f11f8ce942da4a

See more details on using hashes here.

File details

Details for the file fanshim-0.0.3-py2-none-any.whl.

File metadata

  • Download URL: fanshim-0.0.3-py2-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for fanshim-0.0.3-py2-none-any.whl
Algorithm Hash digest
SHA256 a35999ba7b513f9fd37e4c17a63954c3542615219d28a049681a32d85eb1df66
MD5 ae9ac00740393f3ccc4678979317b345
BLAKE2b-256 7f5f517a45ab3e886b5cc0264a65daa97f97d2cb08627228b1620741afdb60c2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page