Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Решено Подключение и управление ESP8266 с другого конца земли

Тема в разделе "Общие вопросы по esp8266", создана пользователем Gebiys, 27 май 2018.

  1. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Доброго времени суток! Есть ESP8266 (NodeMCU) и несколько подключенных к нему датчиков. Дома я спокойно могу получать к нему доступ и управлять всей системой, но вот когда устройство находится уже за пределами локальной сети, то возникают проблемы. Возможно ли при помощи существующих библиотек ESP сделать следующую систему: Есть ESP8266, есть сервер. ESP можно запустить в любой точке земли. Далее там вводят данные подключения к своей WIFI сети, ESP посылает POST запрос на главный сервер, адрес которого будет указан в прошивке и далее уже происходит взаимное общение ESP и сервера. Проблема в том, что непонятно, как с сервера получить доступ к ESP, если он не находится в локальной сети?
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Многие роутеры умеют пробрасывать порт в локальную сеть.
    Второй способ, сама есп с заданным интервалом запрашивает внешний сервер.
     
  3. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Спасибо за ответ! Без проброски портов и исключая второй вариант невозможно получить доступ к ESP? Я хочу сделать так, чтобы от пользователя требовалось меньше телодвижений (в идеале: ввел данные входа wifi сети и все. Без всякой проброски портов.)
     
  4. nikolz

    nikolz Гуру

    Сообщения:
    4.736
    Симпатии:
    452
    если ESP сервер:
    Домашний хостинг сайтов с динамическим IP
    Связываем домен и динамический IP
    Удаленный доступ при динамическом IP или Настраиваем DynDNS в Linux
    Сервер на динамическом ip или как сделать статический ip адрес из динамического - ITFound.ru
    ну и т д
    ------------------------
    если ESP клиент,
    то либо ставим у себя (т е в другой точке мира) север
    либо размещаем свой сервер в дата центре
    либо отсылаем данные в облако
    либо используем сервера для IOT
    шлем смс с ESP
     
  5. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Ему не подходит, так как
    и это не годиться, так как
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.736
    Симпатии:
    452
    Тогда надо поймать золотую рыбку или хотя бы говорящую щуку и на печи загадать желание.
     
  7. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.168
    Симпатии:
    226
    @Gebiys а чем вариант с с внешним сервером не угодил? Никаких телодвижений от пользователя не надо и золотая рыбка не требуется!
     
  8. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Быстродействие ограничено промежутком запросов к серверу и я не особо понимаю, как здесь реализовывать обновление прошивок. Также я не смогу, наверное, перезагрузить устройство, на случай его зависания. Поэтому я хотел организовать двухстороннюю связь, где можно мгновенно, по инициативе любой из сторон совершать действия. Все упирается только в удобство подключения.
     
  9. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.168
    Симпатии:
    226
    @Gebiys на случай зависания вы сможете использовать ТОЛЬКО встроенный watchdog. Обновление без проблем по команде сервера. На счёт "мгновенно" - это точно к золотой рыбке. Во всех остальных случаях, есть конкретный числовой параметр в минутах, секундах, милисекундах и микросекундах. Хотя последнее, при интернет-соединении совсем не актуально.
     
    Последнее редактирование: 28 май 2018
  10. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Спасибо за совет насчет WatchDog. Сейчас наткнулся на UPnP для ESP8266 (по логике он сам даст команду роутеру перенаправить порты), заинтересовался, но после прочитал, что UPnP не стоит использовать по причине его ненадежности и отсутствия в большинстве роутеров.. Вы знакомы с этим?
     
  11. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.168
    Симпатии:
    226
    @Gebiys даже если вы его прокините на роутере, за NAT провайдера вы как его пробрасывать будете? Или вы думаете, что у всех "белый" ip? Вам без сервера в Интернете по любому не обойтись. А если он будет, то незачем пробрасывать порт.
    Upnp в роутере может быть и отключен. А вы хотели без лишних телодвижений.
     
  12. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Я планирую взять vds и на нем будет php сервер, который должен принимать и отдавать команды на esp, которые могут находится где угодно. К esp может быть подключен rfid считыватель, при срабатывании которого будет посылаться запрос на сервер с номером карты и должен исходить ответ обратно. Esp сможет спокойно посылать команды на сервер, адрес которого будет в прошивке. Но как сам сервер сможет определять адрес Esp (которых может быть много) и посылать туда команды по своей инициативе? Именно из-за этого я начал думать над вопросом: как сделать esp доступной в интернете и тут поехало.. Из варианта связи Esp "в одну сторону" (до сервера) я понял примерно так: на сервере будет база данных, в которой будут в зависимости от команд меняться значения, esp будет периодически опрашивать эту БД и считывать ее значения, исходя из которых она будет уже производить определенные действия. Возможно я не так понял этот вариант и есть более простое решение.
     
  13. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.168
    Симпатии:
    226
  14. sharikov

    sharikov Авторитетный участник сообщества

    Сообщения:
    579
    Симпатии:
    52
    Так вы примерно к 3-й странице доползете до MQTT.
     
  15. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.168
    Симпатии:
    226
    @sharikov не факт, что это то что ТС нужно.
     
  16. nikolz

    nikolz Гуру

    Сообщения:
    4.736
    Симпатии:
    452
    Этот варианте и есть мессенджер типа MQTT. Т е ESP присылают сообщения которые записываются в базу данных, а любой желающий кто подписался на его сообщения читает новые сообщения.
    У Вас немного иначе. У вас нет посторонних читателей .
    тогда ESP нет надобности читать в базе данных.
    Алгоритм может быть такой
    ESP присылает сообщение и в нем содержится идентификатор .
    По идентификатору сервер определяет кто это.
    В ответ сервер посылает команду и переводит ESP в нужный режим (прошивка сброс настройка и т д)
    Для того чтобы ESP не зависал ставится внешний WDT на таймере TPL5110 с питанием от батарейки 3 вольта(батарейки хватит лет на 100) . Если ESP должно просыпаться более чем через 2 часа то можно поставить внешний RTC.
     
  17. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Да, я изучал MQTT, но это не то. Вариант с идентификатором очень даже подходит, я примерно так и рассуждал (у каждого устройства будет свой ключ, который будет сверяться), но меня мучил вопрос, на какой адрес будет отправляться ответ от сервера?
     
  18. nikolz

    nikolz Гуру

    Сообщения:
    4.736
    Симпатии:
    452
    Когда приходит сообщение от ESP то в нем есть IP отправителя. Обычно в колбеке на полученное сообщение вытаскивается этот IP и по нему отправляется ответ.
    Все это есть в библиотеках по сокету. Если сообщения короткие (менее 1500 байт), то лучше использовать UDP с подтверждением (я так делаю).
     
  19. Gebiys

    Gebiys Новичок

    Сообщения:
    8
    Симпатии:
    0
    Значит здесь уже проброс портов не нужен. Верно? Links2004/arduinoWebSockets
    websocket - NodeMCU Documentation
     
    Последнее редактирование: 29 май 2018
  20. nikolz

    nikolz Гуру

    Сообщения:
    4.736
    Симпатии:
    452
    нет. проброс портов надо когда вы хотите из вне попасть во внутреннюю сеть без приглашения.
    А когда Вы из внутренней сети идете в интет - это обычное дело и ваc из инета пропускают без проблем так как вас ждут.
     

Поделиться этой страницей