Обновление ESP8266 OTA с новым паролем Wi-Fi

Привет всем, у меня есть программа C#, которая позволяет мне загружать файл .BIN на мою плату ESP8266 (Wemos D1 mini), и она отлично справляется с обновлением кода .ino, если требуются обновления.

Тем не менее, мне интересно, как я буду это делать, если моя сеть Wi-Fi изменит пароль для доступа к Wi-Fi?

Я использую mDNS, чтобы не заботиться об IP-адресе Wi-Fi, но мне еще предстоит найти что-нибудь, что позволило бы мне выполнять обновление OTA, когда Wi-Fi изменил свой пароль с пароля, закодированного в файле .ino.

Итак, если я сохраню пароль в SPIFF, как я получу доступ к Wemos D1 mini, если пароль изменится, и мне нужно обновить пароль на Wemos D1 mini, чтобы отразить это изменение пароля? Мне казалось, что он не будет подключаться, так как старый пароль будет использоваться при запросе сделать OTA-обновление?

Возможно, я слишком много думал об этом или пропустил что-то очень очевидное, что я просматриваю, но любые идеи о том, как решить эту проблему, были бы замечательными!


person StealthRT    schedule 05.09.2018    source источник


Ответы (1)


Если ESP8266 больше не может подключаться к вашей сети Wi-Fi, вы всегда можете вместо этого запустить собственную точку доступа. Я сделал что-то подобное, и через пару минут после невозможности подключения он запустил Soft AP. Затем он позволит вам отправлять на него обновления прошивки или менять пароль через веб-API.

Пример обновления прошивки через Soft AP + сервер обновлений: https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266HTTPUpdateServer/examples/WebUpdater/WebUpdater.ino

ArduinoOTA должен просто работать в обычном режиме и в режиме программной точки доступа.

Помимо двух вышеупомянутых, вы всегда можете использовать режим «SmartConfig» ESP8266, который позволяет вам установить пароль без привязки к точке доступа через мобильное приложение. При этом вам не нужно обновлять прошивку только для смены пароля.

Чтобы включить режим SmartConfig:

WiFi.beginSmartconfig()
... 
WiFi.stopSmartConfig()
person Dawn Minion    schedule 06.09.2018
comment
Спасибо за ответ, Доун. Не могли бы вы предоставить код или ссылки на примеры кода? - person StealthRT; 06.09.2018
comment
@StealthRT — добавлен пример каждого вышеперечисленного. Я бы сказал, что лучше всего использовать сервер обновлений. По моему опыту, режим smartconfig не был очень надежным, но у меня никогда не было проблем с сервером. - person Dawn Minion; 06.09.2018
comment
Напевайте, что WebUpdater не работает. Похоже, он просто зацикливается, пока не подключится, но он использует жестко запрограммированные ssid и пароль, поэтому он никогда не будет, когда они изменятся? - person StealthRT; 06.09.2018