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

ESP01S не виден в роутере

Gercon2

New member
Здравствуйте!

Ввожу следующие AT-команды:

AT+CWMODE=1

OK
AT+CWJAP_DEF="ABRAKADABRA","19661117"
WIFI CONNECTED
WIFI GOT IP

OK
AT+CIFSR
+CIFSR:STAIP,"192.168.0.62"
+CIFSR:STAMAC,"aa:bb:cc:dd:ee:ff"

OK

Ожидаю увидеть на роутере в привязке IP и MAC адресов IP - адрес 192.168.0.62, но его там нет. Что надо сделать, чтобы он появился в привязках. Спасибо.
 

Gercon2

New member
У меня ESP поключен к компьютеру, а команды ввожу на компьютере с терминальной прграммы. А как сделать то, что Вы предлагаете - я не знаю.
 

pvvx

Активный участник сообщества
Ожидаю увидеть на роутере в привязке IP и MAC адресов IP - адрес 192.168.0.62, но его там нет. Что надо сделать, чтобы он появился в привязках. Спасибо.
Обычно надо подождать, пока роутер обновит отображение таблицы. Или пройдет время аренды адреса...
В других случаях, когда вы подключились повторно, в таблице роутера может не быть данного клиента...
Всё зависит от качества роутера - выводит ли он статические адреса в видимую вами таблицу и т.д.

Пробуйте на компе ping 192.168.0.62
 

CodeNameHawk

Moderator
Команда форума
Но проще попробовать ардуино, там много готовых примеров.
Но если за хотите вернуться на АТ, надо будет по новой прошить есп.
 

Gercon2

New member
Но проще попробовать ардуино
К этому и стремлюсь. Но это будет несколько позже, надеюсь.


Если хотите пробросить доступ из вне
Мне нужна самая малость.
В интернет я отправляю: IP : PORT и какой-то БАЙТ (символ)
IP -белый от провайдера
PORT - проброшенный порт для обращения роутера к ESP по локальному адресу 192.168.0.62
ESP передает этот БАЙТ в ARDUINO-UNO через UART.
ARDUINO-UNO реагирует на этот БАЙТ определенным образом, то есть дает комманды подключенным устройствам, формирует ответную строку ипосылыет эту строку в ESP
ESP отправляет эту строку в интернет.

Всего - навсего.

Если в вышепреведенном тексте заменить слово "ESP" на слово "КОМПЬЮТЕР", то это у меня успешно работает.
Но мне теперь надо реализовать вышеприведенный текст. То есть использовать ESP.
 

CodeNameHawk

Moderator
Команда форума
В интернет я отправляю: IP : PORT и какой-то БАЙТ (символ)
Если только отправлять, то пробрасывать порт нет необходимости и так будет все работать.
Если надо получать байт из интернета, то в вашем варианте, без проброса порта не обойтись.
Ну тут и кроется проблема, на есп обрушиться сканирование ее из интернета и попытки подключения, а это чревато проблемами
, так как есп довольно слабо для этого подходит.(есп32 пока не проверял, но есп может перестать отвечать от почти сразу до нормальной работы до 10 суток, но 50 суток не отработало ни разу)
Все то, что вы описали довольно просто сделать на есп(без второго модуля uno, хотя второй модуль сильно повышает надежность работы в целом).

Я похожее сделал, на есп через телеграмм.
Есп раз в 10 секунд или более проверяет в телеграмме нет ли ей новых сообщений, если есть выполняет то, что получила в сообщении.
Удобно в том, что сразу видно лог работы с многих устройств и есп сама может отправлять сообщение в телеграмм, типа "ALARM все перегрелось!"
 

CodeNameHawk

Moderator
Команда форума
А то, что в телеграмм сразу выскакивает нотификация на любом устройстве где стоит телеграмм, стоит того, что бы с этим разобраться, но для этого стоит сразу взять есп32, ну или хотя бы есп12 Е с 1МБ.
 

CodeNameHawk

Moderator
Команда форума
На моём роутере нет необходимости подключенного устройства, чтобы пробросить порт.
Screenshot_20240819-120830.png
Но есп сама должна подключаться с нужным ип, в ардуино это просто, в ат вроде тоже такое можно задать.
 

pvvx

Активный участник сообщества
Ну тут и кроется проблема, на есп обрушиться сканирование ее из интернета и попытки подключения, а это чревато проблемами
Внешнее сканирование не пройдет, если проброшен только один нестандартный порт.
AT прошивка открывает только 1 сокет и если затормозить (ограничить) трафик в роутере, чтобы не было возможности частого открытия-закрытия порта, то и других проблем тоже не будет. Плюс брандмауэр в роутере (DDOS атака) ограничит кол-во открытий-закрытий на порт.
Проблемы могут быть только если включить "вирт.сервер" в роутере и если программа в ESP на Arduino. ESP32 не спасет - там тоже обгрызанный TCP-IP стек и до нескольких одновременно открытых TCP соединений. Но этого достаточно чтобы получить дефрагментацию HEAP памяти и глюки в сети от обрезания TCP с TIME_WAIT.
 

CodeNameHawk

Moderator
Команда форума
Проблемы могут быть только если включить "вирт.сервер"
Виртуальный сервер пропускает только один порт, есть DMZ (demilitarized zone) вот эта да, валит со всех портов.
и если программа в ESP на Arduino
И что поменяется если не на ардуино?
 

Gercon2

New member
К моему роутеру подключено несколько станций с предустановленными IP-адресами (компьютеры, ноутбук, смартфоны...). Для некоторых проброшены порты для доступа из интернета. И они автоматически появляются самостоятельно в таблице роутера Привязка IP и MAC - адресов, даже если я принудительно их оттуда удаляю.

Я ожидаю, что и ESP01S со своими IP и MAC тоже должен появиться в этой таблице, но он там не появляется. А порт для ESP я планирую назначить 10200.
 

Gercon2

New member
Дополню #18. Если ESP перевожу в режим DHCP, то его IP и МАС в таблице привязки появляются, например с IP 192.168.0.101 или 192.168.0.102, в зависимости от тех моих станций, которые соединяются по DHCP.
 

pvvx

Активный участник сообщества
И что поменяется если не на ардуино?
Не будет C++ и особенно операций со string и объектами, что особенно фрагментирует HEAP память. Ещё хорошо-бы выкинуть RTOS со стеками и неуправляемой мультизадачностью.
Если вы сами описали цикл на СИ, в котором выполнение каждой подзадачи выделяет и освобождает память последовательно, то по выходу память не имеет фрагментов. Проблемы останутся с TCP стеком, но в Lwip есть опции назначить все буфера статическими - но это затребует объема RAM...

Если у вас какой-то web-сервер и выпускаете его в инет, то его следует проверить хотя-бы в apache-jmeter на "сотню пользователей" (кол-во одновременных обращений для теста падений и ошибок) и т.д..
 
Сверху Снизу