通过Web应用程序闪烁LED

时间:2012-10-30 12:57:14

标签: php linux web embedded

我正在使用一些基于Linux的嵌入式系统(Beaglebone,FriendlyARM mini6410,Embest Devkit 8000)进行一些实验。我想用某种网络技术编写一个Web应用程序PHP,Javascript,......不管它是什么,其目的只是为了使LED闪烁。我必须这样做,以便看看我是否能够通过Web应用程序控制一些硬件资源。我知道对于Beaglebone我可以使用node.js和bonescript但是我想设计一个我可以很容易地引入其他目标的解决方案(对应用程序没有或有限的修改),因为我必须在不同的嵌入式目标上复制它。我知道我必须通过sysfs才能从用户空间应用程序控制硬件资源。我可以用PHP做到这一点(通过sysfs,我可以通过打开和读/写文件来驱动一个led)或者我可以编写一个C CGI应用程序,但是我的问题是,有什么其他的选择?我想确定设计Web应用程序的不同可能性,以便选择合适的Web应用程序。

3 个答案:

答案 0 :(得分:4)

写一个小cgi。甚至可以使用shell来完成,您可以将命令发送到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上写,并且webserver被配置为使用shell作为cgi的解释器

答案 1 :(得分:1)

好吧,如果我这样做,我可能会选择套接字通信。也许串行的是非常繁琐的硬件(可能没有以太网/ wifi端口)。如果设备可以通过抽象通信层进行交互,那么我可能会启用对两者的支持,以便服务器可以使用套接字或串行连接策略。大多数语言都支持这种或那种方式。

答案 2 :(得分:1)

我写了一个名为“php-gpio”的小库:https://github.com/ronanguilloux/php-gpio

我认为这可能有助于达到这种目的。