9.0 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Input Devices
These input device component interfaces have been provided for simple use of everyday components.
Components must be wired up correctly before used in code.
Note all GPIO pin numbers use BCM numbering. See the notes page for more information.
Button
A physical push button or switch.
Wiring
Connect one side of the button to a ground pin, and the other to any GPIO pin:
Alternatively, connect to 3V3 and to a GPIO, and set pull_up to False when
you create your Button object.
Code
Ensure the Button class is imported at the top of the file:
from gpiozero import Button
Create a Button object by passing in the pin number the button is connected
to:
button = Button(2)
Initialisation options
Button(pin=None, pull_up=True, bounce_time=None)
| Argument | Description | Values | Default | 
|---|---|---|---|
| pin | The GPIO pin number the button is connected to. | Integer: 0to25 | Required | 
| pull_up | The pull state of the pin. Truemeans pull up,Falsemeans pull down. | Boolean | True | 
| bounce_time | Specifies the length of time (in seconds) that the component will ignore changes in state after an initial change. | Integer or Float | None | 
Methods
| Method | Description | Arguments | 
|---|---|---|
| wait_for_press() | Halt the program until the button is pressed. | timeout- The number of seconds to wait before proceeding if no event is detected. Default:None | 
| wait_for_release() | Halt the program until the button is released. | timeout- The number of seconds to wait before proceeding if no event is detected. Default:None | 
Properties
| Property | Description | Type | 
|---|---|---|
| pin | The GPIO pin number the button is connected to. | Integer | 
| is_pressed | The current state of the pin ( Trueif pressed; otherwiseFalse). | Boolean | 
| pull_up | The pull state of the pin ( Trueif pulled up;Falseif pulled down). | Boolean | 
| when_pressed | A reference to the function to be called when the button is pressed. | Noneor Function | 
| when_released | A reference to the function to be called when the button is released. | Noneor Function | 
Motion Sensor
A PIR (Passive Infra-Red) motion sensor.
Wiring
Connect the pin labelled VCC to a 5V pin; connect the one labelled GND to
a ground pin; and connect the one labelled OUT to any GPIO pin:
Code
Ensure the MotionSensor class is imported at the top of the file:
from gpiozero import MotionSensor
Create a MotionSensor object by passing in the pin number the sensor is
connected to:
pir = MotionSensor(4)
Initialisation options
MotionSensor(pin=None, queue_len=1, sample_rate=10, threshold=0.5, partial=False)
| Argument | Description | Values | Default | 
|---|---|---|---|
| pin | The GPIO pin number the sensor is connected to. | Integer: 0to25 | Required | 
| queue_len | ??? | Integer | 1 | 
| sample_rate | ??? | Integer | 10 | 
| threshold | Proportion of sensor values required to determine motion state. | Float: 0to1 | 0.5 | 
| partial | ??? | Boolean | False | 
Methods
| Method | Description | Arguments | 
|---|---|---|
| wait_for_motion() | Halt the program until motion is detected. | timeout- The number of seconds to wait before proceeding if no motion is detected. Default:None | 
| wait_for_no_motion() | Halt the program until no motion is detected. | timeout- The number of seconds to wait before proceeding if motion is still detected. Default:None | 
Properties
| Property | Description | Type | 
|---|---|---|
| pin | The GPIO pin number the sensor is connected to. | Integer | 
| motion_detected | The current state of the sensor ( Trueif motion is detected; otherwiseFalse). | Boolean | 
| when_motion | A reference to the function to be called when motion is detected. | Noneor Function | 
| when_no_motion | A reference to the function to be called when no motion is detected. | Noneor Function | 
Light Sensor
An LDR (Light Dependent Resistor) Light Sensor.
Wiring
...
Code
Ensure the LightSensor class is imported at the top of the file:
from gpiozero import LightSensor
Create a LightSensor object by passing in the pin number the sensor is
connected to:
light = LightSensor(4)
Initialisation options
LightSensor(pin=None, queue_len=5, charge_time_limit=10,
    threshold=0.1, partial=False)
| Argument | Description | Values | Default | 
|---|---|---|---|
| pin | The GPIO pin number the sensor is connected to. | Integer: 0to25 | Required | 
| queue_len | ??? | Integer | 5 | 
| charge_time_limit | Maximum amount of time allowed to determine darkness. | Integer | 10 | 
| threshold | Proportion of sensor values required to determine light level. | Float: 0to1 | 0.1 | 
| partial | ??? | Boolean | False | 
Methods
| Method | Description | Arguments | 
|---|---|---|
| wait_for_light() | Halt the program until light is detected. | timeout- The number of seconds to wait before proceeding if light is not detected. Default:None | 
| wait_for_dark() | Halt the program until darkness is detected. | timeout- The number of seconds to wait before proceeding if darkness is not detected. Default:None | 
Properties
| Property | Description | Type | 
|---|---|---|
| pin | The GPIO pin number the sensor is connected to. | Integer | 
| light_detected | The current state of the sensor ( Trueif light; otherwiseFalse). | Boolean | 
| when_light | A reference to the function to be called when light is detected. | Noneor Function | 
| when_dark | A reference to the function to be called when darkness is detected. | Noneor Function | 
Temperature Sensor
One-wire Digital Temperature Sensor.
Wiring
...
Code
Ensure the TemperatureSensor class is imported at the top of the file:
from gpiozero import TemperatureSensor
Create a TemperatureSensor object:
temp = TemperatureSensor()
Initialisation options
...
Methods
...
Properties
| Property | Description | Type | 
|---|---|---|
| value | The current temperature reading in degrees Celsius. | Float | 
MCP3008 Analogue-to-Digital Converter
MCP3008 ADC (Analogue-to-Digital converter).
The MCP3008 chip provides access to up to 8 analogue inputs, such as potentiometers, and read their values in digital form.
Wiring
...
Code
Ensure the MCP3008 class is imported at the top of the file:
from gpiozero import MCP3008
Create an MCP3008 object:
pot = MCP3008()
Alternatively, access an input value with the MCP3008's context manager:
with MCP3008() as pot:
    # do something with pot
Initialisation options
MCP3008(device=0, channel=0)
| Argument | Description | Values | Default | 
|---|---|---|---|
| device | Which of the two Chip Select SPI pins to access. | Integer: 0or1 | 0 | 
| channel | Which of the 8 ADC channels to access. | Integer: 0to7 | 0 | 
Methods
| Method | Description | Arguments | 
|---|---|---|
| wait_for_light() | Halt the program until light is detected. | timeout- The number of seconds to wait before proceeding if light is not detected. Default:None | 
| wait_for_dark() | Halt the program until darkness is detected. | timeout- The number of seconds to wait before proceeding if darkness is not detected. Default:None | 
Properties
| Property | Description | Type | 
|---|---|---|
| pin | The GPIO pin number the sensor is connected to. | Integer | 
| light_detected | The current state of the sensor ( Trueif light; otherwiseFalse). | Boolean | 
| when_light | A reference to the function to be called when light is detected. | Noneor Function | 
| when_dark | A reference to the function to be called when darkness is detected. | Noneor Function | 
MCP3004 Analogue-to-Digital Converter
MCP3004 ADC (Analogue-to-Digital converter).
The MCP3004 chip provides access to up to 4 analogue inputs, such as potentiometers, and read their values in digital form.
The interface is identical to MCP3008, except that only channels 0 to 3
are accessible.

