.. image:: https://badge.fury.io/gh/gpiozero%2Fgpiozero.svg :target: https://badge.fury.io/gh/gpiozero%2Fgpiozero :alt: Source code on GitHub
.. image:: https://badge.fury.io/py/gpiozero.svg :target: https://badge.fury.io/py/gpiozero :alt: Latest Version
.. image:: https://travis-ci.org/gpiozero/gpiozero.svg?branch=master :target: https://travis-ci.org/gpiozero/gpiozero :alt: Build Tests
.. image:: https://img.shields.io/codecov/c/github/gpiozero/gpiozero/master.svg?maxAge=2592000 :target: https://codecov.io/github/gpiozero/gpiozero :alt: Code Coverage
A simple interface to GPIO devices with Raspberry Pi.
Created by Ben Nuttall
_ and Dave Jones
_.
.. _Ben Nuttall: https://github.com/bennuttall .. _Dave Jones: https://github.com/waveform80
Component interfaces are provided to allow a frictionless way to get started with physical computing:
.. code:: python
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
With very little code, you can quickly get going connecting your components together:
.. code:: python
from gpiozero import LED, Button
from signal import pause
led = LED(17)
button = Button(3)
button.when_pressed = led.on
button.when_released = led.off
pause()
You can advance to using the declarative paradigm along with provided to describe the behaviour of devices and their interactions:
.. code:: python
from gpiozero import LED, MotionSensor, LightSensor
from gpiozero.tools import booleanized, all_values
from signal import pause
garden = LED(17)
motion = MotionSensor(4)
light = LightSensor(5)
garden.source = all_values(booleanized(light, 0, 0.1), motion)
pause()
See the chapter on Source/Values
_ for more information.
.. _Source/Values: https://gpiozero.readthedocs.io/en/stable/source_values.html
The library includes interfaces to many simple everyday components, as well as
some more complex things like sensors, analogue-to-digital converters, full
colour LEDs, robotics kits and more. See the Recipes
_ chapter of the
documentation for ideas on how to get started.
.. _Recipes: https://gpiozero.readthedocs.io/en/stable/recipes.html
GPIO Zero builds on a number of underlying pin libraries, including RPi.GPIO
_
and pigpio
, each with their own benefits. You can select a particular pin
library to be used, either for the whole script or per-device, according to your
needs. See the section on changing the pin factory
.
.. _RPi.GPIO: https://pypi.org/project/RPi.GPIO .. _pigpio: https://pypi.org/project/pigpio .. _changing the pin factory: https://gpiozero.readthedocs.io/en/stable/api_pins.html#changing-the-pin-factory
A "mock pin" interface is also provided for testing purposes. Read more about
this in the section on mock pins
_.
.. _mock pins: https://gpiozero.readthedocs.io/en/stable/api_pins.html#mock-pins
GPIO Zero is installed by default in the Raspbian desktop image, available from
raspberrypi.org
. To install on Raspbian Lite or other operating systems,
including for PCs using remote GPIO, see the Installing
chapter.
.. _raspberrypi.org: https://www.raspberrypi.org/downloads/ .. _Installing: https://gpiozero.readthedocs.io/en/stable/installing.html
Comprehensive documentation is available at https://gpiozero.readthedocs.io/.
Please refer to the Contributing
_ and Development
_ chapters in the
documentation for information on contributing to the project.
.. _Contributing: https://gpiozero.readthedocs.io/en/stable/contributing.html .. _Development: https://gpiozero.readthedocs.io/en/stable/development.html
See the contributors page
_ on GitHub for more info.
.. _contributors page: https://github.com/gpiozero/gpiozero/graphs/contributors
Core developers:
Ben Nuttall
_Dave Jones
_Andrew Scheller
_Other contributors:
Alex Chan
_Alex Eames
_Barry Byford
_Carl Monk
_Claire Pollard
_Clare Macrae
_David Glaude
_Daniele Procida
_Delcio Torres
_Edward Betts
_Fatih Sarhan
_Ian Harcombe
_Jeevan M R
_Mahallon
_Maksim Levental
_Martchus
_Martin O'Hanlon
_Mike Kazantsev
_Phil Howard
_Philippe Muller
_Rick Ansell
_Russel Winder
_Ryan Walmsley
_Schelto van Doorn
_Sofiia Kosovan
_Steve Amor
_Stewart Adcock
_Thijs Triemstra
_Tim Golden
_Yisrael Dov Lebow
_.. _Alex Chan: https://github.com/gpiozero/gpiozero/commits?author=alexwlchan .. _Alex Eames: https://github.com/gpiozero/gpiozero/commits?author=raspitv .. _Andrew Scheller: https://github.com/gpiozero/gpiozero/commits?author=lurch .. _Barry Byford: https://github.com/gpiozero/gpiozero/commits?author=ukBaz .. _Carl Monk: https://github.com/gpiozero/gpiozero/commits?author=ForToffee .. _Claire Pollard: https://github.com/gpiozero/gpiozero/commits?author=tuftii .. _Clare Macrae: https://github.com/gpiozero/gpiozero/commits?author=claremacrae .. _David Glaude: https://github.com/gpiozero/gpiozero/commits?author=dglaude .. _Daniele Procida: https://github.com/evildmp .. _Delcio Torres: https://github.com/gpiozero/gpiozero/commits?author=delciotorres .. _Edward Betts: https://github.com/gpiozero/gpiozero/commits?author=edwardbetts .. _Fatih Sarhan: https://github.com/gpiozero/gpiozero/commits?author=f9n .. _Ian Harcombe: https://github.com/gpiozero/gpiozero/commits?author=MrHarcombe .. _Jeevan M R: https://github.com/gpiozero/gpiozero/commits?author=jee1mr .. _Mahallon: https://github.com/gpiozero/gpiozero/commits?author=Mahallon .. _Maksim Levental: https://github.com/gpiozero/gpiozero/commits?author=makslevental .. _Martchus: https://github.com/gpiozero/gpiozero/commits?author=Martchus .. _Martin O'Hanlon: https://github.com/martinohanlon .. _Mike Kazantsev: https://github.com/gpiozero/gpiozero/commits?author=mk-fg .. _Phil Howard: https://github.com/gpiozero/gpiozero/commits?author=Gadgetoid .. _Philippe Muller: https://github.com/gpiozero/gpiozero/commits?author=pmuller .. _Rick Ansell: https://github.com/gpiozero/gpiozero/commits?author=ricksbt .. _Russel Winder: https://github.com/russel .. _Ryan Walmsley: https://github.com/gpiozero/gpiozero/commits?author=ryanteck .. _Schelto van Doorn: https://github.com/gpiozero/gpiozero/commits?author=goloplo .. _Sofiia Kosovan: https://github.com/gpiozero/gpiozero/commits?author=SofiiaKosovan .. _Steve Amor: https://github.com/gpiozero/gpiozero/commits?author=SteveAmor .. _Stewart Adcock: https://github.com/gpiozero/gpiozero/commits?author=stewartadcock .. _Thijs Triemstra: https://github.com/gpiozero/gpiozero/commits?author=thijstriemstra .. _Tim Golden: https://github.com/gpiozero/gpiozero/commits?author=tjguk .. _Yisrael Dov Lebow: https://github.com/gpiozero/gpiozero/commits?author=yisraeldov