GPIO Zero

Documentation: https://gpiozero.readthedocs.io/en/stable/

GPIO Zero is a python library for Raspberry Pi, that enables you to control sensors and actuators.

How to control a LED using gpiozero:

from gpiozero import LED
from time import sleep

led = LED(17) # LED connected to RasPi GPIO17

while True:
    led.on()  # Turn on LED
    sleep(1)  # Wait 1 second
    led.off() # Turn off LED
    sleep(1)  # Wait 1 second

How to control LED using pushbutton:

from gpiozero import LED, Button
from signal import pause

led = LED(17) # LED connected to RasPi GPIO17
button = Button(2) # Button connected to RasPi GPIO2

button.when_pressed = led.on
button.when_released = led.off

pause()

Following example turns on an LED if light sensor value is between 0 and 0.1 and motion is detected:

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()

How to read light sensor data:

from gpiozero import LightSensor

ldr = LightSensor(18)
ldr.wait_for_light()
print("Light detected!")