• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Два esp8266 в одной сети

igorman007

New member
Схемка примерно такая:
один esp8266 (AT v0.17 (если правильно помню)) работает в режиме sofp AP. На нём я создал TCP/IP сервак на порту 1336. Работает всё замечательно. и Putty, и Telnet с телефона, и программный TCP/IP клиент....в общем, всё хорошо. IP 192.168.4.1.
Второй esp8266 (AT v0.25) я запустил в режиме station, задал ему задачу - подключиться к первому esp, и попросить у него заданный IP, а именно - 192.168.4.199. Эту задачу он выполняет. Пишет там что-то про CONNECTED, получает заданный айпишник (проверял AT-командой). Дальше хуже:( я хочу на нём создать TCP/IP сервак (да, и здесь тоже)...прописываю всё так же: AT+CIPMUX=1, а далее AT+CIPSERVER=1,1336(порты перепробовал разные: и 1336, 80 и 1335 - разницы нет). Esp исправно на все мои действия отвечает OK. Но подключиться на созданный сервак у меня не выходит... 192.168.4.199:1336 - и тишина...
причём первый esp продолжает исправно работать и отвечать на любые запросы из сети...
 

igorman007

New member
Один esp в режиме Soft Ap - подключаюсь к нему. К нему подключаются: второй esp, мой телефон посредством встроенного wifi, wifi-адаптер с персонального компьютера. Все клиенты исправно получают свой Ip-адрес, более того, с компьютера, телефона я могу посредством tcp/ip клиента (самописного, Putty, телнет) подключиться к TCP/IP серверу первого esp (тот, который soft ap). Если же я пытаюсь со всего вышеперечисленного достучаться до сервера TCP/IP на втором esp (который station) ничего не получается. В качестве "роутинга", насколько я понимаю, выступают стандартные настройки soft ap у первого esp...чтобы было более подробно, расскажу про адреса:

soft ap -> первый esp -> IP-адрес по-умолчанию: 192.168.4.1 На 1336 порте создан TCP/IP сервер - до него достучаться реально
station -> второй esp -> IP-адрес задаю AT-командой (192.168.4.199) - проверяю, получает ли он нужный мне IP - получает, модуль говорит, что его айпишник именно тот, который мне нужен. Так же как и на первом eps, создаю на нём TCP/IP сервер (для определённости, пусть на порте 1335) - на команды получаю "ОК", но достучаться до него у меня уже не получается.
Putty -> по на стационарном компе -> IP-адрес динамический. Подключаюсь к первому esp посредством wifi-адаптера. Удачно стучусь по 192.168.4.1:1336, но достучаться до 192.168.4.199:1335 не получается
Telnet -> на телефоне -> IP-адрес динамический. Всё так же, как и с Putty

первый esp находится в комбинированном режиме (station + soft ap),но используется только как soft ap. Второй esp находится в режиме station и используется как station.

Я не понимаю, что делаю не так:(
 

igrushkin

Member
с компа телефон и esp-клиент пингуются?

и переведите esp-клиент на динамический ip, хотя бы временно, чтобы убедиться, что ip он получает
 

igorman007

New member
Первый esp (soft ap) пингуется хорошо. А вот клиенты между собой не пингуются.

192.168.4.1 - первый esp (soft ap)
192.168.4.100 - телефон
192.168.4.101 - ПК
192.168.4.199 - второй esp (station)

Конечно, могу попробовать со второго esp не брать статический ip, но, думаю, бесполезно - ведь комп и телефон берут динамические... а пинговать с компа телефон не получается
 

Вложения

igrushkin

Member
ну вот и корень проблемы. Думаю, что ESP вообще не способен маршрутизировать, он просто создает АР для связи только с ним.
Если нет роутера дома, попробуйте на компе создать АР и подключат всех к нему, все заработает
 

igorman007

New member
Спасибо! Я просто думал, что это базовые возможности soft ap, которое создаётся. С удовольствием бы от кого-то услышал 100% заявление, что esp8266 не поддерживает маршрутизацию... и вопрос можно закрывать. Просто не хотелось бы обходные пути делать:(
А путей я вижу два:
1.) тот, который предложили Вы. Использовать уже существующую сеть.
2.) писать свою маршрутизацию...она не будет сложной, но будет ДОЛГОЙ...и делать это будет неприятно:( слать сообщения всегда на первый esp, а он уже пусть их обрабатывает и пересылает данные дальше.
 

igrushkin

Member
When an ESP8266 acts as an access point, this allows other devices to connect to it and form a WiFi connection. However, it appears that two devices connected to the same ESP8266 acting as an access point can not directly communicate between each other. For example, imagine two devices connecting to an ESP8266 as an access point. They may be allocated the IP addresses 192.168.4.2 and 192.168.4.3. We might imagine that 192.168.4.2 could ping 192.168.4.3 and visa versa but that its not allowed. It appears that they only direct network connection permitted is between the newly connected stations and the access point (the ESP8266) itself.
 

igorman007

New member
@igrushkin
Спасибо большое! Буду знать!
Так... а какая-нибудь другая прошивка не сможет добавить данную функциональность?
 
Сверху Снизу