Contactando a Arduino a través de internet sin puerto hacia adelante


13

Tengo una placa Arduino conectada a una red Wifi que tiene acceso a internet. Lo que quiero es que necesito contactar a esta placa Arduino desde cualquier otra red sin la ayuda del reenvío de puertos en la red doméstica de Arduino. Actualmente lo que estoy haciendo es hacer que Arduino haga ping a mi servidor web en cada intervalo de dos segundos, lo cual no es práctico, creo.

¿Cómo se conectan a Internet dispositivos como las luces LED wifi inteligentes? Podemos operarlos con nuestro teléfono móvil sin reenvío de puertos ni ningún otro ajuste de configuración del enrutador, ¿verdad? ¿Cómo lo hicieron?


Mire CoAP, y tal vez algunos otros protocolos de IoT.
Sean Houlihane

Respuestas:


9

Para evitar la necesidad de estar en una red que permita el tráfico entrante , debe conectarse a un servidor saliente que transmitirá las solicitudes de los clientes que también realizan conexiones salientes.

En esencia, esto es como el modelo de un satélite de comunicación. Tanto la computadora o el teléfono del usuario o lo que sea, como el dispositivo IoT, mantienen los enlaces "arriba" a este servidor en la nube, y toma cada mensaje que aparece en un lado y lo envía en el otro, y viceversa.

Hay muchas formas posibles de implementar dicho servidor. Uno que está de moda actualmente es hacer que sea un corredor de MQTT . En MQTT, los clientes (tanto el dispositivo IoT como los dispositivos de usuario) realizan conexiones salientes al intermediario, y los mensajes compartidos rotos que son "publicados" en un "tema" por un cliente a todos los clientes que se han "suscrito" a ese "tema "tema.

  • Como ya existe una conexión establecida, el agente puede enviar tráfico no solicitado por ella sin ninguna latencia de intervalo de sondeo

  • Para mantener las conexiones establecidas, se envía tráfico ocasional para mantener vivo

  • Si la conexión se rompe, hay reglas para tratar de restablecerla

  • Esencialmente, la latencia notable solo ocurre si el agente intenta retransmitir un mensaje, y la conexión se rompe y aún no se repara, en cuyo caso el mensaje se retrasaría hasta que se realice la reconexión. (Hay opciones para retener mensajes, soltarlos, etc.).


1
MQTT hasta el final. Gracias por la pista Chris. NodeJS + MQTT es el camino a seguir.
Jithesh Kt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.