GPIO

A PHP library for accessing the GPIO pins on a Raspberry Pi.

  • Owner: PiPHP/GPIO
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

PiPHP: GPIO

Latest Stable Version
Build Status
Code Coverage
Scrutinizer Code Quality
License
Total Downloads

A library for low level access to the GPIO pins on a Raspberry Pi. These pins can be used to control outputs (LEDs, motors, valves, pumps) or read inputs (sensors).

By AndrewCarterUK (Twitter)

Installing

Using composer:

composer require piphp/gpio

Or:

php composer.phar require piphp/gpio

Examples

Setting Output Pins

use PiPHP\GPIO\GPIO;
use PiPHP\GPIO\Pin\PinInterface;

// Create a GPIO object
$gpio = new GPIO();

// Retrieve pin 18 and configure it as an output pin
$pin = $gpio->getOutputPin(18);

// Set the value of the pin high (turn it on)
$pin->setValue(PinInterface::VALUE_HIGH);

Input Pin Interrupts

use PiPHP\GPIO\GPIO;
use PiPHP\GPIO\Pin\InputPinInterface;

// Create a GPIO object
$gpio = new GPIO();

// Retrieve pin 18 and configure it as an input pin
$pin = $gpio->getInputPin(18);

// Configure interrupts for both rising and falling edges
$pin->setEdge(InputPinInterface::EDGE_BOTH);

// Create an interrupt watcher
$interruptWatcher = $gpio->createWatcher();

// Register a callback to be triggered on pin interrupts
$interruptWatcher->register($pin, function (InputPinInterface $pin, $value) {
    echo 'Pin ' . $pin->getNumber() . ' changed to: ' . $value . PHP_EOL;

    // Returning false will make the watcher return false immediately
    return true;
});

// Watch for interrupts, timeout after 5000ms (5 seconds)
while ($interruptWatcher->watch(5000));

Further Reading

SitePoint published a tutorial about powering Raspberry Pi projects with PHP which used this library and shows a push button example with a wiring diagram.

More Resources

PiPHP maintains a resource directory for PHP programming on the Raspberry Pi.

Main metrics

Overview
Name With OwnerPiPHP/GPIO
Primary LanguagePHP
Program languagePHP (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-11-24 13:56:51
Pushed At2020-08-26 14:34:54
Last Commit At2020-08-24 08:50:12
Release Count14
Last Release Name0.4.0 (Posted on )
First Release Namev0.1.0 (Posted on )
用户参与
Stargazers Count432
Watchers Count20
Fork Count41
Commits Count99
Has Issues Enabled
Issues Count22
Issue Open Count10
Pull Requests Count17
Pull Requests Open Count2
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private