Связь с Arduino через интернет без переадресации портов

13

У меня есть плата Arduino, подключенная к сети Wi-Fi, которая имеет доступ в Интернет. Я хочу связаться с этой платой Arduino из любой другой сети без помощи переадресации портов в домашней сети Arduino. В настоящее время я делаю пинг Arduino на моем веб-сервере каждые две секунды, что, на мой взгляд, непрактично.

Как устройство, такое как умные светодиоды Wi-Fi, подключается к Интернету? Мы можем управлять ими с помощью нашего мобильного телефона без переадресации портов или каких-либо других настроек конфигурации маршрутизатора, верно? Как они это делают?

Джитеш Кт
источник
Посмотрите на CoAP и, возможно, некоторые другие протоколы IoT.
Шон

Ответы:

9

Чтобы избежать необходимости находиться в сети, которая допускает входящий трафик, вам необходимо подключиться к серверу, который будет ретранслировать запросы от клиентов, которые также подключаются к нему.

По сути, это похоже на модель спутника связи. И компьютер пользователя, или телефон, или что-то еще, а также устройство IoT поддерживают связь «вверх» с этим сервером в облаке, и оно принимает каждое сообщение, которое появляется на одной стороне, и отправляет его на другой, и наоборот.

Существует много возможных способов реализации такого сервера. В настоящее время модно сделать его брокером MQTT . В MQTT клиенты (как устройства IoT, так и пользовательские устройства) устанавливают исходящие соединения с посредником, а сообщения о нарушенных общих ресурсах, которые «публикуются» по «теме» одним клиентом для всех клиентов, которые «подписались» на эту «тему» тема

  • Поскольку соединение уже установлено, брокер может отправлять незапрошенный трафик по нему без задержки интервала опроса

  • Чтобы поддерживать установленные соединения, иногда отправляется поддерживающий трафик

  • Если соединение разрывается, существуют правила для его восстановления

  • По сути, заметная задержка возникает только в том случае, если посредник пытается передать сообщение вниз, и соединение оказывается разорванным и еще не восстановленным, и в этом случае сообщение будет отложено до повторного подключения. (Существуют варианты хранения сообщений, их удаления и т. Д.).

Крис Страттон
источник
1
MQTT полностью. Спасибо за подсказку, Крис. NodeJS + MQTT - это путь.
Джитеш Кт