Esp8266 модулі

ESP8266 - це недорогий, але дуже корисний модуль, який підключається до мікроконтролера через інтерфейс UART і додає йому функцію WiFi-зв'язку.

підключення

У підключенні ESP8266 немає нічого складного, але є 2 важливих моменти, пов'язаних з харчуванням:

  • Модулю ESP8266 потрібно 3,3 вольта. Не живіть його 5 вольт - це викличе перенапруження!
  • Модуль ESP8266 не має контактів, стійких до 5 вольт. а для послідовної комунікації використовує 3,3 вольта. Тому для комунікації з 5 -вольтовимі микроконтроллерами начебто Arduino потрібно перетворювач вольтової логіки.

Втім, якщо ви відчуваєте в собі тягу до експериментів і не боїтеся зіпсувати ESP8266. то друга вимога можете проігнорувати. Але будьте готові до непередбачених наслідків! :)

Терморегулятори ESP8266 виглядає наступним чином:

Esp8266 модулі

Якщо підключити до ESP8266 харчування, у нього загориться червоний і замигает синій (він відповідає за послідовну комунікацію) світлодіоди.

Підключення до плати Serial-USB (безпечно)

Якщо у вас є 3,3 -вольтовая плата Serial-USB (від FTDI), то нею можна спокійно користуватися разом з ESP8266. не боячись щось зіпсувати або пошкодити. Але зверніть увагу, що на багатьох платах FTDI припаяна перемичка, яка конвертує 3,3 вольта в 5 вольт. Тому переконайтеся, що ваша плата налаштована саме на 3,3 вольта.

Щоб встановити послідовну комунікацію між платою FTDI і модулем ESP8266. їх потрібно підключити один до одного в такий спосіб:

Esp8266 модулі

Підключення до плати Arduino Uno R3 (швидко, але не дуже безпечно)

НЕ РЕКОМЕНДУЄТЬСЯ. Ви можете зіпсувати або Arduino. або сам ESP8266.

Чому використовувати Arduino з ESP8266 - погана ідея:

  • Вхідні контакти модуля ESP8266 не стійкі до 5 вольт - це може пошкодити модуль
  • Модуль ESP8266. можливо, буде тягнути більше струму, ніж може забезпечити 3,3 -вольтовий регулятор на Arduino - це може пошкодити Arduino
  • Якщо напруга перевищить 3,3 вольта, модуль ESP8266. можливо, почне працювати нестабільно і непередбачувано - це може зашкодити вашому психічному здоров'ю: D

У цього методу є, втім, і один очевидний плюс:

  • Якщо у вас вже є Arduino UNO R3. то для подальшої роботи з ESP8266 потрібно мінімум додаткових налаштувань. Крім того, особисто у мене в більшості випадків все працює нормально.

В даному випадку Arduino буде використовуватися як джерело живлення і конвертер USB-Serial. тому потрібно зробити так, щоб на Arduino ні завантажений скетч, який заважає послідовної комунікації. Зробити це можна двома способами:

  • Завантажити на Arduino «порожній» скетч, який не використовує послідовне з'єднання. Наприклад, скетч «BareMinimum» - щоб відкрити його, клікніть в IDE Arduino на Файл> Приклади> 01.Basics> BareMinimum (File> Examples> 01.Basics> BareMinimum)
  • Зняти мікроконтролер з плати Arduino (але тільки якщо він в корпусі DIP; якщо він прикріплений до плати поверхневим монтажем, то отпаивать його не потрібно)

Щоб встановити послідовну комунікацію між платою Arduino і модулем ESP8266. їх потрібно підключити один до одного в такий спосіб:

Esp8266 модулі

послідовна комунікація

Тепер, коли послідовна комунікація налаштована, з WiFi -модулем можна працювати через термінал (наприклад, через монітор порту IDE Arduino).

Використання монітора порту IDE Arduino

По-перше, для «спілкування» з ESP8266 можна використовувати монітор порту, вбудований в IDE Arduino.

  1. Підключіть WiFi -модуль до комп'ютера
  2. Клікніть в IDE Arduino на Інструменти> Порт (Tools> Port). щоб вибрати порт, до якого підключений WiFi -модуль
  3. Відкрийте монітор порту. Це можна зробити 3 способами. 1-ий - клікнути в IDE Arduino на Інструменти> Монітор порту (Tools> Serial Monitor); 2-ий - натиснути гарячі клавіші Ctrl + ⇧ Shift + M; 3-ий - натиснути на кнопку із зображенням збільшувального скла, що знаходиться в правому верхньому куті IDE Arduino
  4. Якщо у вас ESP8266. на який встановлена ​​дефолтна прошивка (001609901), то в випадаючому меню, що знаходиться в правому нижньому кутку монітора порту, виберіть пункт «Повернення каретки» ( «Carriage Return»). Якщо у вас остання версія прошивки, виберіть у цьому меню пункт «NL CR »(« Both NL CR »)
  5. У правому нижньому кутку монітора порту є ще одне меню, в якому виставляється швидкість передачі даних. Якщо використовуєте дефолтну прошивку, виставте там значення «115200». а якщо останню версію прошивки або модифіковану прошивку, то «9600»

Ось і все, монітор порту готовий до відправки команд!

Використання утиліти GNU Screen

Якщо на ESP8266 встановлена ​​дефолтна версія прошивки (00160901), яка чекає, що рядок буде закінчуватися тільки символом поверненням каретки ( «\ r»), то GNU Screen можна використовувати без жодних додаткових налаштувань. Тобто, наприклад, на OS X. можна відразу ввести ось таку команду:

screen / dev / tty.usbserial-AB12345 115200

На жаль, в останніх версіях прошивка ESP8266 вимагає, щоб рядок закінчувалася не тільки символом повернення каретки ( «\ r»), але і символом нового рядка ( «\ n»). Але налаштувати команду screen таким чином, щоб вона відправляла обидва символи одним натисканням кнопки, по всій видимості, не можна. Доводиться натискати ↵ Enter або Ctrl + M. а потім Ctrl + J.

Тому, можливо, для роботи з пізніми версіями прошивки краще підійдуть утиліти начебто minicom або picocom.

Ось і все, можете відправляти свої перші команди!

перші команди

  • Перевірте, що команди AT відправляються як потрібно (самі команди AT. По всій видимості, не чутливі до регістру, але інша їх частина - так). Для цього впишіть в терміналі:

Відповідь має бути:

Якщо ви цього відповіді не отримали, перевірте наступне:

  1. Чи правильно все підключено (на платі повинен блимати синій світлодіод). Спробуйте поміняти місцями лінії RX і TX.
  2. Правильна чи швидкість передачі даних. Для дефолтной прошивки ESP8266 (00160901) вона повинна бути 115200 бод.
  3. Правильні символи стоять в кінці рядка. Для дефолтной прошивки ESP8266 потрібен тільки символ повернення каретки ( «\ r»)
  • Перевірте, чи знаходиться ESP8266 в штатному стані, вписавши команду скидання:

Відповідь має бути таким:

wdt reset
load 0x40100000, len 24444. room 16
tail 12
chksum 0xe0
ho 0 tail 12 room 4
load 0x3ffe8000, len 3168. room 12
tail 4
chksum 0x93
load 0x3ffe8c60, len 4956. room 4
tail 8
chksum 0xbd
csum 0xbd

Або приблизно таким. Найголовніша частина - слово ready. що знаходиться на останній сходинці.

  • Перевірте версію прошивки, вписавши наступне:

Якщо на ESP8266 встановлена ​​дефолтна прошивка, відповідь буде таким:

  • Налаштуйте ESP8266 таким чином, щоб він працював одночасно і в режимі станції, і в режимі точки доступу:

Як налаштувати ESP8266 в режим точки доступу

Модуль ESP8266 може не тільки підключатися до точки доступу, але і сам бути точкою доступу. Це означає, що ви можете підключати пристрої до ESP8266 без жодних проводів. Це відмінно підходить, наприклад, для створення локального приватного «drop box».

  • Модуль вже йде з заздалегідь заданою точкою доступу (назва мережі буде «ESP_.». Але ви можете вказати і власні дані:

AT + CWSAP = "NoWorriESSID". "Password". 3. 0

Перший параметр - це SSID. другий - це пароль до SSID. третій - номер каналу, а четвертий - тип шифрування. Цифра «0» в даному випадку означає, що шифрування вимкнено, а пароль буде ігноруватися, але як і раніше не має бути порожнім значенням. У мене, правда, ніколи не виходило налаштувати шифрування (я завжди створюю незашифровану мережу), але ви, можливо, будете більш вдалими мене.

  • Щоб створити мережу, вам потрібно виставити WiFi -режим модуля або в «AP» ( «2»; це означає «точка доступу»), або в «Both» ( «3»; це означає «точка доступу + клієнт»).

У відповідь має видати приблизно наступне:

192.168.4.100, # 91 ;. # 93;

оновлення прошивки

Рекомендую завантажити котрусь із цих версій:

  • ESP8266_flasher_V00170901_00_Cloud Update Ready.zi p
  • ESP8266_AT_V00180902_02_baudrate watchdog added.zip

Зверніть увагу на цифри в версіях. Номер версії 00160901 складається з двох частин: «0016» - це версія SDK. а «0901» - версія набору AT-команда.

Інструменти для оновлення прошивки

Оновити прошивку можна за допомогою різних інструментів, але в цій статті я скористаюся esptool - це кроссплатформенная утиліта з ліцензією GPL.

Щоб завантажити її у вигляді Python -скріпта, клікніть тут.

Підключення та оновлення прошивки

По-перше, щоб оновити прошивку ESP8266. його потрібно перевести в режим завантаження прошивки. Для цього зробіть наступне:

  • Вимкніть ESP8266 від комп'ютера
  • Підключіть 0 -ої GPIO -контакт до «землі» (0 вольт). щоб включити режим завантаження прошивки
  • Знову підключіть модуль до комп'ютера

Тепер ESP8266 повинен перебувати в режимі завантаження прошивки.

Esp8266 модулі

Примітка: У документації до esptool написано, що «2-ий GPIO-контакт повинен мати значення HIGH». але мій досвід показує, що це необов'язково.

Щоб виконати оновлення прошивки, впишіть в термінал ось цю команду (файл формату «* .bin» - це файл з архіву «ESP8266_AT_V00180902_02_baudrate watchdog added.zip»):

python esptool.py --port / dev / tty.usbserial-ABC12345 write_flash 0x000000 "v0.9.2.2 AT Firmware.bin"

Під час оновлення прошивки в терміналі повинні з'являтися повідомлення, що інформують про те, як проходить процес відновлення:

Connecting.
Erasing flash.
Writing at 0x0007ec00. # 40; 100% # 41;

Якщо ви використовуєте монітор порту IDE Arduino. і у вас проблеми з підключенням, не намагайтеся виконувати оновлення при відкритому моніторі порту (навіть не питайте мене, як я про це дізнався.).

Коли оновлення завершиться, виконайте наступне:

  1. Вимкніть ESP8266 від комп'ютера
  2. Вимкніть один від одного 0-ой GPIO -контакт і заземлюючий контакт
  3. Знову підключіть ESP8266 до комп'ютера

Готово! Тепер, якщо все зроблено правильно, прошивка повинна бути встановлена ​​і готова до роботи.

  • Тепер при запуску компоненти виведення даних у модуля будуть вести себе по-іншому
  • Тепер швидкість передачі даних у модуля за замовчуванням буде 9600 бод
  • Тепер модуль чекає, що кожен рядок буде закінчуватися символами повернення каретки і нового рядка
  • Будуть виправлені деякі баги і додані нові AT-команда

Arduino і ESP8266

До сих пір ви управляли модулем ESP8266 вручну, за допомогою консолі, але їм можна управляти і програмно, за допомогою скетчу Arduino. Базові скетчі, що використовують функціонал ESP8266. можна вільно знайти в мережі. Хоча варто відзначити, що на даний момент спільнота ESP8266 поки не визначилося з тим, яку бібліотеку Arduino краще використовувати для функціоналу ESP8266.

SDK для ESP8266 і кастомниє прошивки

Для SoC-контролера (від «system on chip», це значить «система на кристалі») WiFi-модуля ESP8266 є офіційний SDK (від «software development kit»; це означає «комплект для розробки програмного забезпечення»). Завдяки цьому SDK ви можете додати в прошивку, керовану AT-командами. нові функції або навіть створити власну прошивку.

Ось кілька прикладів кастомних прошивок.

Це прошивка на базі мови LUA для WiFi-модуля ESP8266. Її GitHub -репозіторій знаходиться тут. Відмінний вибір для тих, хто тільки починає працювати з ESP8266.

Щоб завантажити інсталяційний пакет NodeMCU. впишіть наступне:

wget https: // github.com / nodemcu / nodemcu-firmware / raw / master / 0.9.2 / 512k-flas h / nodemcu_512k.bin

Щоб записати NodeMCU на ESP8266. впишіть наступне:

python esptool.py --port / dev / tty.usbserial-ABC123456 write_flash 0x000000 nodemcu_512k.bin

Щоб підключитися до модуля.

Схожі статті