Web-сервер на базе ESP
-
forfrends
- Вымогатель припоя
- Сообщения: 546
- Зарегистрирован: Вс дек 30, 2012 00:32:06
- Откуда: Николаев / Украина
- Контактная информация:
Web-сервер на базе ESP
Всем привет!
В сети существует огромное количество примеров как создать HTML страничку на базе ESP8266/ESP32 и сделать ее доступной в своей локальной сети. Все это пафосно называют "Веб-сервер" или "управление ESP через интернет"... хотя интернетом здесь и не пахнет. Достаточно включить роутер (без подключения к интернету) и все будет работать...
Меня интересует другое: именно создание "сайта"-страницы на базе ESP8266/ESP32, который будет доступен через интернет с любой точки мира (как и любой нормальный сайт).
Все мои поиски в сети ничего не дали. Находит только примеры создания страниц, доступных только в локальной сети.
Может есть готовое решение? Ткните ссылкой.
Спасибо!
В сети существует огромное количество примеров как создать HTML страничку на базе ESP8266/ESP32 и сделать ее доступной в своей локальной сети. Все это пафосно называют "Веб-сервер" или "управление ESP через интернет"... хотя интернетом здесь и не пахнет. Достаточно включить роутер (без подключения к интернету) и все будет работать...
Меня интересует другое: именно создание "сайта"-страницы на базе ESP8266/ESP32, который будет доступен через интернет с любой точки мира (как и любой нормальный сайт).
Все мои поиски в сети ничего не дали. Находит только примеры создания страниц, доступных только в локальной сети.
Может есть готовое решение? Ткните ссылкой.
Спасибо!
Сделать своими руками всегда интересней чем просто купить и пользоваться
- Реклама
Re: Web-сервер на базе ESP
[uquote="forfrends",url="/forum/viewtopic.php?p=3752745#p3752745"]Находит только примеры создания страниц, доступных только в локальной сети.[/uquote]И после этого, следующим шагом, в роутере открываете доступ к этой странице (к её IP) снаружи. Т.е. - пробрасываете TCP-порт 80 (можно и какой-нить другой) с внешнего IP роутера на любой порт на вашем сервере. Всё - ваша страница в Интернете.
-
forfrends
- Вымогатель припоя
- Сообщения: 546
- Зарегистрирован: Вс дек 30, 2012 00:32:06
- Откуда: Николаев / Украина
- Контактная информация:
Re: Web-сервер на базе ESP
Для меня это темный лес. С роутерами связывался только 1 раз в жизни, когда обновлял прошивку...
У меня роутер DIR-615
Добавлено after 1 minute 42 seconds:
Могу скинуть форки "Веб морды" моего роутера.
Добавлено after 3 minutes:
В настройках роутера есть Мастер настройки виртуального сервера. Это не оно?

У меня роутер DIR-615
Добавлено after 1 minute 42 seconds:
Могу скинуть форки "Веб морды" моего роутера.
Добавлено after 3 minutes:
В настройках роутера есть Мастер настройки виртуального сервера. Это не оно?
Сделать своими руками всегда интересней чем просто купить и пользоваться
Re: Web-сервер на базе ESP
[uquote="forfrends",url="/forum/viewtopic.php?p=3752754#p3752754"]В настройках роутера есть Мастер настройки виртуального сервера. Это не оно?[/uquote]Не знаю. Вполне возможно. Попробуйте. Это же элементарно проверяется. На компе открываете в пассивном режиме любой TCP-порт (чем угодно, хоть терминалкой типа putty хоть NetView или etc.). Пробрасываете порт извне внутрь на комп, на открытый в терминалке TCP-порт. А потом снаружи другой терминалкой коннектитесь на внешний порт. Файрволлы только нужно отключить заблаговременно или сделать в них разрешение для входящих коннектов на этот порт.
[uquote="forfrends",url="/forum/viewtopic.php?p=3752754#p3752754"]У меня роутер DIR-615[/uquote]А у меня Mikrotik RB951G-2HnD
[uquote="forfrends",url="/forum/viewtopic.php?p=3752754#p3752754"]У меня роутер DIR-615[/uquote]А у меня Mikrotik RB951G-2HnD
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Web-сервер на базе ESP
а ещё нужно найти свой "сайт" в интернете... это или при каждом новом подключении узнавать, какой ip выдали роутеру или выпросить у провайдера белый ip (постоянный) или использовать службу dindns...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Реклама
Re: Web-сервер на базе ESP
и если у вас ip не прямой\белый а из внутренней сетки провайдера то ничего у вас не выйдет..
проверено..
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Web-сервер на базе ESP
это да за нат прова вам не светит...
обычно мобилные оперы не дают белый айпи
ам кабелные напротиф за доплату дают
обычно мобилные оперы не дают белый айпи
ам кабелные напротиф за доплату дают
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Re: Web-сервер на базе ESP
Привет![uquote="forfrends",url="/forum/viewtopic.php?p=3752745#p3752745"]Все мои поиски в сети ничего не дали. Находит только примеры создания страниц, доступных только в локальной сети.[/uquote]Отличие локальной сети от Internet только в IP-адресе. Ну, и в связности, т.е. в маршрутах прохождения пакетов, конечно. С точки зрения программирования микроконтроллера разницы никакой.
Если у Вас нет возможности получить IP-адрес в Internet для своего устройства, или организовать "маскарад", чтобы трафик на один из портов компьютера (роутера), имеющего адрес в Internet, переадресовывался Вашему устройству, можно сделать вот как:
Сделать страницу, которую будут видеть люди. Разместить её на каком-нибудь "хостинге", т.е. в специальном месте, где у компьютеров точно есть IP адреса в Internet. Действия посетителей страницы сохранять в файл в каком-то виде. Ну, типа, пользователь на этой странице нажал кнопку "включить светодиод" - в файл записывается текущая дата/время, и "1". Нажал кнопку "выключить светодиод" - записывается дата/время, и "0". Дальше Ваша ESP-шка раз в пять секунд (или в пять миллисекунд. или раз в час...) обращается на этот же сервер, и читает файл. Ну, и выполняет актуальные действия. Когда ESP успешно считала файл - на сервере его содержимое можно "обнулить", чтобы много информации на ESP не читать каждый раз.
Это называется polling. Чтобы не тратить ресурсы на установление соединения каждый раз, можно воспользоваться т.н. websockets. Я не использовал этой технологии на ESP32, не знаю, насколько хорошо она будет работать. Смысл в том, что микроконтроллер создаёт соединение к удалённому серверу (где лежит страничка, доступная всем), и это соединение "висит" открытым. Когда кто-то совершает действия на страничке, информация сразу (без записи в файл) отправляется через это открытое соединение на ESP. И микроконтроллер сразу выполняет нужные действия. Тут, наверное, нужно заметить, что "сразу" - это в промежуток от нескольких микросекунд до 30 секунд. Ну, а если ESP не подключена к серверу - действия можно записывать в файл. А можно просто показывать посетителям странички табличку "ушла на базу". С точки зрения безопасности решение с "отдельным" сервером для WEB единственное приемлемое. Если отдать веб-сервер на ESP "на растерзание" пользователям интернет, многие из которых не сильно обременены моральными принципами и желанием творить добро ближнему, этот веб-сервер очень скоро перестанет работать. А страничка на "большом" компьютере, специально настроенном на работу WEB-server-ом, имеет намного больше шансов выжить.
Перечитал написанное, вспомнился мем про троллейбус из буханки хлеба
Если у Вас нет возможности получить IP-адрес в Internet для своего устройства, или организовать "маскарад", чтобы трафик на один из портов компьютера (роутера), имеющего адрес в Internet, переадресовывался Вашему устройству, можно сделать вот как:
Сделать страницу, которую будут видеть люди. Разместить её на каком-нибудь "хостинге", т.е. в специальном месте, где у компьютеров точно есть IP адреса в Internet. Действия посетителей страницы сохранять в файл в каком-то виде. Ну, типа, пользователь на этой странице нажал кнопку "включить светодиод" - в файл записывается текущая дата/время, и "1". Нажал кнопку "выключить светодиод" - записывается дата/время, и "0". Дальше Ваша ESP-шка раз в пять секунд (или в пять миллисекунд. или раз в час...) обращается на этот же сервер, и читает файл. Ну, и выполняет актуальные действия. Когда ESP успешно считала файл - на сервере его содержимое можно "обнулить", чтобы много информации на ESP не читать каждый раз.
Это называется polling. Чтобы не тратить ресурсы на установление соединения каждый раз, можно воспользоваться т.н. websockets. Я не использовал этой технологии на ESP32, не знаю, насколько хорошо она будет работать. Смысл в том, что микроконтроллер создаёт соединение к удалённому серверу (где лежит страничка, доступная всем), и это соединение "висит" открытым. Когда кто-то совершает действия на страничке, информация сразу (без записи в файл) отправляется через это открытое соединение на ESP. И микроконтроллер сразу выполняет нужные действия. Тут, наверное, нужно заметить, что "сразу" - это в промежуток от нескольких микросекунд до 30 секунд. Ну, а если ESP не подключена к серверу - действия можно записывать в файл. А можно просто показывать посетителям странички табличку "ушла на базу". С точки зрения безопасности решение с "отдельным" сервером для WEB единственное приемлемое. Если отдать веб-сервер на ESP "на растерзание" пользователям интернет, многие из которых не сильно обременены моральными принципами и желанием творить добро ближнему, этот веб-сервер очень скоро перестанет работать. А страничка на "большом" компьютере, специально настроенном на работу WEB-server-ом, имеет намного больше шансов выжить.
Перечитал написанное, вспомнился мем про троллейбус из буханки хлеба
Re: Web-сервер на базе ESP
[uquote="musor",url="/forum/viewtopic.php?p=3752820#p3752820"]ам кабелные напротиф за доплату дают[/uquote]Некоторые и бесплатно дают. По дефолту.
-
forfrends
- Вымогатель припоя
- Сообщения: 546
- Зарегистрирован: Вс дек 30, 2012 00:32:06
- Откуда: Николаев / Украина
- Контактная информация:
Re: Web-сервер на базе ESP
Обратился я к своему провайдеру по поводу белого IP. Ответили что не предоставляют такой услуги.
Так что остается только вариант описанный AAX , или что-то похожее сделать.
Всем спасибо за помощь!
Так что остается только вариант описанный AAX , или что-то похожее сделать.
Всем спасибо за помощь!
Сделать своими руками всегда интересней чем просто купить и пользоваться
Re: Web-сервер на базе ESP
Вариант, как пишет AAX даже лучше - на хостинге быстрее открываться будет, работать будет с любым провайдером, безопаснее и т.д.
Времена "проброса портов" и динамического DNS уже прошли. Уже большинство домашних провайдеров и все мобильные не дают даже динамического IP. Дают "серые" за NAT - облом.
У меня так именно и реализовано. Я вот такую страничку делал для управления девайсом на ESP8266 - удаленная управлялка кондиционером (по ИК) + датчик T+H. На AngularJS + Bootstrap писал. Она при изменении значений каких-либо отправляет на сервер новые параметры. На сервере они сохраняются. Сервер - хостинг. А ESP оттуда уже забирает новые параметры. Т.е. веб-сервер не на самой ESP. Потому что дома у провайдера за натом всё-равно через инет не подключиться. Городить VPN и т.п. - органичения. А тут с любого места с инетом можно кондиционером управлять.
PS: Страничка выше - демка, к девайсу реальному не подключена, кликать можно ) Реальная страничка с девайсом в другом месте запаролена )
Времена "проброса портов" и динамического DNS уже прошли. Уже большинство домашних провайдеров и все мобильные не дают даже динамического IP. Дают "серые" за NAT - облом.
У меня так именно и реализовано. Я вот такую страничку делал для управления девайсом на ESP8266 - удаленная управлялка кондиционером (по ИК) + датчик T+H. На AngularJS + Bootstrap писал. Она при изменении значений каких-либо отправляет на сервер новые параметры. На сервере они сохраняются. Сервер - хостинг. А ESP оттуда уже забирает новые параметры. Т.е. веб-сервер не на самой ESP. Потому что дома у провайдера за натом всё-равно через инет не подключиться. Городить VPN и т.п. - органичения. А тут с любого места с инетом можно кондиционером управлять.
PS: Страничка выше - демка, к девайсу реальному не подключена, кликать можно ) Реальная страничка с девайсом в другом месте запаролена )
-
forfrends
- Вымогатель припоя
- Сообщения: 546
- Зарегистрирован: Вс дек 30, 2012 00:32:06
- Откуда: Николаев / Украина
- Контактная информация:
Re: Web-сервер на базе ESP
NStorm, мне примерно это и нужно.
Можете подробно описать как вы это сделали?
Можете подробно описать как вы это сделали?
Сделать своими руками всегда интересней чем просто купить и пользоваться
Re: Web-сервер на базе ESP
при таком подходе BLYNK самое оптимальнее и велосипед изобретать не нужно..
Re: Web-сервер на базе ESP
forfrends, весь исходник HTML доступен по ссылке. Кратко - при загрузке страничка читает один JSON файлик с сервера, где хранятся данные пришедшие ОТ ESP. ESP посылает их в скрипт PHP, который и обновляет этот JSON файлик. При изменении эл-ов управления на странице, он постит их в скрипт .PHP. Который просто делает проверку и сохраняет их в другой JSON файлик. Который периодически запрашивает ESP на предмет изменений.
Т.е. два скрипта PHP для изменения файлов JSON на веб-сервере просто. В JSON хранятся все параметры. Разделение на 2 - один данные от ESP, другой данные К ESP. Вместо PHP вариантов куча, но выбран пхп, т.к. он везде. Его на любой хостинг пихнуть можно без доп софта.
AndyGU70, с ПК blynk хрен рулится. Нужно приложение на смартфон. Это не всегда удобно. "Велосипед" имеет преимущества - не нужно ничего кроме браузера.
Т.е. два скрипта PHP для изменения файлов JSON на веб-сервере просто. В JSON хранятся все параметры. Разделение на 2 - один данные от ESP, другой данные К ESP. Вместо PHP вариантов куча, но выбран пхп, т.к. он везде. Его на любой хостинг пихнуть можно без доп софта.
AndyGU70, с ПК blynk хрен рулится. Нужно приложение на смартфон. Это не всегда удобно. "Велосипед" имеет преимущества - не нужно ничего кроме браузера.
Re: Web-сервер на базе ESP
[uquote="NStorm",url="/forum/viewtopic.php?p=3753281#p3753281"]Времена "проброса портов" и динамического DNS уже прошли. Уже большинство домашних провайдеров и все мобильные не дают даже динамического IP. Дают "серые" за NAT - облом.[/uquote]Не надо говорить за всех. То что есть в РФ, не обязательно справедливо для другой страны. А у ТС не РФ вроде как. Пока я жил в РФ, пользовался DynDNS (внешний IP был белый). Сейчас живу в другой стране - здесь провайдер сразу, по дефолту даёт белый статический IP. Причём насколько я видел - все здешние провайдеры так делают. О DynDNS уже забыл давно. Понятно, что здесь страна маленькая - видимо пул IP-адресов больше, но всё-же всё-же...
PS: В РФ вообще в последнее время всё больше и больше всего закрывается - постепенно снова опускается железный занавес....
PS: В РФ вообще в последнее время всё больше и больше всего закрывается - постепенно снова опускается железный занавес....
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Web-сервер на базе ESP
Простейший вариант - арендовать дешевый хостинг и настроить там переадресацию портов на свое соединение. На крайний случай - написать простенького сетевого демона, который будет ждать коннекта по какому-нибудь порту 12345 от вашей железяки, как коннект установлен, все внешние подсоединения к 80-му порту напрямую будут перебрасываться вам. Т.е. эдакий прокси получается, причем к обоим его концам надо подключаться...
Re: Web-сервер на базе ESP
jcxz, дело не в занавесах, а в нехватке IPv4 адресов. Это давно известный факт. Рекомендации всяких "развивающих Интернет" организаций давно уже рекомендуют не давать конечных юзерам статику. Зачем среднестатистической "домохозяйке" это, если у неё и без белого IP всё что ей нужно будет работать? Да 99% пользователей Интернета нафиг не нужен сейчас белый IP. Разве что для торрентов, чтобы больше пиров доступно было. Да и безопаснее это для "домохозяйки", когда до её устройство из "внешнего мира" не достучаться. Часто вон раньше роутеры домашние ломали и подвешивали на них спам всякий, когда они белым IP в интернете светились. Поэтому и фильтровать провайдеры начали. См PS.
В любом случае вешать хилую железку "жопой в интернет" во времена гигабитных DDoSов за копейки? Да её тупо боты всякие, сканирующие порты привалят. Нормальная практика разделять бэкэенд и фронтэнд нынче. И нет смысла поэтому сразу ESP вешать в инет.
"Прокси" по тем же причинам менее корректный способ. Уж если есть хостинг - выгрузите обработку работы с пользователем на него? Нахрена проксировать трафик на дохленький МК, когда есть целый ПК для обработки? Пусть ESP занимается своими МКшными делами, а веб-сервером пусть уже хостинг будет. Да даже бесплатный хостинг с PHP можно использовать для этих дел.
PS: Лично перешивал роутер у друга, который "ломанули". Обычный роутер с заводской прошивкой. Бот в сети знал уязвимость к нему. Поставили туда хитрожопый скрипт. Который во всех загружаемых HTML файлах дописывал своё скрипт с рекламой. Это было еще до массового перехода крупных сайтов на HTTPS, в основном HTTP был кругом. В итоге на всех нормальных с виду сайтах всплывала навязчивая реклама. И хрен догадаешься еще, что это не сайт сам такую рекламу себе поставил. Вот такая хитрожопая штука была. А могли и похуже чего сделать.
В любом случае вешать хилую железку "жопой в интернет" во времена гигабитных DDoSов за копейки? Да её тупо боты всякие, сканирующие порты привалят. Нормальная практика разделять бэкэенд и фронтэнд нынче. И нет смысла поэтому сразу ESP вешать в инет.
"Прокси" по тем же причинам менее корректный способ. Уж если есть хостинг - выгрузите обработку работы с пользователем на него? Нахрена проксировать трафик на дохленький МК, когда есть целый ПК для обработки? Пусть ESP занимается своими МКшными делами, а веб-сервером пусть уже хостинг будет. Да даже бесплатный хостинг с PHP можно использовать для этих дел.
PS: Лично перешивал роутер у друга, который "ломанули". Обычный роутер с заводской прошивкой. Бот в сети знал уязвимость к нему. Поставили туда хитрожопый скрипт. Который во всех загружаемых HTML файлах дописывал своё скрипт с рекламой. Это было еще до массового перехода крупных сайтов на HTTPS, в основном HTTP был кругом. В итоге на всех нормальных с виду сайтах всплывала навязчивая реклама. И хрен догадаешься еще, что это не сайт сам такую рекламу себе поставил. Вот такая хитрожопая штука была. А могли и похуже чего сделать.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Web-сервер на базе ESP
Можно и так. Только пыхпых - для обезьян, извиняюсь! Вы еще nodejs бы предложили.
Ужас какой!
Ужас какой!
Re: Web-сервер на базе ESP
Eddy_Em, php есть везде. На любом копеечном и даже бесплатном хостинге. Поэтому и он предложен. Похер на чем писать обработчик JSON, PHP тут легкий и простой способ. Хочешь красноглазить - пиши на сях. Только вот хрен куда свой бинарник потом впихнешь, кроме VPS. А его еще настраивать надо. Любителям геморроя ради красноглазия рекомендуется.
Re: Web-сервер на базе ESP
Eddy_Em, давайте угадаю: для людей, наверное, пайтон или руби, Господи спаси?
Там ещё Go в последние пару лет добавился. Да?


