Contattare Arduino tramite Internet senza port forward


13

Ho una scheda Arduino collegata a una rete Wifi che ha accesso a Internet. Quello che voglio è che ho bisogno di contattare questa scheda Arduino da qualsiasi altra rete senza l'aiuto del port forwarding nella rete domestica di Arduino. Attualmente sto facendo il ping di Arduino sul mio web server ogni due secondi, il che non è pratico, credo.

In che modo dispositivi come luci a LED wifi intelligenti si collegano a Internet? Siamo in grado di gestirli con il nostro telefono cellulare senza alcun port forwarding o altre regolazioni della configurazione del router, giusto? Come lo fanno?


Guarda CoAP e forse altri protocolli IoT.
Sean Houlihane,

Risposte:


9

Per evitare la necessità di trovarsi su una rete che consenta il traffico in entrata , è necessario connettersi in uscita a un server che inoltrerà le richieste dei client che effettuano anche connessioni in uscita.

Questo in sostanza è come il modello di un satellite di comunicazione. Sia il computer o il telefono dell'utente o qualsiasi altra cosa, e il dispositivo IoT, mantengono i collegamenti "in alto" a questo server nel cloud, e prende ogni messaggio che arriva da un lato e lo invia dall'altro, e viceversa.

Esistono molti modi possibili per implementare un tale server. Uno che è attualmente alla moda è quello di renderlo un broker MQTT . In MQTT, i client (sia il dispositivo IoT che i dispositivi utente) effettuano connessioni in uscita al broker e i messaggi di condivisione interrotti che vengono "pubblicati" su un "argomento" da un client a tutti i client che hanno "sottoscritto" quell'argomento " "argomento.

  • Poiché è già stata stabilita una connessione, il broker può inviare il traffico indesiderato al suo interno senza alcuna latenza dell'intervallo di polling

  • Per mantenere le connessioni stabilite, viene inviato traffico keep-alive occasionale

  • Se la connessione si interrompe ci sono delle regole per provare a ristabilirla

  • In sostanza, la latenza evidente si verifica solo se il broker tenta di inoltrare un messaggio e la connessione risulta interrotta e non ancora riparata, nel qual caso il messaggio verrebbe ritardato fino al completamento della riconnessione. (Ci sono opzioni per conservare i messaggi, rilasciarli ecc.).


1
MQTT fino in fondo. Grazie per l'indizio Chris. NodeJS + MQTT è la strada da percorrere.
Jithesh Kt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.