Как подключить esp8266 к wifi роутеру
Перейти к содержимому

Как подключить esp8266 к wifi роутеру

  • автор:

ESP8266 уроки. Подключение к сети Wi-Fi.

Возможность подключения устройства к сети Wi-Fi — очень мощная функция, которая открывает возможность использования интернет-протоколов для связи с другими устройствами. Например, после подключения к сети можем выполнять HTTP-запросы к серверу, что позволяет нам публиковать измерения датчиков, собранные ESP8266. И многое другое.

как подключить ESP8266 к сети Wi-Fi с помощью Arduino IDE.

Это делает ESP8266 очень хорошим микроконтроллером для реализации Интернета вещей. Другой важный фактор — это относительно дешевая стоимость устройства реализованных на ESP8266.

В предыдущем уроке рассказал, как можно подключиться к сети Wi-Fi с помощью ESP32.

Прежде чем приступить к уроку, нужно настроить Arduino IDE для работы с ESP8266.

Описание скетча подключение к сети Wi-Fi ESP8266.

Прежде всего, подключаем библиотеку ESP8266WiFi.h, которая сделает доступной глобальную переменную с именем WiFi, она является объектом класса ESP8266WiFiClass. В этом классе есть методы, необходимые для подключения к сети Wi-Fi.

#include

Чтобы сделать код более читабельным, создадим две глобальные переменные для хранения учетных данных, необходимых для регистрации в сети. Первый соответствует SSID (Service Set IDentifier), который является именем беспроводной сети, к которой мы хотим подключиться. Естественно, чтобы иметь возможность подключиться, нам также необходимо указать пароль от сети.

const char* ssid = "NetworkName"; const char* password = "NetworkPass";

Внимание , используйте учетные данные вашей сети.

Теперь мы укажем функцию настройки, в которой подключимся к сети. Но сначала откроем последовательное соединение, чтобы мы могли вывести результат работы программы.

Затем вызываем метод begin для объекта WiFi, передавая в качестве аргументов SSID (имя сети) и переменную пароля, указанные ранее. Это инициализирует подключение к сети.

WiFi.begin(ssid, password);

После этого выполним цикл while, пока соединение не будет установлено. Для этого можем вызвать метод status для объекта WiFi и дождаться, пока результат не совпадет с перечислением WL_CONNECTED. Между каждой итерацией мы вводим небольшую задержку, чтобы избежать постоянного опроса.

while (WiFi.status() != WL_CONNECTED)

После успешного установления соединения можем проверить IP-адрес, назначенный ESP8266, вызвав метод localIP . Это полезно, если мы хотим отправлять данные на ESP8266 из этой сети. Имейте в виду, что это локальный IP-адрес, и поэтому мы не можем связаться с устройством из-за пределов этой сети.

Serial.println(WiFi.localIP());

Полная функция настройки setup() показана ниже.

void setup () < Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) < delay(1000); Serial.println("Connecting.."); >Serial.println(WiFi.localIP()); >

Данный скетч не выводит информацию, если ESP8266 не подключилась к сети. Это может произойти, если у нас отключено сетевое оборудование или указаны неверные данные для подключения. Давайте дополним код и ограничим попытки подключения до 10, и вывод сообщения, если подключиться не удалось.

#include const char* ssid = "NetworkName"; const char* password = "NetworkPass"; byte tries = 10; // Попыткок подключения к точке доступа void setup() < Serial.begin(115200); WiFi.begin(ssid, password); while (--tries && WiFi.status() != WL_CONNECTED) < delay(500); Serial.println("."); >if (WiFi.status() != WL_CONNECTED) < Serial.println("Non Connecting to WiFi.."); >else < // Иначе удалось подключиться отправляем сообщение // о подключении и выводим адрес IP Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); >> void loop() <>

В мониторе порта должны увидеть следующий результат, если подключиться удалось.

В мониторе порта должны увидеть следующий результат, если подключиться удалось.

И вот такое уведомление, если ESP8266 не удалось подключиться к Wi-Fi сети.

И вот такое уведомление, если ESP8266 не удалось подключиться к Wi-Fi сети.

Этот пример показывает только основы подключения к сети Wi-Fi. В следующем уроке рассмотрим, как выполнять более сложные процедуры, такие как отправка HTTP-запросов.

Описание скетча подключение к сети Wi-Fi ESP8266.

Понравился ESP8266 уроки. Подключение к сети Wi-Fi ? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Форум ОКО

Какая логика работы Wi-Fi модуля ESP8266 ESP-01 v2, при настройке через конфигуратор по логах не понятно работает ли модуль выдает лог (Send to WiFi: AT) и все, к роутеру не подключается. Обновлял прошивку через команду 1234#60 до 7.4.4, не помогло притом начал ругатся конфигуратор, пришлось вернуться к 7.4.2. По настройке модуля через конфигуратор в инструкции не нашел информации

boby Гуру Повідомлень: 2665 З нами з: 25 грудня 2013, 20:16

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення boby » 02 грудня 2021, 08:23

если после Send to WiFi: AT нет ответа от вифи-модуля, то естественно далее ничего не будет.
в конфигураторе надо ввести ССИД вифи-сети и пароль, после чего и появятся попытки работать через вифи.

тяжело начинать с нуля, но тяжелее с глубокого минуса
duhastduhastovich Гість Повідомлень: 4 З нами з: 02 грудня 2021, 00:05

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення duhastduhastovich » 02 грудня 2021, 21:52

в том то и дело сид и пароль ввел, но без сим карты приходт в приложение сообщение о включении платы, и больше никаких реакций

boby Гуру Повідомлень: 2665 З нами з: 25 грудня 2013, 20:16

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення boby » 02 грудня 2021, 22:49

в логе будет видно, что имеено передается через вифи. если на андроид-приложение приходят события «через интернет» о включении прибора, то должны приходить также и при иных событиях, например, при пост/снятии охраны и при тревоге.

тяжело начинать с нуля, но тяжелее с глубокого минуса
duhastduhastovich Гість Повідомлень: 4 З нами з: 02 грудня 2021, 00:05

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення duhastduhastovich » 02 грудня 2021, 23:23

при старте идет опрос модема и вай фая с платы

Send to Modem: AT

Receive from Modem:
OK

а на модуль вай фай

Send to WiFi: AT

в ответ тишина, будто плата не видит модуль вай фай

duhastduhastovich Гість Повідомлень: 4 З нами з: 02 грудня 2021, 00:05

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення duhastduhastovich » 03 грудня 2021, 00:07

вычислил проблему трещина пайка на 2-ух штырьках вайфай модуля, пропаял, все заработало
boby Гуру Повідомлень: 2665 З нами з: 25 грудня 2013, 20:16

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення boby » 03 грудня 2021, 10:27

ну по логу (отсутвие ответа на команду Send to WiFi: AT) было три вектора поиска причины:
1) неверно вставлен вифи-модуль
2) проблема в порте на плате контроллера — физически не приходит сигнал на вифи-модуль
3) проблема в порте на вифи-модуле — не слышит или не передает ответ

тяжело начинать с нуля, но тяжелее с глубокого минуса
uleseev Гість Повідомлень: 2 З нами з: 31 січня 2022, 14:33

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення uleseev » 31 січня 2022, 15:22

Добрый день. Также столкнулся с проблемой wi-fi модуля. Когда сигнализация запускается, то видно, что на модуль передаются данные по подключению к wi-fi сети (логин, пароль). Подключение проходит успешно, данные передаются на сервер. Команды получаем:
Send to WiFi: \0

Receive from WiFi:
Recv 247 bytes

Receive from WiFi:
SEND OK

Receive from WiFi:
+IPD,33:SERVER CLOCK:2022-01-25 00:40:09

Send to WiFi: AT+CIPSENDEX=2048

Receive from WiFi:
OK

Спустя некоторое время — 10-20-30 часов на wi-fi модуле перестает промаргивать синий светодиод и модуль перестает отвечать на команды от сигнализации:

Send to WiFi: AT

Send to WiFi: AT

Send to Modem: AT+CPMS=»SM»
Receive from Modem:
+CPMS: 0,50,0,50,0,50

Если в этот момент на сим-карте нету интернета, то соединение с сервером не происходит и сигнализация начинает очень сильно тормозить — на входящий звонок может не ответить — просто идут гудки, но если долго ждать или перезвонить еще раз, то трубку все-таки поднимает. Я так понимаю стоит задача соединиться с сервером любым путем.

HWM ADC: C2
HWM SPI: 9A
HWM RS485: BE
HWM GSM: 5E
HWM GSM data analize: DD
HWM Core: 94
HWM I_O_TIMERS: 2C
HWM PRINT_DEBUG: 98
ALL TASKS ALIVE
ID: 05DDFF37-3737524D-51019018, flash size: 0100

Receive from Modem:
ERROR

Send to Modem: AT+CIPSHUT
Receive from Modem:
SHUT OK

Send to Modem: AT+CIPSTART=»TCP»,»
Send to Modem: ok.webhop.net
Send to Modem: «,»
Send to Modem: 31200
Send to Modem: «

Receive from Modem:
OK

Core Idle: 1EFFB7
Core Idle: 00

Receive from Modem:
STATE: IP STATUS

Проходит еще 2-3-5-10 часов и модуль wi-fi оживает, опять начинает отвечать на команды и синий светодиод на модуле опять промаргивает.
Пробовал отмыть плату wi-fi модуля от флюса, просмотрел на качество пайки — особых вопросов не возникло. Значит модуль wi-fi на замену?
Или может попробовать прошить его?

boby Гуру Повідомлень: 2665 З нами з: 25 грудня 2013, 20:16

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення boby » 31 січня 2022, 18:32

от чего питается прибор?
если исключить проблему «плохой контакт», то видимо подвисает вифи-модуль раз он не отвечает. как вариант можно попробовать попаять к плате вифи дополнительную небольшую емкость по питанию, может просадка есть. скажем 100 мкф.

тяжело начинать с нуля, но тяжелее с глубокого минуса
uleseev Гість Повідомлень: 2 З нами з: 31 січня 2022, 14:33

Re: настройка Wi-Fi модуля ESP8266 ESP-01 v2

Повідомлення uleseev » 01 лютого 2022, 17:04

boby писав: ↑ 31 січня 2022, 18:32 от чего питается прибор?
если исключить проблему «плохой контакт», то видимо подвисает вифи-модуль раз он не отвечает. как вариант можно попробовать попаять к плате вифи дополнительную небольшую емкость по питанию, может просадка есть. скажем 100 мкф.

Питается от внешнего ИБП на 14В с аккумулятором. Плохой контакт маловероятен, сам модуль вынимал и вставлял несколько раз, а штекер Wi-fi модуля пропаял, результата не дало. Попробую припаять емкость, спасибо за совет.

  • Загальний
  • ↳ Правила
  • ↳ Історії та відгуки
  • ↳ Найчастіші запитання
  • ↳ Рішення користувачів
  • Основне обладнання
  • ↳ БЕЗПЕКА НЕРУХОМОСТІ
  • ↳ GSM сигналізація OKO-TINY
  • ↳ GSM сигналізація OKO-SX
  • ↳ GSM сигналізація OKO-S2
  • ↳ GSM сигналізація OKO-7S
  • ↳ GSM сигналізація OKO-EX
  • ↳ GSM сигналізація PRO-X
  • ↳ Готові комплекти
  • ↳ МОНІТОРИНГ ТРАНСПОРТУ
  • ↳ GSM автосигналізація АВТО-8С
  • ↳ GSM автосигналізація КСК-1
  • ↳ GPS/GSM трекер OKO-NAVI-8С
  • ↳ GPS/GSM трекер OKO-DUT
  • ↳ GSM маяк СОВА
  • ↳ ЕЛЕМЕНТИ РОЗУМНОГО БУДИНКУ
  • ↳ GSM розетка L-ДОМОВИЙ-8С
  • ↳ GSM розетка ДОМОВИЙ-3
  • ↳ РАДІО ОБЛАДНАННЯ
  • ↳ Приймач радіодатчиків та брелоків RF-4R
  • ↳ Репітер радіодатчиків та брелоків RF-REPITER
  • ↳ Wi-Fi ДАТЧИКИ
  • ↳ Wi-Fi датчик відкриття OKO-WiFi DOOR
  • ↳ Wi-Fi датчик протікання OKO-WiFi FLOOD
  • Програмні продукти
  • ↳ TCP сервер ОКО (Monitor OKO)
  • ↳ Програма-пульт ОКО (OKO-online)
  • ↳ WEB сервер ОКО
  • ↳ Трекер OKO-CHILD и Контроль OKO-PARENT
  • ↳ Додаток OKO-Control під iOS
  • ↳ Додаток OKO-PRO під Android
  • Зняті з виробництва
  • ↳ ЛІНІЙКА ST
  • ↳ GSM сигналізація OKO-U2
  • ↳ GSM сигналізація OKO-PRO
  • ↳ GSM сигналізація ДОМ-3
  • ↳ GSM розетка ДОМОВИЙ-8С
  • ↳ ЛІНІЙКА U
  • ↳ GSM сигналізація OKO-S
  • ↳ GSM сигналізація OKO-U
  • ↳ GSM автосигналізація OKO-AVTO
  • ↳ GSM автосигналізація АВТО-2
  • ↳ GPS/GSM трекер OKO-NAVI
  • ↳ GPS/GSM трекер NAVI-24
  • ↳ GSM сигналізація OKO-DOM
  • ↳ GSM сигналізація ДОМ-2
  • ↳ GSM розетка ДОМОВИЙ
  • ↳ ЛІНІЙКА E
  • ↳ GSM сигналізація OKO-ECONOM
  • ↳ GSM сигналізація OKO-EU
  • ↳ GSM автосигналізація OKO-E+GPS
  • ↳ ЛІНІЙКА W
  • ↳ GSM сигналізація OKO-0W
  • ↳ GSM сигналізація OKO-1W
  • ↳ GSM сигналізація OKO-2W
  • ↳ ІНШЕ ОБЛАДНАННЯ
  • ↳ Приймач радіодатчиків та брелоків OKO-RF
  • Торгова марка ОКОСписок форумів
  • Часовий пояс UTC+02:00
  • Видалити файли cookie

Працює на phpBB® Forum Software © phpBB Limited

Український переклад &copy 2005-2020 Українська підтримка phpBB

Нужна помощь Связка: МК->ESP8266->Wi-Fi роутер->ПК. Как организовать?

Добрый день, принимайте новичка в свои ряды
Понадобилось соединить микроконтроллер с ПК для обмена различной информацией. Выбор пал на модуль ESP8266, дабы организовать локальную связь через Wi-Fi (в дальнейшем, возможно обмен будет через глобальную сеть). Также необходимо исключить AT-команды и т.п, так как МК должен получать от модуля «голые» данные (т.е. что отправили с ПК, то и пришло на МК и наоборот).
Сразу скажу, что во всем, что касается сетей и IoT я новичок, поэтому буду признателен за информативные ссылки по по моей задаче.
Также интересует какие прошивки можно использовать для решения моей задачи (если будут с примерами, то вообще идеально).
Ушел курить мануалы .

Юрий Ботов
Moderator

Команда форума
Arduino для 8266 в помощь. https://esp8266.ru/arduino-ide-esp8266/

isx
New member

Спасибо за ссылку. Сижу, читаю
Я правильно понимаю, что для такой связки можно соединить МК с ESP через UART, настроить модуль в режим клиента, обратиться к роутеру используя его ip и порт (которые нужно заранее прописать в модуль) и получить ip и порт для модуля. Далее, с помощью ПК можно обратиться к модулю по ip и порту (которые ему дал роутер) и передавать какие-либо данные.
Или я что-то путаю?

Юрий Ботов
Moderator

Команда форума

1. обеспечить необходимые «подтяжки ног» если их нет на используемой у вас плате
2. соединить через uart
3. залить из arduino ide в esp скетч, что то вроде: Arduino/BasicHttpClient.ino at master · esp8266/Arduino · GitHub (он получает ip от роутера по dhcp, но можно и фиксрованный ip в скетче прописать) .
4.

Далее, с помощью ПК можно обратиться к модулю по ip и порту (которые ему дал роутер) и передавать какие-либо данные.

видимо путаете. поскольку раньше говорили о клиенте. Клиент сам должен к кому то подключаться. Если надо подключиться с компьютера к esp то esp должен быть сервером Arduino/AdvancedWebServer.ino at master · esp8266/Arduino · GitHub правда этот скетч немного не то делает. тут компьютер должен подключаться по wifi не к роутеру а к самому esp8266. Ну. это стандартный пример. Разобравшись думаю сможете немного его переделать.

Последнее редактирование: 3 Мар 2018

isx
New member

1,2,3 — это само собой .Я с esp и сетями впервые работаю, а с МК и внешними компонентами уже не первый год ковыряюсь)
4. Ну ПК должен подключаться к esp через роутер.
Что-то я совсем запутался. Это получается, что у нас и роутер будет сервером и модуль тоже сервером? Но тогда получается, что ПК по той же схеме подключается к роутеру (который тоже присваивает ему некий ip и порт) и в сети у нас одни серверы??

pvvx
Активный участник сообщества
  • SoftAP — неполноценная точка доступа, к которой подключаются станции WiFi. Кол-во подключенных станций сильно ограничено — 3..5 шт.
  • STA — (WiFi station) — WiFi клиент, который подключается к AP.
  • SoftAP+STA — одновременная работа в режиме SoftAP и STA.
isx
New member

А мне тогда как нужно настроить модуль, чтоб с помощью него обмениваться данными с ПК через роутер?

pvvx
Активный участник сообщества

А мне тогда как нужно настроить модуль, чтоб с помощью него обмениваться данными с ПК через роутер?

В режим Station («WiFi клиент» по русски).
Роутер у вас работает в режиме AP («WiFi точка доступа» по русски).

Последнее редактирование: 4 Мар 2018

isx
New member

Ооо. Теперь стало понятнее. Спасибо) Пойду дальше шерстить Arduino-esp.
Вопросы которые назрели по ходу дела)
1. А как между собой общаются два ПК через интернет, каждый из которых подключен к своему роутеру (например два ноута из разных городов. подключенные к интернету через роутеры)? Как роутер определяет от какого подключенного устройства куда послать информацию и какую инфу передать какому из подключенных к нему устройств? Например я отправляю файл с ноута1, и в ноуте1 указываю, что данный файл отправляется по адресу 192.124.433.234 (адрес роутера2). Далее эта информация поступает в роутер1 и передается в сеть. Из сети эти данные поступают в роутер2. Как он определяет что файл предназначен именно ноуту2, а не, к примеру, телефону2 (тоже подключенному к роутеру2)?
2. Какую роль во всей этой цепочке (пример из пункта 1) играют порты?
3. Может ли esp, будучи клиентом и подключенная к серверу (роутеру) быть одновременно и сервором для другого клиента (например мобильного телефона)?

Введение. Подключение к WiFi

ESP8266 – мощный китайский микроконтроллер с WiFi на борту. Это позволяет делать на его основе проекты с доступом в Интернет!

  • Если вы уже работали с Arduino и первый раз держите в руках плату на базе esp8266 (в наборе GyverKIT это плата Wemos Mini) – обязательно изучите урок по особенностям данного микроконтроллера и отличиям от обычных плат Arduino.
  • Для работы с Wemos нужно установить поддержку данных плат в Arduino IDE: на сайте набора в блоке Начало работы есть отдельная инструкция по настройке.

Работать с платой через WiFi есть два способа:

  • Подключить плату к домашнему WiFi роутеру (режим STA) – для работы в локальной сети или через Интернет
  • Настроить плату как точку доступа (режим AP) и подключиться к ней со смартфона

Подключение к роутеру

  • Подключаем в скетч встроенную библиотеку ESP8266WiFi.h
  • Переводим режим работы в STA через WiFi.mode(WIFI_STA) – необязательно, если до этого режим работы не изменялся
  • Инициируем подключение к WiFi роутеру:
    • Вызываем WiFi.begin(WIFI_SSID) – с указанием названия незащищённой сети (без пароля)
    • Вызываем WiFi.begin(WIFI_SSID, WIFI_PASS) – с указанием названия сети и пароля
    • Для удобства настройки можно вынести логин и пароль в начало программы через #define

    После успешного подключения можно вывести IP адрес платы в локальной сети роутера при помощи WiFi.localIP() .

    Полный код примера:

    #include #define WIFI_SSID «Alex» #define WIFI_PASS «pass» void setup() < Serial.begin(115200); WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) < delay(500); Serial.print("."); >Serial.println(«Connected»); Serial.println(WiFi.localIP()); > void loop()

    Вывод монитор порта:

    . Connected 192.168.1.214

    Скриншот со страницы конфигурации роутера. Плата есть в списке подключенных устройств:

    Создание точки доступа

    • Подключаем в скетч встроенную библиотеку ESP8266WiFi.h
    • Переводим режим работы в AP через WiFi.mode(WIFI_AP)
    • Создаём точку доступа:
      • WiFi.softAP(AP_SSID) – сеть без пароля. Указываем только имя
      • WiFi.softAP(AP_SSID, AP_PASS) – сеть с паролем

      Полный код примера:

      #include #define AP_SSID «ESP» void setup() < Serial.begin(115200); WiFi.mode(WIFI_AP); WiFi.softAP(AP_SSID); >void loop()

      Теперь можно подключиться к плате со смартфона как к точке доступа WiFi. Примечание: по умолчанию в своей сети плата имеет IP адрес 192.168.4.1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *