Kontaktaufnahme mit Arduino über das Internet ohne Portweiterleitung


13

Ich habe eine Arduino-Karte mit einem Wifi-Netzwerk verbunden, die Internetzugang haben. Ich möchte, dass ich dieses Arduino-Board von einem anderen Netzwerk aus kontaktieren kann, ohne die Portweiterleitung im Heimnetzwerk von Arduino zu unterstützen. Momentan mache ich es so, dass der Arduino alle zwei Sekunden einen Ping an meinen Webserver sendet, was meiner Meinung nach nicht praktikabel ist.

Wie stellen Geräte wie Smart WiFi-LED-Leuchten eine Verbindung zum Internet her? Wir können sie mit unserem Mobiltelefon ohne Portweiterleitung oder andere Anpassungen der Routerkonfiguration bedienen, oder? Wie machen Sie das?


Schauen Sie sich CoAP und möglicherweise einige andere IoT-Protokolle an.
Sean Houlihane

Antworten:


9

Um zu vermeiden, dass Sie sich in einem Netzwerk befinden müssen, das eingehenden Datenverkehr ermöglicht, müssen Sie eine Verbindung zu einem Server herstellen, der Anforderungen von Clients weiterleitet, die auch ausgehende Verbindungen zu diesem Server herstellen.

Dies ist im Wesentlichen wie das Modell eines Kommunikationssatelliten. Sowohl der Computer oder das Telefon des Benutzers oder was auch immer, als auch das IoT-Gerät unterhalten Verbindungen zu diesem Server in der Cloud, und jede Nachricht, die auf der einen Seite eingeht, wird auf der anderen Seite gesendet und umgekehrt.

Es gibt viele Möglichkeiten, einen solchen Server zu implementieren. Derzeit ist es angesagt, ein MQTT-Broker zu werden . In MQTT stellen Clients (sowohl das IoT-Gerät als auch Benutzergeräte) ausgehende Verbindungen zum Broker her, und die fehlerhaften Freigabenachrichten, die von einem Client zu einem Thema veröffentlicht wurden, werden an alle Clients gesendet, die dieses Thema abonniert haben "Thema.

  • Da bereits eine Verbindung hergestellt wurde, kann der Broker unerwünschten Datenverkehr ohne Wartezeit für Abfrageintervalle senden

  • Um die Verbindungen aufrechtzuerhalten, wird gelegentlich Keep-Alive-Verkehr gesendet

  • Wenn die Verbindung unterbrochen wird, gibt es Regeln für den Versuch, sie wiederherzustellen

  • Im Wesentlichen tritt eine merkliche Wartezeit nur auf, wenn der Broker versucht, eine Nachricht nach unten weiterzuleiten, und die Verbindung sich als unterbrochen und noch nicht repariert herausstellt. In diesem Fall würde die Nachricht verzögert, bis die erneute Verbindung hergestellt ist. (Es gibt Optionen zum Speichern, Ablegen usw.).


1
MQTT den ganzen Weg. Danke für den Hinweis Chris. NodeJS + MQTT ist der richtige Weg.
Jithesh Kt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.