首页 文章

直接连接两个Arduino Yun板

提问于
浏览
1

我试图通过WIFI将两块Arduino Yun板相互连接(让一块板控制另一块板上的引脚,反之亦然),我无法按照我想要的方式工作 .

这是我到目前为止所处的位置:我有两个Arduino Yun板,每个板上都安装了一个简单的草图,只要我保持“连接 - 彼此连接”部分就可以正常工作 . 它使用模拟端口上的电位计,读取其值,将其映射到0-255的范围,根据给定的值,在其中一个数字引脚(更亮/更暗)上向上或向下淡化LED . 现在我想使用一块电路板的电位计来控制OTHER板上的LED .

为此,我尝试使用REST API . 我将我的草图与“Bridge”示例草图中的代码结合起来,它在Arduino Yun(Linux部分)上设置了一个http客户端/服务器,允许它通过http接收控制和读取心室引脚的请求 .

在浏览器中使用REST API的特定URL时,它可以正常工作 . 例如:当我键入“http://myarduino.local/arduino/digital/3/1”时,它将数字引脚3的值设置为1(即LED已打开) - >这样就可以了

我不知道如何继续这一点,因为我不想从浏览器或应用程序控制板,但让一个Arduino Yun直接控制另一个Arduino Yun . 如果我通过client.get和client.read(如示例草图中所示)在我的草图中添加http请求,则它不起作用 . 请参阅下面的示例代码它没有任何影响也没有出现在串行监视器中(原始URL“http://arduino.cc/asciilogo.txt”,如示例中所示,ascii代码出现在串行监视器中)

HttpClient webclient;
  webclient.get("http://ardu1.local/digital/3/1");

  while (webclient.available()) {
    char c = webclient.read();
    Serial.print(c);
  }
  Serial.flush();

我是Arduino Yun董事会的初学者,也许我错过了什么?

感谢您的帮助或指出我正确的方向 . 或者如果您需要更多信息来帮助我解决这个问题,请告诉我 .

2 回答

  • 0

    我找到了另一种方法来直接连接两个Arduino Yun板,或者尽可能接近“直接” . REST API不是正确的方法 . 所以这适用于任何可能遇到同样“问题”的人:

    经过一些研究,我遇到了“Spacebrew” . 它基于“websockets”,需要服务器将板连接到彼此,但它非常灵活 . 在本地设置一个spacebrew服务器也相当容易 . 它允许连接到服务器的每个客户端(如Arduino Yun板)发布不同类型的数据(布尔值,范围,值)和/或使用简单的Web界面从其他设备订阅发布的数据 . 好处是,连接速度很快,并且在有数据要发送时无需等待重新 Build 连接 .

    我使用了Arduino示例草图“spacebrewRange”,它对我来说很好 . 在它可以工作之前还需要一些其他的东西,但它在网站和教程中解释:

    http://docs.spacebrew.cc/gettingstarted/

    http://de.slideshare.net/julioterra/spacebrew-server-workshop-itp

  • 2

    试图做同样的事情,似乎,对我来说它是有效的(至少这一点: - |

    我让一个arduino使用运行cURL的进程请求URL“http://router.domain:port/arduino/key/value” . 接收arduino使用YunClient解释此请求以设置值的键 .

    从您问题中的URL,您似乎缺少路径名中的必需“/ arduino /”组件 . 据我所知,需要将针对OpenWRT堆栈的任何请求定向到arduino / Leonardo部分 .

相关问题