ついでにRaspiHabuを使うために(最低限)必要なパッケージ一覧
apt-get install apache2
apt-get install php5
apt-get install git-coreして
git-clone git://git.drogon.net/wiringPi
cd wiringPiして
./build
すれば、gpioコマンドをつかえるようになるよ
501 sudo su - 502 apt-get update 503 apt-get upgrade 504 dpkg -l | grep git 505 apt-get install python-setuptools python-dev 506 cd 507 ls -ltr 508 mkdir tmp 509 git clone git://git.drogon.net/wiringPi 510 cd wiringPi/ 511 ./build 512 which gpio 513 gpio -v root@raspi-81:~/wiringPi# gpio readall +----------+-Rev2-+------+--------+------+-------+ | wiringPi | GPIO | Phys | Name | Mode | Value | +----------+------+------+--------+------+-------+ | 0 | 17 | 11 | GPIO 0 | IN | Low | | 1 | 18 | 12 | GPIO 1 | IN | Low | | 2 | 27 | 13 | GPIO 2 | IN | Low | | 3 | 22 | 15 | GPIO 3 | IN | Low | | 4 | 23 | 16 | GPIO 4 | IN | Low | | 5 | 24 | 18 | GPIO 5 | IN | Low | | 6 | 25 | 22 | GPIO 6 | IN | Low | | 7 | 4 | 7 | GPIO 7 | IN | Low | | 8 | 2 | 3 | SDA | IN | High | | 9 | 3 | 5 | SCL | IN | High | | 10 | 8 | 24 | CE0 | IN | Low | | 11 | 7 | 26 | CE1 | IN | Low | | 12 | 10 | 19 | MOSI | IN | Low | | 13 | 9 | 21 | MISO | IN | Low | | 14 | 11 | 23 | SCLK | IN | Low | | 15 | 14 | 8 | TxD | ALT0 | High | | 16 | 15 | 10 | RxD | ALT0 | High | | 17 | 28 | 3 | GPIO 8 | IN | Low | | 18 | 29 | 4 | GPIO 9 | IN | Low | | 19 | 30 | 5 | GPIO10 | IN | Low | | 20 | 31 | 6 | GPIO11 | IN | Low | +----------+------+------+--------+------+-------+ root@raspi-81:~/wiringPi#
表中
wiringPi .. wiringPi番号体系
GPIO .. BMC2835番号体系 ( option -gにて指定する)
Phys .. 物理ピン番号
root@raspi-81:~# gpio -g mode 17 out モードの変更 root@raspi-81:~# gpio -g write 17 1 オン root@raspi-81:~# gpio -g write 17 0 オフ
あとは index.phpを/var/www配下に配置
[hirasawa@ubuntu1204-20 Habu]$ cat index.php <html><head> <style type="text/css"> <!-- pre { background-color: #99FF99; border: 0.1em solid gray; } --> </style></head><body> <?php if ( 0 == strcmp($_GET["port7"],"OFF" )) { $relayset = 0; } else { $relayset = 1; } exec('gpio mode 7 out'); exec('gpio write 7 '.$relayset); sleep(1); if ( isset($_GET["portctl"])) { $port=$_GET["portctl"]; if ( 0 == strcmp( "IN", $_GET["setvalue"] )) { exec('gpio mode '.$_GET["portctl"].' in'); } else { exec('gpio mode '.$_GET["portctl"].' out'); exec('gpio write '.$_GET["portctl"].' '.$_GET["setvalue"]); } } exec('gpio read 7',$output); if ( 1 == $output[0] ){ $relaynow = "ON"; $relaynext = "OFF"; } else { $relaynow = "OFF"; $relaynext = "ON"; } ?> <h1> Relay is <?php echo $relaynow; ?> </h1> <form action="index.php" method="get"> <input type="hidden" name="port7" value=<?php echo $relaynext; ?>> <input type="submit" value=<?php echo $relaynext; ?>> </form> <form action="index.php" method="get"> <select name="portctl"> <option value="0">D0</option> <option value="1">D1</option> <option value="2">D2</option> <option value="3">D3</option> <option value="4">D4</option> <option value="5">D5</option> <option value="6">D6</option> <option value="7">D7</option> </select> <input type="radio" name="setvalue" value="1">ON <input type="radio" name="setvalue" value="0">OFF <input type="radio" name="setvalue" value="IN">INPUT <input type="submit" > </form> <pre> <?php echo passthru('gpio readall'); ?> </pre> </body></html> [hirasawa@ubuntu1204-20 Habu]$
ブラウザ上の見え方は次に様な感じ
+----------+-Rev2-+------+--------+------+-------+ | wiringPi | GPIO | Phys | Name | Mode | Value | +----------+------+------+--------+------+-------+ | 0 | 17 | 11 | GPIO 0 | OUT | Low | | 1 | 18 | 12 | GPIO 1 | OUT | Low | | 2 | 27 | 13 | GPIO 2 | OUT | Low | | 3 | 22 | 15 | GPIO 3 | IN | Low | | 4 | 23 | 16 | GPIO 4 | IN | Low | | 5 | 24 | 18 | GPIO 5 | IN | Low | | 6 | 25 | 22 | GPIO 6 | IN | Low | | 7 | 4 | 7 | GPIO 7 | OUT | Low | | 8 | 2 | 3 | SDA | ALT0 | High | | 9 | 3 | 5 | SCL | ALT0 | High | | 10 | 8 | 24 | CE0 | IN | Low | | 11 | 7 | 26 | CE1 | IN | Low | | 12 | 10 | 19 | MOSI | IN | Low | | 13 | 9 | 21 | MISO | IN | Low | | 14 | 11 | 23 | SCLK | IN | Low | | 15 | 14 | 8 | TxD | ALT0 | High | | 16 | 15 | 10 | RxD | ALT0 | High | | 17 | 28 | 3 | GPIO 8 | IN | Low | | 18 | 29 | 4 | GPIO 9 | IN | Low | | 19 | 30 | 5 | GPIO10 | IN | Low | | 20 | 31 | 6 | GPIO11 | IN | Low | +----------+------+------+--------+------+-------+