Linuxベースの組み込みシステム(Beaglebone、FriendlyARM mini6410、Embest Devkit 8000)でいくつかの実験を行っています。ある種のWebテクノロジーPHP、Javascriptなどを使用してWebアプリケーションを作成したいと思います。それが何であれ、その目的はLEDを点滅させることだけです。Webアプリケーションを介して一部のハードウェアリソースを制御できるかどうかを確認するには、これを行う必要があります。Beagleboneの場合、node.jsとbonescriptを使用できることは知っていますが、これを別の埋め込みターゲットに複製する必要があるため、他のターゲットに簡単に導入できるソリューションを考案したいと思います(アプリケーションに変更を加える必要はありません)。 。ユーザースペースアプリケーションからハードウェアリソースを制御できるようにするには、sysfsを実行する必要があることを知っています。PHPでこれを行うことができます(sysfsを介して、ファイルを開いて読み書きするだけでLEDを駆動できます)、または同じことを行うC CGIアプリケーションを作成できます...しかし、私の質問は、他のオプションは何ですか?適切なものを選択するために、Webアプリケーションを設計するためのさまざまな可能性を特定したいと思います。
3 に答える
4
小さなcgiを書きます。sysfsにコマンドを送信できるシェルでも実行できます
あなたは次のようなものを作ることができます
#!/bin/sh
#this will parse the sent parameters
eval $(echo "$QUERY_STRING"|awk -F'&' '{for(i=1;i<=NF;i++){print $i}}')
# this has to be set to whatever you want
GPIO=22
echo $GPIO > /sys/class/gpio/export
echo "out" /sys/class/gpio/gpio$GPIO/direction
echo 1 /sys/class/gpio/gpio$GPIO/value
cat << EOF
Content-Type: text/html
<!DOCTYPE html>
<html>
<body>
<h1>pin on</h1>
</body>
</html>
EOF
最後に、sysfsに書き込む権限があり、WebサーバーがCGIのインタープリターとしてシェルを使用するように構成されていることを確認する必要があります。
于 2012-10-30T13:25:35.110 に答える
1
ええと、もし私がそれをしているなら、私はおそらくソケット通信を選ぶでしょう。おそらく、本当に気の利いたハードウェア(イーサネット/ Wi-Fiポートがない可能性があります)のシリアルです。サーバーがソケットまたはシリアル接続戦略を使用できるように、通信レイヤーを抽象化することでデバイスが交換可能である場合は、両方のサポートを有効にする可能性があります。ほとんどすべての言語は、いずれかの方法をサポートしています。
于 2012-10-30T13:33:35.500 に答える
1
「php-gpio」という小さなライブラリを作成しました:https ://github.com/ronanguilloux/php-gpio
これはこの種の目的に役立つかもしれないと思います。
于 2012-12-04T23:08:02.987 に答える