通过互联网联系Arduino而无需端口转发


13

我有一个Arduino板连接到可以访问互联网的Wifi网络。我想要的是,我需要从任何其他网络联系此Arduino开发板,而无需在Arduino的家庭网络中进行端口转发。目前,我正在做的是每两秒间隔使Arduino ping我的Web服务器,这是不实际的。

智能WiFi LED灯等设备如何连接到Internet?我们可以使用手机操作它们,而无需进行任何端口转发或任何其他路由器配置调整,对吗?他们是如何做到的呢?


查看CoAP,也许还有其他一些物联网协议。
肖恩·霍利哈内

Answers:


9

为了避免需要使用允许入站流量的网络,您需要将出站连接到服务器,该服务器将中继来自客户端的请求,这些客户端也会与该服务器建立出站连接。

从本质上讲,这就像通信卫星的模型。用户的计算机或电话或其他任何设备,以及IoT设备,都将“向上”的链接保持在云中的该服务器上,并且它将接收出现在一侧的每条消息发送到另一侧的消息,反之亦然。

有许多可能的方法来实现这样的服务器。当前流行的一种方法是使其成为MQTT经纪人。在MQTT中,客户端(物联网设备和用户设备)都建立与代理的出站连接,并且一个客户端“发布”在“主题”上的碎共享消息将发送给已“订阅”该主题的所有客户端。 “ 话题。

  • 因为已经建立了连接,所以代理可以将未经请求的流量向下发送,而没有任何轮询间隔延迟

  • 为了建立连接,偶尔会发送保持活动的流量

  • 如果连接断开,则有规则尝试重新建立连接

  • 本质上,只有当代理尝试向下传递消息,并且连接被破坏并且尚未修复时,才会出现明显的延迟,在这种情况下,该消息将被延迟,直到重新连接完成为止。(有用于保存消息,删除消息的选项等)。


1
MQTT一直。感谢克里斯的线索。NodeJS + MQTT是必经之路。
Jithesh Kt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.