Esp8266 не подключается к wifi
Это черновик статьи.
Здесь я постараюсь описывать варианты решения проблем со стабильностью прошивки. Если у вас есть что добавить, то отписываемся через обратную связь.
При некоторых ситуациях ESP8266 может работать не стабильно, то теряется связь, то зависает или перезагружается. Нормальное состояние работы прошивки - это когда время работы модуля исчисляется месяцами, если конечно электрики не подведут..
Причины, из-за которых невозможно зайти на веб интерфейс (модуль не пингуется):
1. Модуль завис или постоянно перезапускается.
2. Потеряна связь по WI-FI.
Как определить какая именно причина недоступности модуля в Вашем случае ? :
Если причина в связи Wi-Fi , то на дисплеях данные будут меняться, так же будут отрабатываться функции модуля, например функция KEY у прерываний. Термостат и Логический модуль будут отрабатывать действия при изменений внешних условий.
При обрыве связи Wi-FI время работы(Uptime) не сбрасывается.
Решение проблем с зависанием и перезапуском модуля
Хотя в модуле реализован механизм перезапуска при зависании (Watchdog), но в некоторых случаях он не спасает. Чаще этот механизм работает и модуль просто перезапускается.
Частые причины зависаний и перезапуска:
1. Не хватает тока от блока питания, требуется не менее 300мА.
2. Помехи по питанию. Спасает подключение электролита рядом с модулем на 200 мкф и больше. Рекомендуется установка керамического конденсатора на 0.1 мкф.
3. Импульсные помехи вблизи модуля. Необходимы как можно короткие провода к устройствам и/или оптическая развязка.
4. Мало свободного ОЗУ. Не старайтесь собирать прошивку с максимальным количеством функций. Если объём свободного ОЗУ меньше 12кб (для SSL функций меньше 25кб) , то возможны проблемы в работе.
Решение проблем с обрывами связи WI-FI
2. Конфликт IP адресов в сети. Попробуйте задать другой IP адрес вручную в настройках модуля.
3. Роутер отключает wifi связь устройству из-за бездействия. Помогает включение какой либо отправки на сервисы статистики.
4. Плохая совместимость с роутером. Точных данных по этой проблеме нет. Может помочь настройка параметров роутера, к сожалению эта настройка уменьшает скорость работы сети Wi-Fi:
-Ширина канала ставится 20мбит/с вместо автовыбора 20/40.
-Уменьшаем скорость сети путем выбора стандарта WI-FI вместо IEEE 802.11n ставим IEEE 802.11g или даже IEEE 802.11b.
В некоторых случаях более новый SDK может работать стабильнее, чем рекомендуемый SDK 1.3.0. Но последние SDK более ресурсоёмкие и количество полезных функций влазит меньше в прошивку.
Самый оптимальный вариант - это использовать отдельный роутер для сети модулей ESP8266, например купив в китае 3G/4G Router за $ 7 .
У ESP8266 есть несколько общих проблем, особенно при попытке записать новую прошивку или загрузке скриптов.
Вот подборка наиболее распространенных проблем с ESP8266 и способы для их исправления.
Устранение неполадок ESP8266 - NodeMCU Flasher
Где скачать флешер NodeMCU?
Перейдите в репозиторий GitHub флешера NodeMCU и загрузите флешер для вашей версии Windows, нажав кнопку «Raw»:
Какие настройки следует использовать с флешером NodeMCU?
Флешер NodeMCU уже поставляется с правильными настройками по умолчанию.
Настройки по умолчанию:
После нажатия кнопки «Flash» ничего не происходит, прошивальщик NodeMCU не запускает процесс перепрошивки
Если вы нажали кнопку «Flash» и ничего не происходит . Это может быть одно из двух:
- ESP не находится в режиме прошивки (перепроверьте, подключен ли GPIO 0 к GND при включении питания)
- программатор FTDI не может подать достаточный ток на ESP
Проблема 1 - Как заставить ESP перейти в режим прошивки:
Если он все еще сообщает «Ожидание MAC», попробуйте следующее:
- Подключите провод от вашего reset ESP8266 к GND
- Отсоедините этот провод от GND и присоединитесь к VCC
Повторите шаги несколько раз, пока ESP не перезагрузится, и, скорее всего, флешер NodeMCU сможет обнаружить ESP и начать процесс перепрошивки.
Проблема 2. Если FTDI не может обеспечить достаточный ток, возможно, придется купить новый программатор FTDI или подключить ESP8266 к внешнему источнику питания.
Флешер NodeMCU зависает или останавливается на определенном проценте
- Отключите питание от ESP + FTDI: Закройте окно флешера NodeMCU
- Подключите ESP + FTDI к компьютеру снова
- Откройте флешер NodeMCU и попробуйте скорость передачи 19200 бод
Если этот процесс завершится неудачно, повторите ту же процедуру для следующих скоростей передачи (38400, 57600, 74880 и 115200).
Ппо крайней мере 5 человек столкнулись с той же проблемой, и этот способ решил ее.
Как должен выглядеть NodeMCU после успешной прошивки?
У него должна быть зеленая стрелка внизу слева.
Разблокировка программатора FTDI на ПК с Windows
В качестве альтернативы можете связаться с продавцом, который продал программатор FTDI.
Если возникли проблемы с установкой драйверов FTDI в Windows 7/8 / 8.1 / 10, вполне вероятно, что FTDI заблокирован.
Устранение неполадок ESP8266 - ESPlorer IDE
ESPlorer IDE Ошибка: разрешен только один tcp сервер
Программирование по порядку.
В этом скетче модуль пытается подключится к точке доступа и при не удачной попытке сам становится точкой доступа.
Здравствуйте. Пример хороший, но работает не полностью. К точке доступа вифи подключается и отключается (т.к. срабатывает режим энергопотребления, т.к. нет данных для передачи) и в итоге свисток переходит в режим точки доступа
Вот этого не понял. Откуда вы взяли, что срабатывает режим энергосбережения? Что вы видите в терминале при загрузке?
Так и не подскажешь, что там у вас происходит. В терминале, что пишет при загрузке?
Либо не правильно установлена arduino ide и поддержка платы. Либо Путь к файлу скетча содержит русские буквы.
Конечно нельзя делать сети с одинаковыми именами и тем более паролями.
Поставьте два роутера рядом и сделайте у них одинаковые настройки. Что случится?
В алгоритме сделано так, чтобы он создавал сеть только тогда, когда не подключается к вайфаю.
Так почему же он ее созадет?
Если алгоритм мой и не исправлен, то такого быть не может (если только не баг). Единственный случай если вы зададите имя AP такое же как вашего роутера и такой же пароль.
та же беда. как решили проблему?
добрый день
помогите пожалуйта
у меня при компеляции выскакивает такая ошибка
C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory
А подскажите, в чём хитрость поднимать АР функцией типа bool, а не void?
Конечно можно и void иногда требуется поднять флаг и использовать его дальше в коде, но не в этом случае.
Для платы вы загружаете ядро(пакет) это стандартный набор библиотек для этой платы. То есть вам не нужно искать и устанавливать эту библиотеку дополнительно.
У меня плата UNO R3 + WIFI. Это как UNO с подключённым модулем ES8266.
Подскажите пожалуйста. Почему модуль не меняет имя и пароль у меня, при использовании вашей проги. И каким способом выбирается ip адресс?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Это делает ESP8266 очень хорошим микроконтроллером для реализации Интернета вещей. Другой важный фактор - это относительно дешевая стоимость устройства реализованных на ESP8266.
В предыдущем уроке рассказал, как можно подключиться к сети Wi-Fi с помощью ESP32.
Прежде чем приступить к уроку, нужно настроить Arduino IDE для работы с ESP8266.
Описание скетча подключение к сети Wi-Fi ESP8266.
Прежде всего, подключаем библиотеку ESP8266WiFi.h, которая сделает доступной глобальную переменную с именем WiFi, она является объектом класса ESP8266WiFiClass. В этом классе есть методы, необходимые для подключения к сети Wi-Fi.
Чтобы сделать код более читабельным, создадим две глобальные переменные для хранения учетных данных, необходимых для регистрации в сети. Первый соответствует SSID (Service Set IDentifier), который является именем беспроводной сети, к которой мы хотим подключиться. Естественно, чтобы иметь возможность подключиться, нам также необходимо указать пароль от сети.
Внимание , используйте учетные данные вашей сети.
Теперь мы укажем функцию настройки, в которой подключимся к сети. Но сначала откроем последовательное соединение, чтобы мы могли вывести результат работы программы.
Затем вызываем метод begin для объекта WiFi, передавая в качестве аргументов SSID (имя сети) и переменную пароля, указанные ранее. Это инициализирует подключение к сети.
После этого выполним цикл while, пока соединение не будет установлено. Для этого можем вызвать метод status для объекта WiFi и дождаться, пока результат не совпадет с перечислением WL_CONNECTED. Между каждой итерацией мы вводим небольшую задержку, чтобы избежать постоянного опроса.
После успешного установления соединения можем проверить IP-адрес, назначенный ESP8266, вызвав метод localIP . Это полезно, если мы хотим отправлять данные на ESP8266 из этой сети. Имейте в виду, что это локальный IP-адрес, и поэтому мы не можем связаться с устройством из-за пределов этой сети.
Полная функция настройки setup() показана ниже.
В мониторе порта должны увидеть следующий результат, если подключиться удалось.
И вот такое уведомление, если ESP8266 не удалось подключиться к Wi-Fi сети.
Понравился ESP8266 уроки. Подключение к сети Wi-Fi ? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Читайте также: