2017-12-10 8 views
0

私のラズベリーPI 3では、インターネット経由でデュアルリレーを制御しようとしていますが、Pythonコードは正常です。テストしたところ、うまく動作しています。問題は、PHPコードです、私はどのようにウェブサイトを作るためのアイデアはありません。私は、これはコードで、私はインターネット上のものを見つけ、2つのボタン、リレーONと1とリレーOFFのものを見せたい:リレーを制御する2つのボタンを持つPHP

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

私はコードでナノを作った(もともとは、スイッチングのためでしたボタンを押したときに必要なPythonをexecして実行するようにしています)

私は何をすべきですか?取得しますが、ボタンは機能しません。私はそれらに触れることができますが、ページは更新され、リレーは何もしません。 誰かが私を助けることができれば私だろう。これは、PHPスクリプトがある

+0

ボタンの代わりに、入力値= 'ラジオ'と送信ボタンを使用して1つの値を取得する必要があります。 – urfusion

+0

答えをいただきありがとうございます、私はフィードバックを返して、もう一度お返事ください。 –

答えて

0

事前にapreciate.Thanks:

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

私が作った:これはindex.htmlページで

<?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!"; 
    } 
?> 

light.phpそれはXMLHttpRequestsで、それはページをリロードせずにPHPコードを実行するでしょう。 Light ONボタンの場合、light.phpにパラメータlight = onでPOST要求を送信し、他のボタンではパラメータlight = off以外の同じものを送信します。 PHPコードは、それぞれのケースごとに適切なpythonスクリプトを実行し、メッセージを書きます。コンソールで確認できます。

関連する問題