使用cgi脚本控制GPIO引脚

时间:2014-03-04 07:14:29

标签: raspberry-pi

我正在尝试通过网络控制GPIO引脚。我在我的raspberry-pi(Raspbian wheezy)上安装了apache服务器,我创建了一个带有Html和javascript的网页。我想要做的是当用户点击页面上的按钮时控制gpio引脚。 我在/ usr / lib / cgi-bin目录下的.cgi文件上有bash脚本,我在apache配置文件上做了一些安排,以便它可以访问该位置的文件。

这是.cgi文件内容:

#!/bin/bash
gpio -g mode 7 out
gpio -g write 7 1

echo "Status: 204 No Content"
echo "Content-type: text/html"
echo ""

更改apache的conf文件:/ etc / apache2 / sites-enabled / 000-default

<Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
            AddHandler cgi-script .cgi                     // I added this line
    </Directory>

但是当我点击页面上的按钮时,它没有显示任何响应。我还使用以下命令使.cgi文件可执行:

sudo chmod a+x setu.cgi

页面代码: 主管部分:

<head>
<script language="JavaScript" type="text/JavaScript">
function setu()
{
  document.location="cgi-bin/setu.cgi";
}

function clearall(event)
{
   document.location="cgi-bin/clearall.cgi";
}
</script>
</head>

正文部分:

<form name="form1" method="post" action="">
<p align="center">&nbsp;</p>
<p align="center">
  <input name="up" type="button" id="up" value="UP" onmousedown="setu()"      onmouseup="clearall(event)" >


<p align="center">&nbsp;</p>
</form>

关于这个主题的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

为apache2启用mod_cgi模块

sudo a2enmod mod_cgi

根据处理器的架构,它将启用cgi或cgid模块
为我工作。