2017-08-10 139 views
-1

我有一個Raspberry pi 3.並安裝了Web服務器。我有一個文件http1.py,監聽端口432,並通過URL傳遞變量「a」,它將通過GPIO打開和關閉指示燈:「http://192.168.0.5:432/turn?a=1」 我還在端口80的路由器上打開了IP轉發,有用。 在我的覆盆子PI的服務器我有一個使用Ajax來訪問http://192.168.0.5:432/turn?a=1 index.html文件:現在遠程訪問GPIO

function ras(str) { 
    var url = "HTTP://192.168.0.17:432/turn?a="+str; 
    xmlHttp = GetXmlHttpObject(stateChanged); 
    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); ..... 
} 

function stateChanged() { 
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { 
     Blah, blah ... 

,:在網絡上,它工作正常(GPIO打開和關閉),但與外部ip地址75.129 .- .-:80,我看到index.html但是當我訪問激活Ajax的鏈接時,沒有任何反應。

我在做什麼錯?或者,有沒有更好的方式通過我的網絡訪問GPIO?

+0

你的Python腳本在哪裏? – litelite

+0

它位於/ var/www/html下。與index.html相同的目錄,當我從此位置運行http1.py命令時,它工作正常 –

+0

您的JavaScript代碼在您的瀏覽器中運行。它無法訪問服務的本地網絡,除非您的瀏覽器位於服務器的本地網絡上。 – spectras

回答

0

嗯,我發現了最好的/有效的方式來控制你的GPIO Raspberry Pi是通過佈線。您必須安裝並配置PHP和接線Pi。一旦完成,您可以將PHP與Ajax結合使用,爲GPIO創建一個很酷的單頁GUI界面,該界面可以從網絡外的任何地方訪問。採取必要的步驟來破解頁面

0

感謝您的解決。我正在尋找相同的解決方案。你怎麼稱呼你ajax腳本?