Как управлять MKR1000 из-за пределов локальной сети
Я хочу отправить HTTP-команду MKR1000 из-за пределов моей локальной сети.
До сих пор все ресурсы googled указывают на получение локального IP (пример 192.168.0.10) MKR1000 и отправку команды типа http://192.168.0.10/H
к нему, а затем разобрать его.
Как отправить команду MKR1000 из - за пределов его локальной сети?
Я должен уточнить,что хочу, чтобы это был потребительский продукт, и не могу позволить конечному пользователю возиться со своими маршрутизаторами для переадресации портов и т. Д.
@Kashif, 👍0
Обсуждение2 ответа
Лучший ответ:
Единственный способ, который я могу придумать для достижения этой цели, - это перенаправить ваш маршрутизатор и перенаправить порт 80 (http) на ваш MKR1000. Вы можете проверить https://portforward.com/ для получения инструкций по этому поводу.
Если вы не хотите переадресовывать порты, вам нужно будет подключить MKR1000 к централизованному серверу Интернета вещей и попросить пользователя пройти через сервер, чтобы получить доступ к MKR1000. Именно так это делают другие устройства Интернета вещей, такие как камеры nest.
Теперь вы можете попробовать эту библиотеку UPnP_Generic, чтобы сделать автоматическую блокировку портов для вас, не касаясь маршрутизатора вручную.
Многие из нас вручную переадресовывают порты в устройстве интернет-шлюза (IGD, Маршрутизатор), чтобы обеспечить доступ к локальным веб-сервисам из Интернета.
Эта библиотека обеспечивает более простой способ автоматической переадресации портов с помощью простого протокола обнаружения служб (SSDP), работающего на nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, ESP8266/ESP32, использующего ESP WiFi, WiFiNINA, Ethernet W5x00, ESP8266/ESP32 AT-command WiFi поддерживает многоадресную рассылку UDP.
SSDP обеспечивает механизм, с помощью которого сетевые клиенты, практически не имеющие статической конфигурации, могут обнаруживать сетевые службы. SSDP выполняет эту задачу, обеспечивая поддержку многоадресного обнаружения, а также маршрутизацию уведомлений и обнаружения на основе сервера.
SSDP используется для рекламы и обнаружения сетевых служб и информации о присутствии. Он выполняет эту задачу без помощи серверных механизмов конфигурации, таких как протокол динамической конфигурации хоста (DHCP) или Система доменных имен (DNS), а также без специальной статической конфигурации сетевого хоста. SSDP является основой протокола обнаружения Universal Plug and Play (UPnP) и предназначен для использования в жилых или небольших офисных помещениях.
Эта библиотека UPnP_Generic создана для автоматического обновления ваших IGDs запрошенной информацией о переадресации портов, используя одну из многих доступных плат / экранов. См.раздел Поддерживаемые в настоящее время платы.
Время между проверками обновления сопоставлений портов UPnP настраивается в соответствии с вашим вариантом использования и устанавливается в примерах на уровне 10 минут. LEASE_DURATION также настраивается и по умолчанию составляет 10 часов (36000 секунд). Имя виртуального сервера также может быть указано в скетче и показано в IGD, например NRF52-W5X00
или ESP8266-WIFI
, как показано на следующем рисунке:
Код UPnP_Generic очень короткий, может быть погружен в ваши проекты и вызываться в коде loop ().
- POST-запрос на Arduino MKR1400 GSM не работает
- Можно ли сделать обновление OTA, используя ссылку GitHub
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- Как правильно отправлять данные через http с помощью sim908?
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- ESP8266 Ошибка неверного запроса 400
Google "переадресация портов" вместе с маркой и моделью вашего маршрутизатора., @Majenko
Я хочу, чтобы это был потребительский продукт, и не хочу, чтобы каждый конечный пользователь возился со своим маршрутизатором. Отредактировал мой вопрос соответствующим образом., @Kashif
Ну, ты не можешь. Простой факт: устройства во внутренней сети, как бы вам этого ни хотелось, недоступны извне. Только пользователь может настроить свой маршрутизатор для переадресации доступа к нему., @Majenko
Но многие потребительские продукты Интернета вещей (например, NEST) управляются с вашего мобильного устройства из любого места?, @Kashif
Нет, это не так. Внешняя служба управляется с вашего устройства, и устройство Интернета вещей запрашивает ту же самую внешнюю службу., @Majenko
То, что вы *действительно* хотите, - это что-то вроде MQTT, @Majenko
Понятно, значит, мне нужен сервер. Мобильное устройство записывает данные на сервер, а MKR1000 продолжает запрашивать сервер для получения команд? Я думаю, что Firebase будет работать хорошо, НО этот непрерывный запрос на стороне MKR1000 будет потреблять батарею и данные., @Kashif
Зависит от того, насколько "непрерывный" вам действительно нужен., @Majenko