Як завантажити прошивку на ESP8266
Оновлення прошивки ESP8266
Для роботи з RemoteXY модуль ESP8266 повинен мати версію прошивки за допомогою AT команд не нижче v0.40. Для перевірки версії модуля, а також для зміни прошивки у разі потреби підключіть модуль до комп'ютера через послідовний порт. Модуль можна підключити через платню Arduino або через USB-UART адаптер.
Підключення через плату Arduino
При використанні Arduino основний чіп ATmega переводиться в режим скидання, активним залишається лише вбудований USB-UART перетворювач. Для цього контакт RESET з'єднується із землею. Контакти RX і TX підключаються до ESP8266 безпосередньо, а не хрест навхрест, ніби вони підключалися до роботи з контролером.
Підключення через USB-UART адаптер
Перетворювач повинен мати вихід джерела 3.3V для живлення ESP8266. Також це джерело має забезпечити необхідний струм не менше 200мА.
Контакт CPIO0 визначає режим роботи модуля. При не підключеному контакті модуль працює у штатному режимі та виконує AT команди. При замиканні контакту на землю модуль переводиться в режим оновлення вбудованої прошивки. Переведення модуля в режим прошивки вимагає, щоб контакт CPIO0 був підключений до «землі» в момент подачі живлення на модуль. Якщо замикати контакт під час модуля, переведення модуля в режим оновлення прошивки не відбудеться.
Перевірка поточної версії
Для надсилання AT команд та перегляду відповідей необхідно використовувати будь-яку програму монітора послідовного порту. Дуже добре підходить термінальна програма Arduino IDE. У програмі необхідно встановити режим відправлення команд із завершальним символом перекладу рядка та поверненням каретки. Швидкість роботи модуля за замовчуванням 115 200 біт/сек. Для роботи модуля в штатному режимі контакт CPIO0 має бути вимкнений.
Перевірити поточну версію прошивки можна за допомогою команди AT: AT+GMR. Приклад відповіді модуля:
AT+GMR AT version:0.40.0.0(Aug 8 2015 14:45:58) SDK version:1.3.0 Ai-Thinker Technology Co.,Ltd. Build:1.3.0.2 Sep 11 2015 11:48:04 OK
Також варто дізнатися розмір флеш пам'яті вашого модуля, від цього залежить налаштування адрес завантаження даних при оновленні прошивки. У цій інструкції описано прошивку модуля з розміром флеш пам'яті 8Mbit(512KB+512KB) або 16Mbit(1024KB+1024KB), як найпоширеніших. Розмір флеш пам'яті можна дізнатися, виконавши команду AT скидання модуля: AT + RST.
AT+RST OK ets Jan 8 2013,rst cause:2, boot mode:(3,1) load 0x40100000, len 1396, room 16 tail 4 chksum 0x89 load 0x3ffe8000, len 776, room 4 0x3ffe8308, len 540, room 4 tail 8 chksum 0xc0 csum 0xc0 2nd boot version : 1.4(b1) SPI Speed : 40MHz SPI Mode : DIO SPI Flash #t'n't use rtc mem data slЏrlМені Ai-Thinker Technology Co.,Ltd. ready
Програма для прошивки
Для оновлення прошивки необхідно завантажити програму для прошивки та саму прошивку. Програма для прошивки ESP8266 буде використовувати Flash Download Tools з офіційного сайту Espressif Systems. Посилання на сторінку завантаження на офіційному сайті: http://espressif.com/en/products/hardware/esp8266ex/resources. Необхідно перейти до розділу "Tools".
Прошивка
Прошивку також можна завантажити з офіційного сайту. Посилання на сторінку завантаження на офіційному сайті: http://espressif.com/en/products/hardware/esp8266ex/resources. Необхідно перейти до розділу «SDKs & Demos» та завантажити прошивку ESP8266 NONOS SDK версії не менше v1.3.0. Саме з цієї версії прошивки реалізовано підтримку AT команд v0.40 і більше.
Усі файли, що скачують, необхідно розпакувати і помістити в каталог, де повний шлях до файлів складається тільки з латинських символів, тобто без символів локалізації мови.
Налаштування
Запускаємо програму прошивки Flash Download Tools v2.4 (одноіменний .exe файл). У вікні необхідно правильно вказати файли, що завантажуються, і налаштування з'єднання.
Завантажені файли розміщуються в каталозі bin архіву з прошивкою. Для кожного файлу необхідно вказати правильну адресу завантаження. Використовуйте наступну таблицю для вибору файлів та призначення адрес:
| Файл у каталозі bin | Флеш 8Mbit (512KB+512KB) | Флеш 16Mbit (1024KB+1024KB) |
| esp_init_data_default.bin | 0xFC000 | 0x1FC000 |
| blank.bin | 0xFE000 | 0x1FE000 |
| boot_v1.4(b1).bin або старшої версії | 0x00000 | 0x00000 |
| user1.1024.new.2.bin (у підкаталозі at) | 0x01000 | 0x01000 |
| user2.1024.new.2.bin (у підкаталозі at) | 0x81000 | 0x81000 |
Встановіть такі установки:
- SPIAutoSet - встановлений;
- CrystalFreq - 26M;
- FLASH SIZE - 8Mbit або 16Mbit залежно від розміру флеш-пам'яті;
- COM PORT – виберіть порт, до якого підключено ESP;
- BAUDRATE – 115200
Для старту прошивки необхідно натиснути кнопку "START".
Послідовність кроків для прошивки ESP8266
1. Підключіть модуль до комп'ютера згідно зі схемою підключення в цій статті.
2. Запустіть послідовний монітор. Виконайте AT команди AT+RST та AT+GMR для визначення поточної версії прошивки та розміру пам'яті модуля. Цей крок також дозволяє перевірити правильність підключення модуля.
3. Запустіть програму прошивки Flash Download Tools, правильно налаштуйте файли, що завантажуються, встановіть налаштування.
4. Вимкніть живлення модуля ESP8266.
5. З'єднайте контакт CPIO0 на землю.
6. Подайте живлення на модуль ESP8266.
7. Натисніть на програму прошивки кнопку START
8. Дочекайтесь закінчення прошивки модуля. Після прошивки з'явиться напис FINISH зеленого кольору.
9. Від'єднайте живлення модуля ESP8266. Від'єднайте землю від контакту CPIO0.
10. Увімкніть модуль, запустіть дисплей послідовного порту. Переконайтеся в працездатності модуля та нової версії прошивки, виконавши AT команду AT+GMR.
Прошивка ESP8266 через Arduino IDE
У цій статті я розгляну прошивку плат ESP8266 через розробку Arduino IDE. Arduino IDE дозволяє завантажити на плату безліч готових прикладів, які були раніше написані для плат Arduino, тому ця навичка буде вам дуже корисною при створенні своїх пристроїв!
Налаштування Arduino IDE для роботи з ESP
Насамперед необхідно завантажити свіжу версію Arduino IDE (https://www.arduino.cc/en/Main/Software) та встановити її на ваш комп'ютер. Перед початком прошивки ESP необхідно додати додаткові пакети в середу розробки Arduino IDE.
Відкриваємо Arduino IDE і додаємо можливість роботи з платами esp8266, для цього:
1) Переходимо до розділу Preferences у меню.
2) У поле "Додаткові посилання для Менеджера плат" (Additional Board Manager URLs) вставляємо рядок http://arduino.esp8266.com/stable/package_esp8266com_index.json і кнопку "OK".
3) Відкриваємо менеджер плат у меню "Інструменти > Плата > Менеджер плат. " (Go to Tools > Board > Boards Manager…)
4) У вікні, що з'явилося, в пошуку вводимо esp8266 і встановлюємо відповідний пакет
5) Закриваємо та заново відкриваємо Arduino IDE. Тепер у списку доступних плат з'явилися плати з урахуванням чіпа ESP.
Прошивка NodeMCU ESP8266 Development Board
У платі NodeMCU версії 1.0 використовується чіп CP2102 (USB to UART Bridge VCP).Щоб наш комп'ютер міг бачити плату esp, необхідно скачати драйвер даного читання з офіційного сайту https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers. Завантажуємо та встановлюємо драйвер під потрібну операційну систему. Після встановлення драйвера перезапускаємо Arduino IDE.
Тепер якщо підключити плату NodeMCU до комп'ютера, у списку портів ви побачите новий пристрій. Для MacOS воно матиме вигляд:
Для перевірки роботи прошивки завантажимо стандартний приклад з миготливим світлодіодом. Для цього в меню вибираємо "Приклади > Basic > Blink".
Відкриється нове вікно Arduino IDE із стандартним прикладом, натискаємо на нього. Тепер нам необхідно вибрати відповідну плату та потрібний порт. Вибираємо NodeMCU 1.0 та порт, на який підключений модуль ESP. Усі параметри повинні бути такими, як на скріншоті.
Натискаємо кнопку "Завантажити" у верхній частині вікна:
Код почне компілюватися:
Після компіляції почнеться завантаження коду на плату ESP, у нижній частині екрану побіжать помаранчеві пікселі та з'являтимуться відсотки завантаження. В результаті завантаження сягне 100% і трохи вище ви побачите напис "Завантаження завершено". Вітаємо, ви щойно прошили модуль NodeMCU! Подивіться на плату – на ній має почати блимати світлодіод!
Прошивка ESP-01
На відміну від NodeMCU, у модулі ESP-01 немає вбудованого програматора і його не можна безпосередньо підключити до USB. Тому для прошивки я використовуватиму зовнішній програматор.
Для цього модуля підійдуть практичні улюблені USB-to-UART програматори, але я замовив спеціальний програматор з роз'ємом під ESP-01.
У даному програматорі так само як і в NodeMCU використовується чіп CP2102, тому нам не потрібно ставити додатковий драйвер.Також цей програматор має додаткові піни, якими можна прошивати модулі Sonoff. Тепер просто встромляємо плату в програматор, а програматор в USB.
У меню "Порт" з'явиться знайомий нам cu.SLAB_USBtoUART (для Windows це буде COM *), вибираємо його. У полі "Плата:" вибираємо "Generic ESP8266 Module". Усі параметри мають бути на скріншоті.
Зверніть увагу, що щоразу перед прошивкою цей програматор необхідно витикати та встромляти в USB заново. Іноді зовнішні програматори можуть бути не видно в Arduino IDE. У цьому випадку доводиться перезавантажувати середовище розробки. Тому для перших експериментів із модулем ESP я рекомендую використовувати модуль NodeMCU.
Як ви бачите підготувати Arduino IDE до роботи і прошити перший скетч на ESP не так вже й важко. У наступній статті я розповім вам як написати скетч, який працюватиме з MQTT сервером, а також як потім підключити девайс до системи OpenHAB2.
Підготовка ESP8266 для роботи з прошивкою NodeMCU
У цьому посібнику ми розповімо, як завантажити, встановити та налаштувати прошивку NodeMCU для роботи з ESP8266.
Для чого записувати на ESP8266 прошивку NodeMCU?
NodeMCU – це прошивка, що дозволяє програмувати ESP8266 за допомогою Lua-скриптів. Цей метод дуже нагадує програмування плат Arduino.
Вам знадобиться лише кілька рядків коду для налаштування WiFi-з'єднання, керування GPIO-контактами ESP8266, налаштування ESP8266 як веб-сервера та багато іншого.
За допомогою цієї прошивки ESP8266 отримує доступ до функціонала свого внутрішнього мікроконтролера – на зразок SPI, UART, I2C, ШІМ, GPIO-контактів тощо.
Матеріали та посилання
Завантажуємо двійкові файли прошивки NodeMCU
Останні версії двійкових файлів прошивки NodeMCU можна завантажити в цьому GitHub-репозиторії.Клацніть на посилання, яке закінчується на "-integer.bin".
Натисніть кнопку Download.
Завантажуємо Windows-версію флешера для NodeMCU
Щоб завантажити Windows-версію флешера для завантаження NodeCMU, клацніть на потрібне посилання нижче:
Запис прошивки на ESP8266
Подальші дії залежить від того, з якою ESP8266-платою ви працюєте.
Якщо у вас є ESP-12E з вбудованим програматором, читайте розділ «Варіант А». Якщо у вас ESP-01 або ESP-07, вам знадобиться FTDI-програматор – читайте розділ «Варіант Б».
Варіант А – завантаження прошивки на ESP-12E
Запис нової прошивки ESP-12E NodeMCU Kit робиться дуже просто, т.к. ця плата має вбудований програматор. Вам не знадобиться жодних додаткових підключень – вам потрібно буде просто підключити плату до комп'ютера та все.
Варіант Б – Завантаження прошивки на ESP-01
Завантаження коду на ESP-01 вимагає налаштування послідовної комунікації між ESP8266 та FTDI-програматором.
Важливо: Більшість FTDI-программаторов є перемичка для перемикання між 5 і 3.3 вольтами. Обов'язково переконайтеся, що вона стоїть на 3.3 вольтах.
Щоб налаштувати послідовну комунікацію між ESP8266 та FTDI-програматором, підключіть їх один до одного, як показано на схемі нижче.
Ось контакти, які потрібно підключити один до одного:
- RX (ESP8266) -> TX (FTDI-програматор)
- TX -> RX
- CH_PD -> 3.3V
- GPIO0 -> GND
- VCC -> 3.3V
- GND -> GND
Примітка: На схемі контакт GPIO0 підключено до GND, т.к. ми хочемо завантажити на ESP8266 новий код. При нормальному використанні (тобто коли ви не записуєте на ESP8266 нову прошивку) контакт GPIO0 має бути підключений до VCC.
Якщо ви щойно купили новий FTDI-програматор, і вам потрібно встановити на Windows-ПК офіційні FTDI-драйвери, їх можна знайти на цьому сайті.Також можна просто звернутися по них до того, хто продав вам FTDI-програматор.
«Розтинання» FTDI-програматора на Windows-ПК
Якщо у вас виникли проблеми із встановленням FTDI-драйверів на Windows 7/8/8.1/10, то ваш FTDI-програматор, швидше за все, «окипився».
Запис прошивки NodeMCU за допомогою Windows-ПК
Отже, до цього моменту у нас вже має бути готовий ланцюг і завантажений флешер для запису прошивки NodeMCU.
Дуже просто Якщо ви вже налаштували послідовну комунікацію між ESP8266 і ПК, то вам залишилося зробити наступне:
- Відкрийте флешер на ПК;
- Перейдіть на вкладку Advanced (Див. скріншот нижче);
- Виставте швидкість передачі на 9600 бод;
Примітка: Деякі ESP8266-модулі за промовчанням комунікують на швидкості 115200 бод. Advanced має виглядати приблизно так:
Потім відкрийте вкладку Config і натисніть на іконку із зображенням шестерні, щоб вибрати двійковий файл прошивки NodeMCU.
Далі вам потрібно буде вибрати двійковий файл прошивки NodeMCU, який ви завантажили вище в розділі "Завантажуємо двійкові файли прошивки NodeMCU".
В результаті вкладка Config повинна буде виглядати якось так:
Потім перейдіть на вкладку Operation і проробіть таке:
- Виберіть COM-порт, до якого підключено програму FTDI (або ESP-12E);
- Натисніть кнопку Flash(F);
Це запустить процес прошивки. Коли прошивка буде виконана, ви повинні побачити маленьку зелену круглу іконку з галочкою в лівому нижньому кутку екрана.
Під час прошивки ESP8266 блиматиме синій світлодіод. Якщо він не блимає, а флешер завис, проробіть наступне:
- Перевірте підключення;
- Вимкніть FTDI-програматор (або ESP-12E) від ПК і знову підключіть;
- Перезапустіть флешер NodeMCU;
- Перевірте налаштування на вкладці Advanced флешера;
- Спробуйте іншу швидкість передачі (9600 або 115200 бод);
- Знову спробуйте записати прошивку;
Коли прошивка буде виконана, відключіть ESP8266 від живлення, а контакт GPIO0 від GND.
Запис прошивки NodeMCU на Mac OS X та Linux
Хороший посібник про запис NodeMCU з використанням ПК на Mac OS X і Linux можна знайти за цим посиланням. Якщо не вдалося, спробуйте записати її за допомогою Windows-ПК.