передача аргумента в IPAddress esp8266
- Войдите на сайт для отправки комментариев
Втр, 23/02/2021 - 13:33
Здравствуйте, с праздником всех...
четто я туплю...есть работающая экспериментальная хрень на NodeMCU, там болтаются странички в тч и AJAX и все в общем то понятно. ОДНАКО! Есть желание сделать WEB конфигуратор для задания статикIP для NodeMCU , она должна:
по умолчанию стартануть например с IPAddress ip(192,168,88,252);
затем я получаю новый последний октет через форму и хочу ее перезапустить на новом IP чтото типа:
int last_octet = 154 ;
ip(192,168,88,last_octet);
но оно ругаицца:
handlers.h:40:26: error: no match for call to '(IPAddress) (int, int, int, int&)'
ip(192,168,88,last_octet);
^
exit status 1
no match for call to '(IPAddress) (int, int, int, int&)'
насколько я понимаю IPAddress ip(192,168,88,252); это не переменная, а объект класса и после объявления в нем ничего менять нельзя. Или все-таки можно ? Видимо надо тогда новый метод в библиотеке писать штоле ?
вы бы хотя б библиотеку указали, с которой работаете
вы бы хотя б библиотеку указали, с которой работаете
а что, может быть что-то другое кроме ESP8266WiFi.h?
https://github.com/esp8266/Arduino/blob/master/cores/esp8266/IPAddress.h
а так?
Спасиббо, вроде IP изменился
видимо надо попробовать перезапуск
ESP.deepSleep(1e6);
с чтением ip из EEPROM
вы вроде просили IP поменять, а в коде выполняете странные манипуляции с МАКадресом, а IP вообще не трогаете
однако после реконнекта сервер не отвечает ни на новом ни на старом IP
проверьте внимательно код, не инициализируете ли вы ВЕБ-сервер с конкретным IP и не происходит ли эта инициализация ДО СМЕНЫ адреса
Я при переконфигурировании просто записываю новый адрес в EEPROM, а на ребуте его читаю и ставлю. Так есть шанс подправиться, если неправильный задал.
А вообще, как мне помнится, сначала config, потом begin.
это реконнект, IP адрес я меняю в хэндлере формы (пока просто на какой то, как полностью разберусь, буду подставлять принятый из формы), после чего вызываю реконнект, который кстати вдруг сработал...
sadman41 угу, насколько я понял в Вашем варианте - вызов IPAddress в setupe - ключевое изменение. приду попробую тоже.
вроде работаить первый вариант.
не знаю ,почему в первый раз не прокатилло, теперь изменение IP происходить стабильно.
наверно пойло(амброзия) вспомогло :) скажу я вам ,пойло (на спн - нерж - 3.5 / царга 1м. отбор по-пару, из сахару на пакмайе и с термостатированием )получилось ИИИзюмительное.
теперь буду отлаживать алгоритм-
запуск из дефолта с дефолтным ip (наверно правильнее было бы как у точки доступа - собственная сеть и конектиться к ней, как у роутеров, но это попозжее)
страница конфигуратора в тч и IP/mac (так надо). запись параметров в eeprom
наверно все тки перезапуск , подхват новых параметров из епрома и запуск wifi с новыми параметрами.
на странице конфигуратора будет/есть submit-to-default или submit-to-new_param
sadman41 - begin то да, но объявление объектов IPAddress всегда показано перед setup. В setup_e еще не пробовал. в чем и загвоздка.