我正试图通过WIFI连接两个Arduino Yun (让一个板控制另一个板上的一个引脚,反之亦然),而且我很难按我想的方式工作。
这就是我到目前为止所取得的成果:我有两个阿迪诺云板,每个板上都安装了一个简单的草图,只要我不让“连接-彼此”的-part出现,它就工作得很好。它使用模拟端口上的电位器,读取其值,将其映射到0-255范围内,根据给定的值,在一个数字引脚(更亮/更暗)上衰减一个LED。现在我想用一个板的电位计来控制另一个板上的LED。
为此,我尝试使用REST。我将我的草图与"Bridge“示例Sketch的代码组合在一起,后者在Arduino Yun( Linux部分)上设置了一个http -client/服务器,允许它通过http接收控制和读取补丁引脚的请求。
当在浏览器中为REST使用特定的URL时,它可以正常工作。例如:当我输入"http://myarduino.local/arduino/digital/3/1“时,它将数字引脚3的值设置为1(即LED打开)
我不知道如何在这一点上继续,因为我不想控制板从浏览器或应用程序,但让一个阿迪诺云控制另一个阿迪诺云直接。如果像上面通过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();我是阿迪诺云板的初学者,也许我错过了什么?
谢谢你的帮助或指点我的正确方向。或者如果你需要更多的信息来帮助我解决这个问题,请告诉我。
发布于 2014-11-13 12:11:09
我找到了另一种方法来直接连接两个Arduino Yun,或者尽可能地“直接”连接。REST不是正确的方法。因此,对于任何可能遇到同样“问题”的人来说:
经过一些研究后,我偶然发现了“太空啤酒”。它基于"websockets“,需要一台服务器来连接彼此的板,但它非常灵活。在本地安装spacebrew服务器也相当容易。它允许连接到服务器的每个客户端(如Arduino Yun )发布不同类型的数据(布尔值、范围、值)和/或使用简单的the接口订阅其他设备发布的数据。好的是,连接是快速的,当有数据要发送时,不需要等待重新建立连接。
我使用了Arduino示例素描"spacebrewRange“,它对我来说很好。它还需要一些其他的东西才能起作用,但它在网站和教程中作了解释:
http://docs.spacebrew.cc/gettingstarted/
http://de.slideshare.net/julioterra/spacebrew-server-workshop-itp
发布于 2015-09-04 21:02:33
试着做同样的事情,似乎,对我来说,这是可行的(至少这一点是:-)
我让一个arduino使用运行http://router.domain:port/arduino/key/value的进程请求URL“cURL”。接收arduino将此请求解释为使用YunClient将键设置为该值。
从您问题中的URL中,您似乎忽略了路径名称中的强制"/arduino/“组件。据我所知,这是将指向OpenWRT堆栈的任何请求定向到arduino/Leonardo部分所必需的。
https://stackoverflow.com/questions/26865948
复制相似问题