我正在RaspberryPi上構建一個網站。我有JustGage閱讀溫度和其他傳感器,並顯示他們實時已經工作。但現在,我試圖創建一個按鈕,當按下時,執行一個python腳本。按鈕執行python腳本,使用jquery?
所以,正是這種簡單的按鈕:
<form method="post">
<button id="led" name="led" checked data-toggle="toggle">▲</button>
</form>
而現在,當按下這個按鈕,我要讓它執行python腳本LED.py:
import os
import smbus
import time
import datetime
import os, sys
rom datetime import datetime
import pytz
import datetime
states = open('/home/pi/Desktop/UV.txt', 'r+')
on=open('/home/pi/Desktop/on.txt', 'r+')
os.system('sudo /drcontrol/drcontrol.py -d DAE001XA -r 3 -c state | tee /home/pi/Desktop/UV.txt')
state = states.readlines()
on = on.readlines()
state = str(state)
rstate= str(on)
if (rstate == state):
print ("Relay on!")
else:
print ("Relay Off!")
#--------------------
if (rstate != state):
os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c on')
print("on")
else:
os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c off')
print("off")
#------------------------------------------------------------------------------------
import os, sys
if os.popen('whoami').readline().strip() == 'root' :
print("OK, you're root")
root = True
else:
print("Attention: please run as root with 'sudo'. This scripts GPIO which need root-rights.")
print("Now exiting ...")
sys.exit(1)
root = False
if __name__ == '__main__':
main()
print ("Finished")
這條巨蟒腳本從終端運行時起作用。它將在關閉時激活繼電器,反之亦然。但是,如何在index.php頁面上按下按鈕時運行此腳本?最好使用Jquery或PHP(但我不希望頁面重新加載),但不使用Flask。
還是有一種簡單的方法來使用Bootstrap Switch或什麼?並且,使用保存在「/home/pi/Desktop/UV.txt」中的繼電器的當前狀態作爲開關的默認位置?有沒有關於這個清楚的教程?
編輯1
的Python腳本on.py: 進口操作系統,SYS
os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c on')
f=open("/var/www/test.txt", a+)
上的index.php按鈕:
<button id="led">on</button>
<script>
$("#led").click(function(){
$.ajax({
url:"/var/www/on.php",
});
});
</script>
終於on.php :
<?php
exec("sudo /usr/bin/python3.2 /var/www/on.py")
?>
當在瀏覽器中打開php文件時,它只顯示內容,沒有錯誤(我在.py和.php文件上都運行了chmod 777和chmod + x)。
只要我點擊按鈕,chrome會在開發人員模式下顯示on.php爲「GET」。所以,按鈕的作品,但pythonscript不運行。當我在sudo php var/www/on.php
的終端測試它時,它的作用就像一個魅力。 我還遺失了什麼? www和www-data被添加到sudo'ers中。 apache也應該在其中嗎?
http://raspberrypi.stackexchange.com/questions/7365/php-to -execute-python-scripts-for-gpio – cmorrissey