PHP 带有 2 个控制继电器的按钮

用户8882551

使用我的 Raspberry PI 3,我试图通过互联网控制双中继,Python 代码没问题,我测试了它们并且它们工作得很好。问题是 PHP 代码,我不知道如何制作网站。我只想显示 2 个按钮,一个是继电器开启,一个是继电器关闭,我在网上找到了一个,这是代码:

<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 /home/pi/relay1on.py");
}
if (isset($_POST['LightOFF']))
{
exec("sudo python /home/pi/relay1off.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>

我用代码制作了一个nano(最初它是为了打开和关闭灯,当然还有继电器,只是编辑了一下,所以当按下按钮时它会执行我需要的python)并将其放入/var/ www/html/

我得到了我应该得到的东西,但按钮不起作用。我可以触摸它们,但页面只是刷新,继电器什么也不做。如果有人可以帮助我,我会很感激。提前致谢

布克卢夫

这是一个 php 脚本:light.php

<?php
  if(isset($_POST['light']) && $_POST['light'] == "on")
  {
    exec("sudo python /home/pi/relay1on.py");
    echo "Light on!";
  }
  if(isset($_POST['light']) && $_POST['light'] == "off")
  {
    exec("sudo python /home/pi/relay1off.py");
    echo "Light off!";
  }
?>

这是 index.html 页面:

<html>
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>
    <button id="btnLightON" class="btn">Light ON</button>
    <button id="btnLightOFF" class="btn">Light OFF</button>

    <script>
      var buttonLightON = document.getElementById("btnLightON");
      var buttonLightOFF = document.getElementById("btnLightOFF");

      buttonLightON.onclick = function()
      {
        Light(true);
      }
      buttonLightOFF.onclick = function()
      {
        Light(false);
      }


      function Light(b)
      {
        var http = new XMLHttpRequest();
        var url = "light.php";
        var params = "";
        if(b == true)
        {
          params = "light=on"
        }
        else if(b == false)
        {
          params = "light=off"
        }
        http.open("POST", url, true);

        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        http.onreadystatechange = function()
        {
            if(http.readyState == 4 && http.status == 200) {
                console.log(http.responseText);
            }
        }
        http.send(params);
      }
    </script>
  </body>

</html>

我用 XMLHttpRequests 做了它,所以它会在不重新加载页面的情况下执行 php 代码。对于 Light ON 按钮,它向 light.php 发送一个 POST 请求,参数为 light=on,对于另一个按钮,除了参数 light=off 之外,其他内容相同。php 代码会为每种情况执行适当的python 脚本并写入一条消息,您可以在控制台中看到。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档