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

Это делает 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 сети.

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

Понравился 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
Український переклад © 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