Підключення і настройка wifi модуля esp8266-01

Підключення та налаштування WiFi модуля ESP8266-01

Розбиратися ми будемо на основі самого дешевого і популярного WiFi модуля ESP8266-01. Купити WiFi модуль ESP8266-01 можна у нас на сайті.

Підключення і настройка wifi модуля esp8266-01

Один з головних плюсів такого модуля це наявність пам'яті і свого мікроконтролера на платі, що дозволяє працювати йому самостійно, завантаживши скетч безпосередньо в сам модуль.

Модифікацій WiFi модуля ESP8266 насправді досить багато і перераховувати їх тут ми не будемо, навчившись працювати з одним, Ви без проблем зможете почати працювати і з іншими. Хочеться відразу відзначити, що робота з WiFi може здатися досить не простим заняттям, і якщо у Вашому багажі мало закінчених проектів, краще поки відмовитися від WiFi зв'язку і використовувати в своїх проектах радіозв'язок, робота з якою набагато простіше для розуміння. По роботі з WiFi модулями створюють цілі співтовариства і тематичні форуми, що зайвий раз доводить наскільки більшості людей важко відразу розібратися з даним видом зв'язку, а перечитуючи всю інформацію, у більшості людей просто опускаються руки. Швидше за все і мені не вдасться всю важливу інформацію вмістити в рамках тільки однієї цієї статті, та й немає в цьому сенсу, інакше вийде чергова плутанина. Я спробую піти по шляху суворої послідовності найважливіших моментів, щоб Ви змогли почати розуміти принцип роботи даного виду зв'язку і далі вже просто розвивати самостійно свої навички в цьому напрямку.

І так, давайте приступимо і для початку розберемо висновки WiFi модуля ESP8266-01.

Підключення і настройка wifi модуля esp8266-01

VCC - харчування модуля від 3V до 3.6V

RST - висновок Reset відповідає за перезавантаження модуля.

CH_PD - "chip power-down" при подачі живлення на нього активізується робота модуля.

TX - передача даних (UART інтерфейс)

RX - прийом даних (UART інтерфейс)

GPIO0 - порт введення / виводу загального призначення

GPIO2 - порт введення / виводу загального призначення

Висновки GPIO0 і GPIO2 - це точно такі ж цифрові висновки, з якими ми працюємо на платах Arduino для взаємозв'язку з різними датчиками, і застосовуються вони в разі реалізації самостійної роботи на внутрішньому микроконтроллере WiFi модуля ESP8266-01.

Поїхали далі. Приступимо до підключення модуля. Для початку зробимо просте підключення, щоб переконатися в працездатності модуля.

Підключення і настройка wifi модуля esp8266-01

Для надійного живлення модуля ESP8266-01 використовуйте зовнішній стабілізований джерело живлення на 3.3V і краще не намагайтеся брати живлення від своєї плати Arduino, так як модуль споживає струм до 215mA і це може погано закінчиться для вашої отладочной плати. Де взяти стабілізований джерело живлення на 3.3V сподіваюся для вас не проблема, в іншому випадку вам явно ще рано займатися даним модулем. Мені, наприклад, подобається використовувати для швидкого збору схем на макетних платах ось такий модуль харчування 3.3V і 5.0V YWRobot. який дозволяє швидко отримати стабілізовану напругу на 3.3V або 5V на відповідних доріжках харчування макетної плати.

Підключаємо плюс (+) від нашого джерела живлення 3.3V до висновку VCC модуля ESP8266-01, а мінус (-) джерела живлення підводимо до висновку GND. В такому стані на модулі включиться червоний світлодіод, що сигналізує нам про правильне підключенні харчування. Для того щоб модуль активізувався, необхідно також з'єднати плюс (+) джерела живлення з висновком CH_PD модуля ESP8266-01 і бажано це зробити відразу через резистор 10кОм. Тепер, коли ми включимо харчування, на модулі повинен спалахнути червоний світлодіод і пару раз швидко моргнути синій світлодіод. Якщо у вас так все і відбувається, значить все відмінно, ви правильно все під'єднали і ваш модуль робочий. В іншому випадку ще раз перевірте підключення, або замініть модуль, так як він скоріше за все не робочий.

Йдемо далі. Для роботи з WiFi модулем ESP8266 нам необхідний перехідник USB-UART. Перехідники бувають різні, наприклад: FT232RL. CP2102. PL2303. Але ми припустимо, що у вас немає таких перехідників, і будемо в якості перехідника USB-UART використовувати плату Arduino. Я буду використовувати для цього плату Arduino NANO, а ви можете використовувати будь-яку іншу наявну у вашому розпорядженні. Підключення на будь-який платі один в один ідентично. Виробляємо підключення згідно з наступною схемою.

Підключення і настройка wifi модуля esp8266-01
Давайте розглянемо, що ми тут зробили. Відразу зверніть увагу на те, що ми замкнули перемичкою на платі Arduino висновки RST і GND. Така маніпуляція відключає мікроконтролер і дозволяє зробити з нашої плати Arduino справжнісінький перехідник USB-UART.

Так як WiFi модуль ESP8266-01 ми плекаємо від окремого зовнішнього джерела живлення, незабутній, що ми повинні завжди з'єднувати між собою землю всіх джерел живлення в наших проектах. Тому ми з'єднуємо висновок GND плати Arduino c землею (-) нашого зовнішнього джерела живлення 3.3V, призначеного для харчування модуля ESP8266-01.

Висновок TX вашої плати Arduino з'єднуємо з виведенням TX модуля ESP8266-01. З цієї лінії будуть передаватися дані від WiFi модуля до плати Arduino. Хто знайомий з UART інтерфейсом, може задуматися: "Але як же так? Скрізь вчили, що TX повинен з'єднуватися з RX. TX передає інформацію, а RX приймає". І Ви матимете рацію. Все вірно завжди TX з'єднується з RX, але саме в разі, коли ми робимо з Arduino перехідник UART, необхідно підключати пристрої безпосередньо. Вважайте це виключенням з правил.

Лінію RX вашої плати Arduino підключаємо так само безпосередньо до лінії RX модуля ESP8266-01. З цієї лінії буде передаватися інформація від плати Arduino на плату WiFi модуля. Але робимо це з'єднання через так званий дільник напруги, що складається з двох резисторів номіналами 1кОм і 2кОм. Зменшити напругу на цій лінії за допомогою двох резисторів (подільника напруги) нам необхідно, так як плата Arduino передає логічний сигнал напругою 5V, а WiFi модуль працює з напругою 3.3V. Для перетворення логічного сигналу ми могли б використовувати спеціальну хустці перетворювача логічних рівнів, що було б звичайно правильніше, але знову ж таки припустимо, що у вас її немає, і нам довелося піти простішим шляхом і зробити це за допомогою дільника напруги.

Все необхідне для подальшої роботи ми поки підключили, але у нас залишаються не задіяні ще 3 виводу (GPIO0. GPIO2 і RST) на WiFi модулі ESP8266-01. Для стабільної роботи WiFi модуля нам необхідно ці залишилися не задіяні висновки підтягнути до плюсової (+) лінії живлення модуля через резистори в 10кОм.

Підключення і настройка wifi модуля esp8266-01

Це позбавить нас від різних перешкод (наведень) і зробить роботу модуля стабільною. Краще це робити відразу. В іншому випадку не дивуйтеся, що ваш модуль постійно перевантажується, видає не зрозумілу інформацію, або взагалі не хоче працювати. Використовувати підтягує резистори на незадіяних висновках мікроконтролера повинно бути, як правило, якщо хочете стабільної роботи в ваших проектах.

І знову перевіряємо працездатність модуля WiFi ESP8266-01. Включаємо харчування і дивимося, щоб спалахнуло червоне світлодіод і пару раз моргнув синій. Якщо все так відбувається, значить відмінно, йдемо далі. В іншому випадку перевіряємо правильність з'єднань, а так само якість всіх контактів. Може бути просто банальна ситуація, коли десять разів все перевірили ще раз і переконалися, що все правильно підключили, але включаючи модуль, бачите, що синій світлодіод поводиться неадекватно, постійно горить, постійно блимає або взагалі не на що не реагує. Це може відбуватися через поганого контакту на якийсь лінії. Наприклад, збираючи схему на макетної платі, який-небудь з резисторів нещільно сидить на своєму місці і це створює перешкоди. Перевіряйте якість з'єднань. Модуль дуже чутливий. Не нехтуйте цим. Це часта причина не стабільної роботи.

Налаштування програми Arduino IDE для роботи з WiFi модулем ESP8266-01.

Загалом, з підключенням ми закінчили. Зараз нам необхідно підготувати програму Arduino IDE для роботи з WiFi модулем ESP8266-01. Для цього нам треба скачати і встановити в Arduino IDE необхідний архів з бібліотеками, прикладами і платами ESP, який згодом дозволить нам заливати скетчі прямо в мікроконтролер модуля ESP8266-01, міняти прошивку і т.д. В рамках цієї статті нам скоріше за все ці настройки і не знадобляться, але мені здається, що після того, як ми розібралися з підключенням модуля, порядок дій буде правильним, якщо ми відразу скачайте все необхідне для роботи з Arduino IDE. Тут все в принципі просто.

Запускаємо програму Arduino IDE і переходимо в меню "Файл" - "Налаштування"

Підключення і настройка wifi модуля esp8266-01

Підключення і настройка wifi модуля esp8266-01

Далі йдемо в меню "Інструменти" - "Менеджер плат".

Підключення і настройка wifi модуля esp8266-01

У вікні у верхньому полі пишемо "esp8266". В результаті у вікні у нас залишиться тільки потрібна прошивка. При натисканні на прошивку з'явиться кнопка "Установка". Натискаємо на кнопку "Установка" і чекаємо, поки все встановиться. Архів досить великий, близько 150 мегабайт, так що доведеться почекати.

Підключення і настройка wifi модуля esp8266-01

Після закінчення установки. Перезавантажуємо Arduino IDE і бачимо, як з'явилися нові плати ESP в меню "Інструменти" - "Плати". На цьому все. З налаштуванням Arduino IDE ми закінчили. Поки нам ці налаштування не потрібні, але в подальшій роботі нам без них не обійтися.

Управління WiFi модулем ESP8266-01 за допомогою AT команд.

Все ми підключили і підготувалися, тепер можемо почати розбиратися з керуванням. Насправді, зараз буде продовження перевірки і настройки модуля за допомогою AT команд і без цього ніяк не обійтися. WiFi модулі реалізовані так, що все спілкування з ними відбувається за допомогою так званих AT команд, які зашиті в прошивці модуля. Ми не будемо тут перераховувати всі AT команди, їх досить багато і якщо захочете все ретельно вивчити, можете без праці їх знайти в інтернеті. А ми будемо використовувати зараз тільки найнеобхідніші для початку роботи.

І так, підключаємо нашу плату Arduino через USB кабель до комп'ютера. А зовнішнє джерело живлення, який живить WiFi модуль ESP8266-01 поки включати не треба. Запускаємо програму Arduino IDE, вибираємо в меню "Інструменти" нашу плату Arduino, в моєму випадку це Arduino NANO, а ви вибираєте свою. Так само не забуваємо вибрати порт до якого підключена наша Ардуінка. Сподіваюся все це ви розумієте і робити вмієте.

Відкриваємо моніторинг порту "Інструменти" - "Монітор порту". Вибираємо швидкість порту 74880 (на такій швидкості відбувається запуск модуля) і зліва в списку вибираємо "NL CR "

Підключення і настройка wifi модуля esp8266-01

Ось тепер підключаємо зовнішнє джерело живлення який живить наш WiFi модуль. Після чого ви повинні побачити в моніторі порту приблизно таку інформацію.

Підключення і настройка wifi модуля esp8266-01

Тут ми бачимо деяку інформацію на нашу WiFi модулю (швидкість, кількість пам'яті на борту і т.д.). Отримана інформація може відрізнятися в залежності від версії прошивки WiFi модуля. Не будемо на цьому загострювати увагу. Важливо інше. Внизу ми бачимо набір безглуздих символів, це означає, що швидкість порту (74880 бод), яку ми виставили, підходить тільки для початкового завантаження модуля, щоб побачити нормально цю інформацію, але ця швидкість не підходить для нормального спілкування з WiFi модулем.

Щоб підібрати правильну швидкість порту, будемо просто змінювати швидкість порту і посилати в порт (поле зверху і кнопка відправити) символи AT поки не отримаємо відповідь ОК. Якщо Ви спробуєте прямо зараз послати символи AT в порт на швидкості 74880, то будете отримувати чергові один-два безглуздих символу у відповідь.

Підключення і настройка wifi модуля esp8266-01

Спробуйте відразу виставити швидкість 115200 бод і послати команду AT. Найчастіше модулі прошиті на цю швидкість.

Підключення і настройка wifi модуля esp8266-01

Ось таку картину ви повинні побачити в вашому моніторі порту. Якщо все одно у відповідь прийшов незрозумілий набір символів, знижуйте швидкість і повторюйте відправку AT команди, поки у відповідь не повернеться ОК. Якщо ви перепробували всі швидкості і не добилися правильної відповіді, значить вам не пощастило і модуль прошитий прошивкою з нестандартною швидкістю. Тоді залишається тільки перепрошити модуль нормальної прошивкою, але це тема окремої статті.

Сподіваюся, що все добре і швидкість правильну ви підібрали. До речі якщо ви спробуєте вимкнути і знову включити WiFi модуль, після того як підібрали правильну швидкість, то вже замість тієї самої первісної інформації, яка коректно відображалася на швидкості 74880 бод, ви навпаки, побачите безладний набір символів, але в кінці ви побачите слово "ready ". Але у нас є можливість подивитися цю первинну інформацію в нормальному вигляді на правильній швидкості, для цього необхідно програмно перезавантажити модуль за допомогою AT-команди AT + RST.

Щоб дізнатися версію прошивки вашого WiFi модуля ESP8266-01, необхідно в монітор порту відправити команду AT + GMR і у відповідь ви отримаєте приблизно таку інформацію:

Підключення і настройка wifi модуля esp8266-01

WiFi модуль ESP8266-01 може працювати як в режимі точки доступу, так і в режимі клієнта. Щоб дозволити модулю працювати відразу у всіх режимах, відправте в монітор порту команду AT + CWMODE = 3 і у відповідь ви повинні отримати ОК.

Команда AT + CWLAP дозволить переглянути всi WiFi точки доступу, які бачить в даний момент ваш модуль. Мій модуль, наприклад, бачить на даний момент в зоні свого покриття всього три WiFi точки доступу. Відповідь має бути приблизно таким:

Підключення і настройка wifi модуля esp8266-01

Наприклад, ми знаємо пароль до третьої точки доступу і щоб підключитися до неї виконуємо команду AT + CWJAP = "ім'я", "пароль". в моєму випадку ця команда виглядає AT + CWJAP = "dsl_unlim_512_home", "11111111". на що отримуємо успішний відповідь:

Підключення і настройка wifi модуля esp8266-01

Параметри команди записуються на флеш пам'ять WiFi модуля ESP8266-01, і якщо ми вимкнемо модуль і знову його включимо, він автоматично підключиться до цієї точки доступу. Дивіться випадково в команді не допустите пробіл, інакше отримаєте у відповідь ERROR. Необхідно звернути увагу, що в останніх версіях прошивки рекомендують використовувати команду AT + CWJAP_CUR. тобто команда буде виглядати AT + CWJAP_CUR = "ім'я", "пароль". Якщо раптом ми забули, до якої точки доступу підключений наш модуль, необхідно надіслати команду AT + CWJAP? або AT + CWJAP_CUR? і у відповідь отримаємо ту точку доступу, до якої підключений WiFi модуль на даний момент.