Networking 将数据从服务器转发到路由器到Arduino

Networking 将数据从服务器转发到路由器到Arduino,networking,arduino,router,Networking,Arduino,Router,基本上我有一个Arduino UNO,我已经通过以太网连接到我的路由器。我已经用我的服务器记录了IP,我想将数据推送到我的arduino。我想数据流应该是将数据(不确定最佳方式?我是否应该打开一个端口并流式传输数据?)发送到路由器,然后在路由器指定的本地地址将数据转发给我的Arduino 我如何告诉路由器转发此信息,而无需登录并使用路由器更改任何内容。本练习的重点是使用代码完成所有操作,而不是执行任何其他活动,如登录路由器和设置。我想这样做,因为我有我的Arduino记录温度,我想把数据推到状态

基本上我有一个Arduino UNO,我已经通过以太网连接到我的路由器。我已经用我的服务器记录了IP,我想将数据推送到我的arduino。我想数据流应该是将数据(不确定最佳方式?我是否应该打开一个端口并流式传输数据?)发送到路由器,然后在路由器指定的本地地址将数据转发给我的Arduino


我如何告诉路由器转发此信息,而无需登录并使用路由器更改任何内容。本练习的重点是使用代码完成所有操作,而不是执行任何其他活动,如登录路由器和设置。我想这样做,因为我有我的Arduino记录温度,我想把数据推到状态,如果它应该切换,从华氏度或华氏度发送数据,或者从visa卡发送数据。

我会使用具有发布/订阅模式的套接字服务器。可能有几个,但我最了解XSockets.NET

几个小时前,我将我的Arduino连接到XSockets,并在网页和我的Arduino之间双向通信


完成后,我会将代码放在github上,但您可以在此处观看一段视频,其中展示了这一概念:

只要您的arduino和服务器位于同一个本地网络上,您就不需要打开任何端口。因为IP地址映射网络上的所有设备,包括arduino

您希望在路由器上打开端口的原因是让本地网络之外的人访问网络上的服务器。端口转发存在的原因是,当有人向您的公共IP(即您的路由器)发送数据包时,它不知道将数据包发送到哪个本地IP。然后它会丢弃它,除非您将端口转发到本地IP,这意味着您的路由器会将所有带有该端口的数据包发送到该本地IP地址

您还需要制作自己的服务器程序,例如一个java程序来充当服务器

我做了一些类似于你正在寻找的东西,但我使用了wifi屏蔽。我在维护与它的连接方面遇到了一些问题,但到目前为止,这似乎是wifi图书馆的问题

不过,您仍然可以从中学到一些东西:

如果您想更多地了解java服务器的总体工作原理,这里有一个很好的教程,它解释了许多基础知识:

更好的方法是按一定频率呼叫服务器,检查数据格式。如果您需要从internet连接到Arduino的端口,您需要在您的路由器中配置端口转发。没有办法解决这个问题吗?通过发送http帖子进行通信怎么样?这是可能的吗?我想减少网络流量,因为arduino会发出大量请求,否则我希望更新是即时的。这太棒了。我没有选择chossen的答案,因为我想看看是否还有其他人回来提供替代方案。非常感谢,如果你把github的东西放进去的话,你会非常兴奋:谢谢。我将把所有代码放在github上,并举例说明如何在arduino/netduino和浏览器之间进行发布/订阅等。可能需要一到两周的时间,因为我必须首先编写所有代码:)