通过Web应用程序闪烁LED

4

我正在与一些基于Linux的嵌入式系统(Beaglebone、FriendlyARM mini6410、Embest Devkit 8000)进行一些实验。我想使用某种Web技术来编写一个Web应用程序,如PHP、Javascript等,其目的只是为了让LED闪烁。我必须这样做才能看到是否能通过Web应用程序控制某些硬件资源。我知道对于Beaglebone,我可以使用node.js和bonescript,但我想设计一种解决方案,以便我可以轻松地将其带到其他目标上(对应用程序进行少量或无修改),因为我必须在不同的嵌入式目标上复制此操作。我知道我必须通过sysfs来控制来自用户空间应用程序的硬件资源。我可以使用PHP(通过sysfs,我可以通过打开和读/写文件驱动LED)或者我可以编写一个C CGI应用程序来执行相同的操作...但我的问题是,有哪些其他选项?我想识别不同的Web应用程序设计可能性,以便选择合适的。


有趣的问题。想更多地了解以下内容... - arun
请查看此链接,可能会有帮助。http://projects.sindrelindstad.com/how-to-led-arduino-php-proc/ - arun
我想到的另一个解决方案是,有一个C应用程序打开一个套接字并监听客户端PHP应用程序在该套接字上的请求。 - Salvatore
3个回答

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上写入的权限,并且Web服务器配置为使用shell作为cgi的解释器。


1

1

如果我在做这件事,我可能会选择套接字通信。对于一些非常小的硬件(可能没有以太网/ WiFi 端口),也许可以使用串行通信。如果设备是可互换的,我可能会通过抽象通信层来支持两种方式,使服务器可以使用套接字或串行连接策略。几乎所有语言都支持其中一种或另一种。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接