ブログ

ArmadilloをCGIで制御するサンプル(LED点灯)

at_kazutaka.bito
2015年3月1日 22時31分

ネットワーク経由でArmadillo-440の赤LEDを点灯->消灯するプログラムをCGIで作ってみた。

1.下記のようなプログラムredled.cを作成する。
redled.c

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE *fp;
    char str[256];
 
    puts(
        "Content-type: text/html\n"
        "\n"
        "<HTML>\n"
        "<HEAD>\n"
        "<TITLE> Armadillo-440 </TITLE>\n"
        "</HEAD>\n"
        "<BODY>\n"
    );
 
    system("echo 1 > /sys/class/leds/red/brightness");
    system("sleep 1");    
    system("echo 0 > /sys/class/leds/red/brightness");
 
    puts(
        "</BODY>\n"
        "</HTML>"
    );
 
    return 0;
}

備考)上記のソースコードで、

    system("echo 1 > /sys/class/leds/red/brightness");
    system("sleep 1");    
    system("echo 0 > /sys/class/leds/red/brightness");

の箇所で、赤LEDを1秒点灯し、消灯している。

2.ビルドをかける(実行ファイルは、redled.cgiとする)

arm-linux-gnueabi-gcc redled.c -o redled.cgi

3.上記2の実行ファイルredled.cgiをArmadilloに転送し、/home/www-dataに置く

4.redled.cgiに実行権限をつける

[armadillo ~]# chmod +x /home/www-data/redled.cgi

5./sys/class/leds/red/brightnessをroot以外のユーザにもwrite可能にする。

[armadillo ~]# chmod 666 /sys/class/leds/red/brightness

備考)
/sys/class/leds/red/brightnessはrootユーザのみwrite可能になっている。 ネットワーク経由でアクセスしたユーザ(www-data)が、/sys/class/leds/red/brightnessに書き込めるようにwrite権限を付ける。

6.Webブラウザで [ArmadilloのIPアドレス]/redled.cgi にアクセスすると、Armadillo-440の赤LEDが1秒点灯し、消灯する。