Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.
Видеообзор
Общие сведения
ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX . На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Работа с AT командами
Подключение и настройка
В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
Для примера подключим модуль Wi-Fi к платформе Iskra Neo.
Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
SoftwareSerial
Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и передаём ему пины TX и RX SoftwareSerial mySerial(8, 9); // serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
HardwareSerial Mega
На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:
Serial1: пины 19(RX1) и 18(TX1) ;
Serial2: пины 17(RX2) и 16(TX2) ;
Serial3: пины 15(RX3) и 14(TX3) .
Список поддерживаемых плат:
Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
Примеры работы
Рассмотрим несколько примеров по работе с «AT-командами»
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»:
Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open Wireless Network «FaryLink» #120
mawo0030 opened this issue Nov 22, 2020 · 2 comments
Open Wireless Network «FaryLink» #120
mawo0030 opened this issue Nov 22, 2020 · 2 comments
Comments
mawo0030 commented Nov 22, 2020
I successfully compiled the printer-monitor today, after setting up Wifi everything runs smooth, except that the ESP8266 spawns an unwanted open Network now, SSID «FaryLink», see screenshot:
I tried connecting to it, it has IP 192.168.4.1 and DHCP enabled as far as I can see.
There’s a discussion on StackExchange https://arduino.stackexchange.com/questions/47806/what-is-farylink-access-point on the subject with a proper solution:
after adding «WiFi.mode(WIFI_STA);» in the servers constructor, the mysterious FairyLink was removed. THX – clockw0rk Dec 16 ’17 at 13:53
So I guess that line should be added somewhere in the printer-monitor.ino.
The text was updated successfully, but these errors were encountered:
Помогите прошить Nodemcu
Заказал на Али очередную nodemcu на СH340.
Возникла с ней такая проблема. Через ArduinoIDE зашил в нее скетч, который при невозможности соединиться с роутером создает свою сеть и по адресу 192.168.4.1 позволяет зайти и задать сеть и пароль. Скетч прошился, но точка доступа почему-то носит название на ESP. а FARYLINK-. По 192.168.4.1 зайти нельзя, refused. При этом устройство нормально к этой nodemcu коннектится и получает IP 192.168.4.2. Прошил тот же скетч со стиранием данных WIFI, ничего не изменилось. Прошил с удалением всего, появилась точка доступа ESP. но с 192.168.4.1 то же самое. Пробовал иные адреса 192.168.0.1 , 192.168.1.1 — тот же результат.
Подскажите, что это может быть и как победить?
Устройство нормально определяется в Диспетчере устройств, видно в ArduinoIDE, нормально загружает в себя скетчи.
Что еще можно предпринять?
lookingooder
Member
Не знаю, поможет ли, у меня смартфон на андроиде подключается к WiFi сети ESP, но не может зайти в него через браузер пока не отключишь передачу данных SIM карты (т.е. приходится отключать телефонный интернет).
CodeNameHawk
Moderator
Команда форума
Устройство нормально определяется в Диспетчере устройств, видно в ArduinoIDE, нормально загружает в себя скетчи.
Что еще можно предпринять?
Dalis
New member
Не знаю, поможет ли, у меня смартфон на андроиде подключается к WiFi сети ESP, но не может зайти в него через браузер пока не отключишь передачу данных SIM карты (т.е. приходится отключать телефонный интернет).
Спасибо, попробовал. Ничего не изменилось.
Dalis
New member
А не могли бы вы описать, что с этим мне делать дальше?
nikolz
Well-known member
Заказал на Али очередную nodemcu на СH340.
Возникла с ней такая проблема. Через ArduinoIDE зашил в нее скетч, который при невозможности соединиться с роутером создает свою сеть и по адресу 192.168.4.1 позволяет зайти и задать сеть и пароль. Скетч прошился, но точка доступа почему-то носит название на ESP. а FARYLINK-. По 192.168.4.1 зайти нельзя, refused. При этом устройство нормально к этой nodemcu коннектится и получает IP 192.168.4.2. Прошил тот же скетч со стиранием данных WIFI, ничего не изменилось. Прошил с удалением всего, появилась точка доступа ESP. но с 192.168.4.1 то же самое. Пробовал иные адреса 192.168.0.1 , 192.168.1.1 — тот же результат.
Подскажите, что это может быть и как победить?
Устройство нормально определяется в Диспетчере устройств, видно в ArduinoIDE, нормально загружает в себя скетчи.
Что еще можно предпринять?
возможно надо в вашем скетче заменить IP адрес.
CodeNameHawk
Moderator
Команда форума
Мой ответ выше для другой темы, сюда попал случайно.
Скетч прошился, но точка доступа почему-то носит название на ESP. а FARYLINK-. По 192.168.4.1 зайти нельзя, refused.
Если ранее в есп заливали другие прошивки, она может сама подключится к последней сети.
Пробуйте залить пример из ардуино иде, в котором есть подключение к сети и проветрить работает ли.
Ну и питание должно быть «правильным.»
Покажите скриншоты заливки.
Dalis
New member
Мой ответ выше для другой темы, сюда попал случайно.
Если ранее в есп заливали другие прошивки, она может сама подключится к последней сети.
Пробуйте залить пример из ардуино иде, в котором есть подключение к сети и проветрить работает ли.
Ну и питание должно быть «правильным.»
Покажите скриншоты заливки.
К сети может она и подключалась. У китайцев. У меня этот скетч по работе с вайфай без проблем крутится на трех есп-шках, прошились с первого раза. Но их я у другого продавца брал. А эта не запустилась.
Питание правильнее некуда, все мои есп-шки на нем без проблем работают.