amnuts/phpiwire

一个使用 Zephir 编写的 PHP 扩展(与 wiringPi 交互),允许您轻松地使用 PHP 控制 Raspberry Pi 的 GPIO。

dev-master 2016-06-22 13:53 UTC

This package is auto-updated.

Last update: 2024-09-20 08:51:27 UTC


README

使用 Zephir 编写的 wiringPi 包装器,以便将其编译为 PHP 扩展。

Flattr this git repo

要求

此扩展和 wiringPi 库旨在在 RaspberryPi 上运行,因此拥有 RaspberryPi 是一个相当大的要求!您还需要安装 Git、wiringPi 库、各种构建工具和 php 开发头文件。

安装 Git

sudo apt-get update
sudo apt-get install git

安装 wiringPi

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

如果一切顺利,您应该能够运行 gpio 工具

gpio -v

关于安装 wiringPi 的完整说明。

安装 zephir

sudo apt-get install gcc make re2c php5 php5-json php5-dev libpcre3-dev
git clone https://github.com/phalcon/zephir
cd zephir
./install-json
./install -c

如果一切顺利,您应该能够获取 zephir 的帮助信息

zephir help

关于安装 zephir 的完整说明。

构建扩展

git clone https://github.com/amnuts/phpiwire
cd phpiwire
zephir build

这将构建和安装扩展。然后您必须将扩展添加到您的 php.ini 文件中。您可能有两个 php.ini 文件,一个是 cli,一个是 web,所以请记住将扩展添加到两者中。您需要添加以下行

extension=phpiwire.so

完成此操作后(如果您在添加扩展用于 web 使用而不仅仅是 cli 时,则需要重新启动 web 服务器)您应该能够在使用 phpinfo() 方法或通过命令行 php -i 时看到扩展信息。

示例

以下是一个非常简单的示例,说明如何使连接到引脚 0 的 LED(使用 wiringPi 引脚编号方案,BCM_GPIO 引脚 17)闪烁。

假设 LED 连接如所示

Overview

<?php

namespace Phpiwire;

set_time_limit(0);

echo "Raspberry Pi blink\n";

$pi = new Board();
$p = $pi->getPin(0)->mode(Pin::OUTPUT);

while (true) {
    $p->write(Pin::HIGH);
    sleep(1);
    $p->write(Pin::LOW);
    sleep(1);
}

要运行它,您需要以 root 身份运行

sudo php blink.php

版本

扩展的版本可在以下位置获取

https://github.com/amnuts/phpiwire/releases/

许可证

MIT:http://acollington.mit-license.org/