0

所以我一直在做一个项目,通过我的 Raspberry Pi 远程打开/关闭 LED 灯,但我遇到了一个问题。

我的 index.html 代码应该可以正常工作,但是当我按下开或关按钮时,什么也没有发生。问题不在于实际命令(sudo python /var/www/html/scripts/lights/lampon.pysudo python /var/www/html/scripts/lights/lampoff.py),因为当我运行相同的命令时直接在树莓派终端中,它可以工作。而且我的其余代码似乎也是正确的......所以我不知道问题是什么。

代码如下所示:

<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<?php
if (isset($_POST['LightON']))
{
exec("sudo python /var/www/html/scripts/lights/lampon.py");
}
if (isset($_POST['LightOFF']))
{
exec("sudo python /var/www/html/scripts/lights/lampoff.py");
}
?>
<form method="post">
<button class="btn" name="LightON">Light ON</button>&nbsp;
<button class="btn" name="LightOFF">Light OFF</button><br><br>
</form>
</html>

任何帮助,将不胜感激。提前致谢。

注意:我能够以普通用户的身份运行上面的 sudo 命令并且灯可以工作,但是当我按下按钮时,它不起作用(网页似乎正在加载 - 所以它在做某事......但灯不亮上)。

4

2 回答 2

0

嗯,这就是问题所在。

您在名为“Index.html”的文件使用PHP代码

为了使PHP代码工作,它必须位于一个名为“ Index.php ”的文件

重要的部分是php代码进入扩展名为.php的文件 ,对于html文件也是如此。

于 2018-10-16T23:44:21.053 回答
0

你可以这样做:

 <html>
 <head>
 <meta name="viewport" content="width=device-width" />
 <title>LED Control</title>
 </head>
         <body>
         LED Control:
         <form method="get" action="gpio.php">
                 <input type="submit" value="ON" name="on">
                 <input type="submit" value="OFF" name="off">
         </form>
        <?php
         $setmode17 = shell_exec("/usr/local/bin/gpio -g mode 17 out");
         if(isset($_GET['on'])){
                 $gpio_on = shell_exec("/usr/local/bin/gpio -g write 17 1");
                 echo "LED is on";
         }
         else if(isset($_GET['off'])){
                 $gpio_off = shell_exec("/usr/local/bin/gpio -g write 17 0");
                 echo "LED is off";
         }
         ?>
         </body>
 </html>

但是您需要先在 Raspberry Pi 上安装 Wiring Pi,然后才能安装它:

$ sudo apt-get install git-core
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build

我希望我有用:)

于 2018-06-07T10:33:03.983 回答