python - 我将如何使用 php 在网页上显示多个按钮(它们将控制 raspberry pi)

标签 python linux raspberry-pi composer-php

我正在创建一个家庭自动化系统,我正在使用我的树莓派作为网络服务器来控制 gpio 端口,我使用了一些代码来打开 gpio 端口。我想要做的是让不同的 php 按钮运行不同的 python 脚本,然后它们打开不同的端口。我对 python 了解很多,但对 php 和 html 知之甚少。

这是迄今为止我通过 php 打开 gpio 端口的所有代码

 <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>

我也不会控制一个 8 channel 继电器,这意味着我需要 8 个按钮。我编写了一些用于运行 raspberry pi 脚本的基本代码,但我不知道如何将它们放在一起。

<?php

if (isset($_POST['LightON']))
{
exec("sudo python /home/pi/lighton.py");
}
if (isset($_POST['LightOFF']))
{
exec("sudo python /home/pi/lightoff.py");
}
?>

谢谢, 山姆 我知道变量名不同

最佳答案

一种解决方案是将所有 html 添加到一个 php 文件中,在其上添加所有 php 代码并在浏览器中运行它。这假设 www-data 用户对您的文件系统具有执行 python 脚本的正确权限。

例子:

<?php

if (isset($_POST['on']))
{
exec("sudo python /home/pi/lighton.py");
}
if (isset($_POST['off']))
{
exec("sudo python /home/pi/lightoff.py");
}
?>

<html>
 <head>
 <meta name="viewport" content="width=device-width" />
 <title>LED Control</title>
 </head>
 <body>
     LED Control:
     <form method="POST" >
          <input type="submit" value="ON" name="on">
          <input type="submit" value="OFF" name="off">
     </form>
 </body>
</html>

或者,如果您非常了解 Python,可以在 Apache 上配置 ModPython,并使用 py 文件作为服务器端脚本,并在客户端使用 JQuery 来传递按钮按下操作。

关于python - 我将如何使用 php 在网页上显示多个按钮(它们将控制 raspberry pi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881738/

相关文章:

python - Tensorflow 在 mac 上成功安装,但在使用时在 copyreg 上出现 ImportError

c - GPU_FFT : in unmpamem: control reaches end of non-void function

python使用多进程过滤海量文件

python - 如何添加到字典值或如果不存在则创建

python - 使用azure进行情感分析错误 'Resource not found'

linux - 构建环境隔离和文件系统差异

java - 当用户发送 EOF(Ctrl-D 或 Ctrl-Z)时退出 Java 程序

linux - Cygwin-LFTP 从 Linux 传输权限错误

linux - raspbian samba 无法更新文件

python - 剪切Python中串行读取的字符串的子字符串