2017-08-10 138 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脚本?