【问题标题】:Controlling GPIO pins with cgi scripts使用 cgi 脚本控制 GPIO 引脚
【发布时间】:2014-03-04 07:14:28
【问题描述】:

我正在尝试通过网络控制 GPIO 引脚。我在我的树莓派(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>

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

【问题讨论】:

    标签: raspberry-pi


    【解决方案1】:

    为 apache2 启用 mod_cgi 模块

    sudo a2enmod mod_cgi
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2019-03-03
      • 2015-06-23
      • 1970-01-01
      相关资源
      最近更新 更多