所以我一直在做一个通过我的树莓派远程打开/关闭 LED 灯的项目,但我遇到了一个问题。
我的索引.html代码应该可以正常工作,但是当我按下开或关按钮时,没有任何反应。问题不在于实际的命令(sudo python/var/www/html/scripts/lights/lampon.py或sudo 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>
<button class="btn" name="LightOFF">Light OFF</button><br><br>
</form>
</html>
任何帮助将不胜感激。提前谢谢。
注意:我可以以普通用户的身份运行上面的 sudo 命令,并且指示灯工作正常,但当我按下按钮时,它不起作用(网页似乎加载了 - 所以它做了一些事情......但是灯不亮)。
你可以像这样做:
<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>
但是你需要先在树莓派上安装 Wiring Pi,安装它:
$ sudo apt-get install git-core
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
我希望我有用:)
嗯,这就是问题所在。
您正在一个名为">索引"的文件中使用PHP代码。html"。
要使PHP代码正常工作,它必须位于一个名为">索引"的文件中。PHP"。
重要的部分是php代码进入扩展名为.php的文件,对于html文件也是如此。