【问题标题】:Remotely accessing GPIO远程访问 GPIO
【发布时间】:2017-08-10 12:45:06
【问题描述】:

我有一个 Raspberry pi 3. 并安装了 Web 服务器。我有一个监听端口 432 的文件 http1.py 和从 URL 传递的变量“a”,它将通过 GPIO 打开和关闭灯:“http://192.168.0.5:432/turn?a=1” 我还在我的路由器上打开了 80 端口下的 ip 转发,它可以工作。 在我的树莓派服务器上,我有 index.html 文件,它使用 Ajax 访问 http://192.168.0.5:432/turn?a=1:

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),但使用外部 ipaddress 75.129.-.-:80,我看到 index.html 但是当我访问激活 Ajax 的链接时,什么都没有发生。

我做错了什么?或者,有没有更好的方法从我的网络中访问 GPIO?

【问题讨论】:

  • 你的python脚本在哪里?
  • 它在 /var/www/html 下。与 index.html 相同的目录,当我从该位置运行命令 http1.py 时,它工作正常
  • 您的 javascript 代码在您的浏览器中运行。它无法访问服务的本地网络,除非您的浏览器本身在服务器的本地网络上。
  • 是的,这是有道理的。有没有关于如何从网络外部访问树莓派的建议?
  • 我可以用外部 IP 地址编辑 Ajax:var url = "HTTP://75.129.-.-:432/turn?a="+str; ??

标签: python ajax raspberry-pi


【解决方案1】:

好吧,我发现在您的 Raspberry Pi 上控制 GPIO 的最佳/有效方法是通过wiringpi。您必须安装和配置 PHP 和接线 Pi。完成后,您可以将 PHP 与 Ajax 结合使用,为 GPIO 创建一个很酷的单页 GUI 界面,可以从网络之外的任何地方访问它。采取必要的步骤来破解页面

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 2013-08-09
    • 2011-09-04
    • 2012-11-23
    • 2018-07-23
    相关资源
    最近更新 更多