【问题标题】:how would i use php to display multiple buttons on a web page (they are going to control a raspberry pi)我将如何使用 php 在网页上显示多个按钮(他们将控制树莓派)
【发布时间】:2017-02-14 08:34:32
【问题描述】:

我正在创建一个家庭自动化系统,我使用我的树莓派作为 Web 服务器来控制 gpio 端口,p 使用了一些代码来打开 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 通道继电器,这意味着我需要 8 个按钮。我已经编写了一些运行树莓派脚本的基本代码,但我不知道将它们放在一起。

<?php

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

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

【问题讨论】:

  • 我会使用 jquery 和 ajax
  • 如果你精通 python,他们有一个库来控制 gpio 的东西。或许用flask或django搭建网站
  • 你可能还想用树莓派标记你的问题——你可能会得到更多的回应

标签: python linux raspberry-pi composer-php


【解决方案1】:

一种解决方案是将所有的 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 来传递按钮按下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多