ESP8266 та Arduino, підключення, розпинування. ESP8266 прошивка, програмування Arduino IDE Esp 01 прошивка arduino

Головна / Основний функціонал

Моуль esp-01
Схема правильного підключення модуля esp-01 для програмування та прошивки.

Прошивка модуля проводиться перекладом у режим програмування, для цього затискає кнопку FLASH, потім не відпускаючи короткочасно натискаємо на кнопку RESET і відпускаємо FLASH.
Модуль переведено в режим програмування.
У терміналі на цей момент можна побачити

ets Jan 8 2013,rst cause:2, boot mode:(1,6)
boot mode:(1,6) - перезавантаження по RESET в режим програмування
boot mode: (1,7) – перезавантаження по живленню в режим програмування – що не зовсім правильно.

Для прошивки використовуватиму програму NODEMCU FIRMWARE PROGRAMMER
(До топіка буде доданий архів із програмою)
Розпаковуємо архів і запускаємо в моєму випадку 32-розрядну версію програми Win32Release ESP8266Flasher.exe
Налаштовуємо під модуль, в моєму випадку це 1 мегабайт флеш пам'яті або 8 мегабіт.




Насамперед потрібно стерти пам'ять порожнім файлом в 1 Мб.
Це необов'язковий пункт. Стирання можна пропустити та перейти до прошивки.
У кого пам'ять більша чи менша - потрібен порожній файл відповідного розміру.
Далі визначаємо яка потрібна прошивка!
Можна використовувати як готові прошивки на NODEMCU, так і з конструктора зібрати з потрібними собі модулями.
Наприклад одна зі старих перевірених NODEMCU

Конструктор wifi-iot.com/
Конструктор nodemcu-build.com/
або качаємо останню

Проблеми при прошивці
Якщомодуль esp8266 не прошивається, перевірте підтяжки та коректність замикання на GND GPIO0. А також чи не переплутані RX TX.
У терміналі можна перевірити, щоб видавалося boot mode:(1,6) або boot mode:(1,7).

ЯкщоПісля невдалої прошивки модуль не працює, спробуйте стерти пам'ять порожнім файлом бланк розміром з пам'ять.

Якщомодуль після успішної прошивки не працює і в порт шле без кінця сміття (може блимати світлодіод передачі даних), трапляється це при прошивці останніх збірок Nodemcu, то додатково потрібно прошити файл в область пам'яті залежно від чіпа пам'яті.
З сайту nodemcu взято інформацію з пам'яті.
0x7c000 для 512 kB, модулі, такі як ESP-01,03,07
0xfc000 for 1 MB, модулі типу ESP8285, PSF-A85 та деякі різновиди esp-01,01s
0x1fc000 for 2 MB
0x3fc000 for 4 MB, тип модуля ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini ідр

Якщо нічого не допомагає, то пишіть.

Додаю офіційну групу виробника обладнання

Wi-Fi модуль ESP-01 – найпопулярніший модуль серії ESP8266. Спілкування з комп'ютером або мікроконтролером здійснюється через UART за допомогою набору AT-команд. Крім того, модуль можна використовувати як самостійний пристрій, для цього необхідно завантажити свою прошивку. Програмувати та завантажувати прошивки можна через Arduino IDE версії вище 1.6.5. Для прошивки модуля знадобиться перехідник UART-USB. Модуль ESP-01 може набути широкого поширення для використання в пристроях IoT (Інтернет речей).

Технічні характеристикимодуля

  • Wi-Fi 802.11 b/g/n
  • Режими WiFi: клієнт, точка доступу
  • Вихідна потужність – 19,5 дБ
  • Напруга живлення – 1.8 -3.6 В
  • Струм споживання - 220 мА
  • Портів GPIO: 4
  • Тактова частота процесора – 80 МГц
  • Об'єм пам'яті для коду
  • Оперативна пам'ять – 96 КБ
  • Розміри – 13×21 мм

Підключення

Розглянемо режим AT-команд. Для цього підключимо модуль до комп'ютера через перехідник USB-UART. Призначення висновків модуля (див. рисунок 1):
  • VCC - +3.3
  • GND – земля
  • RX, TX - висновки UART
  • CH_PD - Chip enable
  • GPIO0, GPIO2 - цифрові контакти
Модулю потрібне зовнішнє живлення 3.3.

Рисунок 1. Призначення контактів модуля ESP-01

Схема підключення для спілкування з модулем у режимі AT-команд (рисунок 2):

Рисунок 2. Схема підключення модуля ESP-01 до комп'ютера по порту

Рисунок 3. Схема збору

Для надсилання команд AT-команд в ОС Mac OS X можна використовувати програму CoolTerm, в операційній системі Windows програму Termite. Дізнатися швидкість COM-порту для з'єднання з модулем можна лише експериментально, для різних прошивок вона може бути різною. Для мого модуля швидкість дорівнювала 9600 бод. Крім того встановити обмін вдалося тільки після відключення та повторного підключення до живлення виводу CH_PD. Після підключення набираємо в терміналі AT і маємо отримати у відповідь від модуля OK. Команда AT+GMR видає номер версії прошивки модуля, команда AT+RST – перезавантажує модуль (див. мал. 4). Список основних AT-команд можна переглянути в цьому документі (ESP8266ATCommandsSet.pdf).

Рисунок 4. Відправлення AT-команд у модуль із програми Termite

Якщо режим AT команд вам не зручний, плату можна налаштувати за допомогою програми AppStack ESP8266 Config, завантажити яку можна за посиланням http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip . Зовнішній вигляд програми представлений малюнку 5. Налаштування модуля здійснюється з допомогою графічного інтерфейсу, у своїй виконання команд можна побачити у моніторі програми (див. рис. 6). У моніторі також можна надіслати AT-команди з командного рядка.

Рисунок 5. Програма AppStack ESP8266 Config

Рисунок 6. Serial monitor програми AppStack ESP8266 Config

Є два варіанти використання даного модуля:

  • у зв'язці з мікроконтролером (наприклад Arduino), який керуватиме модулем по UART;
  • написання власної прошивки для використання ESP8266 як самостійний пристрій.

Приклад використання

Розглянемо приклад підключення до модуля ESP-01 датчика вологості та температури DHT11 та надсилання даних у хмарний сервіс ThingSpeak (https://thingspeak.com/). Нам знадобляться такі деталі:
  • модуль ESP-01
  • макетна плата
  • датчик вологості та температури DHT11
  • резистор 10 ком
  • з'єднувальні дроти
  • блок живлення 3 – 3.6В
Спочатку підключимо датчик DS18B20 до модуля ESP-01. DS18B20 – цифровий датчик температури, що працює за однопровідним інтерфейсом 1-Wire. Схема підключення датчика DS18B20 до модуля показано на рис. 7.

7. Схема підключення датчика DHT11 до модуля ESP-01.

Потім потрібно завести профіль у сервісі ThingSpeak. У сервісі є інструкції для надсилання даних у сервіс та отримання даних із сервісу.

Рисунок 8. Схема у зборі.

Програму писатимемо в середовищі Arduino IDE для ESP8266. Будемо використовувати бібліотеки ESP8266WiFi.h (вбудовану) та OneWire.h. Завантажимо на плату Arduino скетч з лістингу 1 – отримання даних із датчика температури та надсилання даних у сервіс ThingSpeak. Необхідно внести свої дані для WiFi точки доступу для модуля ESP-01:

  • const char *ssid;
  • const char *password;
а також параметр privateKey для вашої програми у сервісі ThingSpeak. Лістинг 1 // сайт // Підключаємо бібліотеку для роботи з esp8266 # include // Підключаємо бібліотеку DHT до роботи з DHT11 #include // пін підключення контакту DATA #define DHTPIN 4 // датчик DHT11 #define DHTTYPE DHT11 // створення екземпляра об'єкта DHT DHT dht(DHTPIN, DHTTYPE); // ssid WiFi мережі підключення const char ssid = "********"; // Пароль WiFi мережі підключення const char password = "******"; // Сервер ThingSpeak const char * host = "184.106.153.149"; // API KEY вашої програми ThingSpeak const char * privateKey = "*************** *"; // Змінні для зберігання температури та вологості float temp; float humidity; // змінна інтервалу вимірювань unsigned long millis_int1=0; void setup() ( // запуск послідовного порту Serial.begin(115200); delay(10); Serial.print("Connect to WiFi"); Serial.println(ssid); // З'єднуємось по WiFi WiFi.begin(ssid) , password), while (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi connected"); чекаємо інтервал 10 хвилин if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // Використовуємо WiFi клієнт WiFiClient client; if (!client.connect) (host, 80)) ( Serial.println("connection failed"); return; ) // отримати дані температури temp = get_data_temperature(); humidity = get_data_humidity(); // Створюємо URL із запитом для сервера String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += humidity; // Відправляємо запит на сервер client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");delay(10); // відповідь сервера ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) Тепер у сервісі ThingSpeak ми можемо дивитися графік показань нашого датчика температури DHT11 (Малюнок 9).

Рисунок 9. Графік показань датчика температури DS18B20 у сервісі ThingSpeak.

Часті питання FAQ

1. Модуль не відповідаєAT-команди
  • Перевірте правильність підключення модуля;
  • Перевірте правильність підключення контактів Rx, Tx до перехідника UART-USB;
  • Перевірте підключення контакту CH_PD до 3.3;
  • Експериментально підберіть швидкість обміну по послідовному порту.
2. Модуль ESP-01 не отримує даних температури від датчикаDHT11
  • Перевірте правильність підключення датчика DHT11 до модуля.
3. Не передаються дані до сервісу ThingSpeak
  • Перевірте підключення модуля до точки доступу WiFi;
  • Перевірте підключення точки доступу WiFi до Інтернету;
  • Перевірте правильність запиту до ThingSpeak.

Багато користувачів вже встигли звернути увагу на чіп ESP8266-12, випущений компанією Espressif. Вартість його значно дешевша порівняно зі стандартною платою Bluetooth-адаптера, та й при менших габаритах він відрізняється значно ширшими можливостями. Тепер всі домашні любителі отримали можливість роботи в мережі Wi-Fi відразу в двох режимах, тобто підключати свій комп'ютер до будь-яких точок доступу або включати його як таку точку.

З іншого боку, потрібно правильно розуміти, що такі плати є не просто шилдами, призначеними тільки для зв'язку по Wi-Fi. Сам по собі ESP8266 є мікроконтролером, що має власні UART, GPIO і SPI-інтерфейси, тобто його можна використовувати як абсолютно автономне обладнання. Багато хто після виходу даного чіпа назвали його справжнісінькою революцією, і з часом такі пристрої почнуть вбудовуватися навіть у найпростіші види техніки, але поки пристрій є порівняно новим і будь-якої стабільної прошивки на нього немає. Багато фахівців по всьому світу намагаються винаходити власні прошивки, адже заливати їх у плату насправді не складає особливих труднощів, але незважаючи на різні труднощі, пристрій вже зараз можна назвати цілком придатним до роботи.

На даний момент розглядається лише два варіанти застосування даного модуля:

  • Використання плати в комбінації з додатковим мікроконтролером або комп'ютером, яким буде здійснюватися контроль над модулем через UART.
  • Самостійне написання прошивки для чіпа, що дозволяє потім використовувати його як самодостатній пристрій.

Цілком природно, що розглядати самостійну прошивку в даному випадку ми не будемо.

Дивлячись на зручність використання і хороші характеристики, багато людей серед безлічі мікроконтролерів віддають перевагу моделі ESP8266. Підключення та оновлення прошивки даного пристрою є гранично простим і доступним, і проводиться на тій же залізі, на якій здійснюється підключення обладнання до комп'ютера. Тобто через USB-TTL-конвертер або, якщо хтось віддає перевагу іншим варіантам підключення, може здійснюватися через RPi і Arduino.

Як перевірити?

Для того щоб перевірити працездатність щойно купленого пристрою, вам потрібно буде використовувати спеціальне джерело стабілізованої напруги, розраховане на 3,3 вольта. Відразу варто відзначити, що реальний діапазон напруги живлення даного модуля становить від 3 до 3,6 вольт, а подача підвищеної напруги відразу призведе до того, що ви просто виведете з ладу свій ESP8266. Прошивка та інше програмне забезпечення після подібної ситуації може почати некоректно працювати, і вам вже потрібно буде ремонтувати пристрій або якось його виправляти.

Щоб визначити працездатність цієї моделі мікроконтролера, потрібно просто підключити три піна:

  • CH_PD та VCC підключаються до живлення 3,3 вольт.
  • GND підключається до землі.

Якщо вами використовується не ESP-01, а інший модуль, і на ньому вже спочатку присутній виведений GPIO15, то в такому випадку вам і його потрібно буде додатково підключити до землі.

Якщо заводська прошивка запустилася нормально, то в такому випадку можна побачити, а потім кілька разів блимає синій. Однак варто відзначити, що червоний індикатор живлення мають не всі серії ESP8266. Прошивка на деяких пристроях не передбачає загоряння червоного індикатора, якщо він відсутній (зокрема, це стосується моделі ESP-12).

Після підключення до бездротової мережі активується нова точка доступу, яка буде називатися ESP_XXXX, і її можна буде виявити з будь-якого пристрою, який має доступ до Wi-Fi. У цьому випадку назва точки доступу безпосередньо залежить від виробника використовуваної вами прошивки, і тому може бути будь-яким іншим.

Якщо точка дійсно з'являється, ви можете продовжувати експерименти, в іншому випадку потрібно буде проводити повторну перевірку живлення, а також коректність підключення GND і CH_PD, а якщо все підключено вірно, то, швидше за все, ви все-таки намагаєтеся використовувати зламаний модуль або на ньому встановлена ​​прошивка з нестандартними налаштуваннями.

Як його швидко підключити?

Стандартний набір, необхідний для підключення даного модуля, включає наступне:

  • сам модуль;
  • безпайкову макетну плату;
  • повноцінний набір проводів мама-папа, призначені для макетної плати, або спеціальний кабель DUPONT M-F;
  • USB-TTL конвертер на основі PL2303, FTDI або якомусь аналогічному чіпі. Найбільш оптимальний варіант - якщо на USB-TTL адаптер також виводяться RTS і DTR, так як за рахунок цього можна досягти досить швидкого завантаження прошивки з якогось UDK, Arduino IDE або Sming, не маючи навіть необхідності в ручному перемиканні GPIO0 на землю.

Якщо вами використовується конвертер на 5 вольт, то в такому випадку потрібно буде придбати додатковий стабілізатор живлення на базі чіпа 1117 або аналогічному, а також джерело живлення (для стандартного 1117 цілком непогано підійде навіть звичайна зарядка від смартфона на 5 вольт). Рекомендується не використовувати Arduino IDE або USB-TTL як джерело живлення для ESP8266, а застосовувати окремий, тому що за рахунок цього можна позбутися зрештою маси проблем.

Розширений набір для забезпечення комфортної та постійної роботи з модулем передбачає необхідність використання додаткових резисторів, світлодіодів та DIP-перемикачів. Крім цього, можна також використовувати недорогий USB-монітор, який дозволить вам постійно спостерігати за кількістю споживаного струму, а також забезпечить невеликий захист шину USB від виникнення.

Що потрібно робити?

Насамперед варто відзначити той факт, що в ESP8266 управління може бути дещо різним залежно від того, яка саме модель використовується. Таких модулів сьогодні представлено досить багато, і перше, що буде потрібно, - це провести ідентифікацію моделі, що використовується, і визначитися з її розпинуванням. У даній інструкції ми говоритимемо про роботу з модулем ESP8266 ESP-01 V090, і якщо вами використовується якась інша модель з виведеним піном GPIO15 (HSPICS, MTDO), вам потрібно буде притягнути його до землі як стандартного старту модуля, так і для використання режиму прошивки.

Після цього двічі переконайтеся в тому, що напруга живлення для підключеного модуля становить 3,3 вольта. Як говорилося вище, допустимий діапазон становить від 3 до 3,6 вольт, і в разі підвищення пристрій виходить з ладу, але при цьому напруга живлення може бути навіть значно нижче 3 вольт, які заявлені в документах.

Якщо ви використовуєте USB-TTL конвертер на 3,3 вольта, то в такому випадку підключіть модуль так само, як на лівій частині зображення нижче. Якщо ж застосовується виключно п'ятивольтовий USB-TTL, то зверніть увагу на праву частину малюнка. Багатьом може здатися, що права схема ефективніша за рахунок того, що в ній застосовується окреме джерело живлення, але насправді у разі застосування USB-TTL конвертера на 5 вольт вкрай бажано зробити також додатковий дільник на резисторах, щоб забезпечити узгодження тривольтових та п'ятивольтових рівнів логіки, або просто використовувати модуль перетворення рівнів.

Особливості підключення

На правому малюнку є підключення UTXD (TX), а також URXD (RX) даного модуля до п'ятивольтової логіки TTL, і проведення таких процедур здійснюється тільки на свій страх і ризик. До ESP8266 опис говорить про те, що модуль ефективно працює тільки з 3,3-вольтовою логікою. У більшості випадків навіть у разі роботи з п'ятивольтовою логікою обладнання не виходить з ладу, але зрідка відбуваються такі ситуації, тому подібне підключення не рекомендоване.

Якщо у вас немає можливості використовувати спеціалізований USB-TTL конвертер на 3,3 вольти, можна застосувати дільник на резисторах. Також варто зазначити, що на правому малюнку стабілізатор живлення 1117 підключається без додаткової обв'язки, і це дійсно робоча технологія, але все-таки краще користуватися схемою підключення 1117 з конденсаторною обв'язкою - потрібно звірити її з ESP8266 datasheet на ваш стабілізатор або використовувати вже повністю готовий модуль, що ґрунтується на базі 1117.

Щоб запустити модуль, потрібно розірвати GPIO0-TND ланцюг, після чого можна подавати живлення. При цьому варто зазначити, що робити все потрібно саме в такому порядку, тобто спочатку переконайтеся в тому, що GPIO0 «висить у повітрі», і лише потім уже подавайте харчування на CH_PD та VCC.

Як правильно підключати?

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

Варто відзначити, що на зображенні вище не відображається використання вільних GPIO або ADC, і їх підключення безпосередньо залежатиме від того, що конкретно ви хочете реалізувати, але якщо ж ви захочете забезпечити стабільність, не забувайте притягувати все GPIO до живлення, а ADC до землі з використанням підтягуючих резисторів.

Резистори на 10k за необхідності можна замінити будь-які інші в діапазоні від 4,7k до 50k, крім GPIO15, оскільки його номінал має бути трохи більше 10k. Номінал конденсатора, що згладжує високочастотні пульсації, може бути дещо іншим.

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

На перший погляд, може здатися, що GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) і GPIO15 зайняті, тому використовувати їх для своєї мети не вийде, але насправді це далеко не так. Досить високий рівень на GPIO0 і GPIO2, а також низький на GPIO15 можуть знадобитися тільки для початкового запуску модуля, а надалі вже можна застосовувати їх на власний розсуд. Єдине, що варто відзначити - не забувайте забезпечувати потрібні рівні до того, як здійснювати повне перезавантаження вашого обладнання.

Також можна використовувати TX, RX як альтернативу GPIO1 і GPIO3, але при цьому не варто забувати про те, що після старту модуля кожна прошивка починає «смикати» ТХ, паралельно займаючись відправкою налагоджувальної інформації в UART0 зі швидкістю 74480, але після того як буде проведено успішне завантаження, їх можна використовувати не тільки як UART0 для того, щоб зробити обмін даних з іншим пристроєм, але і як стандартні GPIO.

Для модулів, у яких є невелика кількість розведених пінів (наприклад, ESP-01), не потрібно підключення нерозведених пінів, тобто на ESP-01 розводяться тільки: GND, CH_PD, VCC, GPIO0, GPIO2 і RESET, і саме їх вам потрібно буде підтягувати. Немає жодної потреби в тому, щоб припаюватися безпосередньо до мікросхеми ESP8266EX, а потім притягувати нерозведені піни, якщо це вам дійсно потрібно.

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

Підключення через Arduino

Якщо у вас чомусь не виявилося USB-TTL конвертера на 3,3 вольт, то в такому випадку модуль WiFi ESP8266 можна підключити через Arduino з вбудованим конвертером. Тут вам потрібно буде спочатку звернути свою увагу на три основні елементи:

  • При використанні в роботі з ESP8266 Arduino Reset спочатку підключений до GND, щоб унеможливити запуск мікроконтролера, і в даному вигляді він використовувався як прозорий USB-TTL конвертер.
  • RX і TX підключалися не на перехрест, а безпосередньо - RX-RX (зелений), ТХ-ТХ (жовтий).
  • Все інше підключається так само, як зазначено вище.

Що потрібно враховувати

У цій схемі також потрібне узгодження рівнів TTL 5 вольт Arduino, а також 3,3 вольта на ESP8266, але при цьому може функціонувати і так.

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

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

Підключення через RaspberryPi

Якщо ви не маєте взагалі ніяких USB-TTL конвертерів, то в такому випадку можна використовувати RaspberryPi. В даному випадку для ESP8266 програмування та підключення здійснюється практично ідентично, але при цьому тут все не так зручно, а додатково потрібно буде використовувати також стабілізатор живлення на 3,3 вольт.

Для початку RX, TX та GND нашого пристрою підключаємо до ESP8266, а GND та VCC беремо з розрахованого на 3,3 вольта. Тут окрему увагу слід приділити тому, що потрібно провести з'єднання всіх пристроїв GND, тобто стабілізатора RaspberryPi і ESP8266. Якщо вбудований у вашу модель пристрою стабілізатор може витримувати до 300 міліампер додаткового навантаження, то в такому випадку підключення ESP8266 здійснюється цілком нормально, але це все робиться тільки на свій страх і ризик.

Налаштовуємо параметри

Коли ви розібралися, як підключити ESP8266, потрібно переконатися, що драйвера до ваших пристроїв встановлені коректно, внаслідок чого в системі було додано новий послідовний віртуальний порт. Тут потрібно буде використовувати програму – термінал послідовного порту. У принципі, утиліту можна підібрати будь-яку на свій смак, але при цьому ви повинні правильно розуміти, що будь-яка команда, яка вирушатиме вами в послідовний порт, в кінці повинна мати завершальні символи CR+LF.

Досить широким поширенням користуються утиліти CoolTerm і ESPlorer, причому остання дозволяє не вводити ESP8266 самостійно, і при цьому дає простіше працювати з lua скриптами під NodeMCU, тому її можна повністю використовувати як стандартний термінал.

Для нормального підключення доведеться зробити чимало роботи, так як прошивки для ESP8266 в більшості своїй є різноманітними і активація може проводитися на різних швидкостях. Щоб визначитися з найбільш оптимальним варіантом, вам потрібно буде перебрати три основні варіанти: 9600, 57600 та 115200.

Як перебирати?

Для початку підключіться в термінальній програмі до послідовного віртуального порту, виставляючи параметри 9600 8N1, після чого проводьте повне перезавантаження модуля, відключаючи CH_PD (chip enable) від живлення, після чого знову активуйте його, пересмикуючи CH_PD. Також можна провести короткочасне замикання RESET на землю, щоб перезавантажити модуль, і спостерігати за даними в терміналі.

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

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

Як оновлювати прошивку?

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

Для початку завантажуйте нову версію прошивки з офіційного сайту, а також завантажуйте спеціальну утиліту для прошивки. Тут окрему увагу слід приділити тому, яка операційна система встановлена ​​на машині, з якою працює ESP8266. Підключення пристрою найкраще проводити до систем старших за Windows 7.

Для стандартних ОС Windows цілком оптимально використовувати програму під назвою XTCOM UTIL, яка особливо зручною в роботі, якщо прошивка складається тільки з одного файлу. Найкращим мультиплатформним варіантом варто назвати утиліту esptool, яка, щоправда, вимагає python, а також необхідність вказати параметри через командний рядок. Крім цього, ESP8266 підключення основних функцій дозволяє зручно зробити програма Flash Download Tool, яка має досить велику кількість налаштувань, а також зручну технологію установки прошивок з декількох файлів.

Далі відключайте свою термінальну програму від послідовного порту, а також повністю відключайте CH_PD від живлення, приєднуйте модуля GPIO0 до GND, і після цього CH_PD можна буде повернути назад. Зрештою просто запускайте програму для модульної прошивки та завантажуйте її в ESP8266 реле.

У більшості випадків прошивка завантажується в модуль зі швидкістю в районі 115200, але при цьому спеціальний режим передбачає автоматичне розподілення швидкості, внаслідок чого прошивка може проводитися на швидкості більше 9600, оновлюючи доступні функції ESP8266. Arduino використовувався для підключення або USB-TTL - тут не відіграє особливої ​​ролі, і тут гранична швидкість вже залежить від довжини проводів, використовуваного конвертера та інших факторів.

Як перевірити ESP8266

Для перевірки ESP8266, який ви придбали, потрібно .

Увага!Допустимий діапазон напруги живлення модуля ESP8266 від 3,0 до 3,6 вольт. Подача підвищеної напруги живлення на модуль гарантовано призведе до виходу ESP8266.

Щоб перевірити ESP8266, ESP-01 достатньо підключити три піна: VCC і CH_PD (chip enable) до живлення 3,3 вольт, а GND до землі. Якщо у вас не ESP-01, а інший модуль і на ньому виведено GPIO15, то додатково потрібно підключити GPIO15 до землі.

При успішному старті заводської прошивки на модулі ESP8266 загориться червоний світлодіод (індикатор живлення, на деяких версіях модуля, наприклад ESP-12, може бути відсутній) і кілька разів блимає синій (це індикатор передачі даних від модуля до терміналу по лінії TX-RX, може мати інший колір) і у вашій бездротовій мережі повинна з'явитися нова точка доступу з ім'ям ESP_XXXX, яку ви зможете побачити з будь-якого WiFi пристрою. Назва точки доступу залежить від виробника прошивки та може бути іншою, наприклад AI-THINKER_AXXXXC. Якщо точка доступу з'явилася, то можна продовжити експерименти далі, якщо ні, то ще раз перевірте живлення, CH_PD, GND і якщо все правильно підключено то, швидше за все, у вас несправний модуль, але є надія, що прошивка в модулі з нестандартними налаштуваннями і Можливо, вам допоможе перепрошивка.

Як швидко підключити ESP8266

У мінімальний набір для підключення та прошивки модуля ESP8266 входить:

Червоний - харчування 3,3в

Чорний — GND

Жовтий – на стороні ESP8266 – RX, на стороні USB-TTL – TX

Зелений – на стороні ESP8266 – TX, на стороні USB-TTL – RX

Помаранчевий – CH_PD (CHIP ENABLE) – повинен бути завжди підтягнутий до харчування

Синій – GPIO0 – підключений через вимикач до землі для увімкнення режиму перепрошивки модуля. Для звичайного старту модуля GPIO0 можна залишити не підключеним.

Рожевий на правій схемі - нестабілізоване харчування 5-8 вольт

4. Для старту модуля розірвіть ланцюг GPIO0 - GND і можете подавати харчування (причому саме в такому порядку: спочатку переконуємося, що GPIO0 "висить у повітрі", потім подаємо живлення на VCC та CH_PD)

Увага! У вищенаведених, реально працюючих, прикладах підключення ESP8266 використовується підключення висновків ESP8266 «безпосередньо» до землі і живлення, або «висить у повітрі», як у нас нікуди не підключений RESET, що є абсолютно неправильним і придатним тільки для пари перших експериментів, хоча і цілком працездатно на переважній більшості модулів. "Напряму" до живлення підключається тільки висновок VCC, решта висновків: CH_PD, RESET, GPIO0, GPIO2, повинні бути підтягнуті (pullup) до живлення (VCC) через резистор від 4,7 до 50 кОм. "Напряму", до мінусу (загального дроту) живлення підключаємо тільки GND, а GPIO0 підтягуємо (pulldown) теж через резистор до 10k до GND для переведення модуль в режим завантаження прошивки. Якщо ви плануєте і надалі експериментувати з ESP8266, то зробіть , втім так само як і для будь-яких інших мікроконтролерів. Детальний опис pullup та pulldown виходить за рамки даної статті, але ви зможете легко нагуглити опис правильного підключення портів вводу-виводу. « » підключення дозволить вам уникнути безлічі «чудес» та проблем і буде неминуче необхідним при виникненні труднощів із запуском або перепрошивкою модуля ESP8266.

Як правильно підключити ESP8266

Якщо ви плануєте займатися з ESP8266 більше, ніж один вечір, то вам буде потрібний варіант підключення, що забезпечує більш високу стабільність. Нижче наводяться дві схеми підключення: за допомогою автозавантаження прошивки з і без неї.

Схема підключення ESP8266 (без автозавантаження прошивки, прошиваємося попередньо встановивши перемичку BURN та перезавантаживши модуль)

Схема підключення за допомогою автозавантаження прошивки з Arduino IDE, UDK, Sming. Для Flash Download Tool та XTCOM_UTIL, можливо, буде потрібно відключення RTS/DTR. Якщо RTS та DTR вам відключати незручно, то можна додати до схеми перемички

На цих схемах не показано підключення ADC і вільних GPIO - їх підключення залежатиме від того, що ви захочете реалізувати, але якщо хочете стабільності, то не забудьте притягнути все GPIO до живлення (pullup), а ADC до землі (pulldown) через резистори, що підтягують. .

Резистори на 10k можуть замінити інші від 4,7k до 50k, крім GPIO15 — його номінал має бути до 10k. Номінал конденсатора, що згладжує високочастотні пульсації, може бути іншим.

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

На перший погляд цих схемах здається, що GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) зайняті і ви не можете їх використовувати для своїх цілей, але це не так. Високий рівень на GPIO0 і GPIO2, низький на GPIO15 потрібні тільки для старту модуля, а в подальшому ви можете використовувати їх на свій розсуд, тільки не забудьте забезпечити потрібні рівні до перезавантаження модуля.

Можна використовувати і TX, RX як GPIO1 і GPIO3 відповідно, не забуваючи про те, що при старті модуля будь-яка прошивка буде смикати TX, відправляючи налагоджувальну інформацію в UART0 на швидкості 74480, але після успішного завантаження ви можете використовувати їх не тільки як UART0 для обміну даними з іншим пристроєм, а також як звичайні GPIO.

Для модулів, що мають меншу кількість розведених пінів, наприклад ESP-01 підключення нерозведених пінів не потрібне, тобто. на ESP-01 розведені тільки: VCC, GND, GPIO0, GPIO2, CH_PD і RESET - ось тільки їх і підтягуєте. Немає жодної необхідності припаюватися прямо до мікросхеми ESP8266EX і притягувати нерозведені піни, тільки якщо це вам .

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

Увага! Навіть ці схеми не можна назвати «ідеальними». Досконало немає межі: зручно підключити другий USB-TTL до UART1 (з ESP8266 можна взяти тільки GND і UTXD1, тобто GPIO2) для підключення терміналу налагодження (потрібний другий USB-TTL конвертер) — тоді можна буде прошивати модуль ESP8266 через UART0 без відключення терміналу налагодження на UART1. Непогано буде підключити резистори малого номіналу до висновків обох UART, поставити діод у лінію RTS, додати конденсатор у лінію живлення для гасіння низькочастотних імпульсів тощо. Дуже зручно, наприклад, зроблено в цій налагоджувальній платі: на всі GPIO підключені світлодіоди, на ADC підключений фоторезистор, але шкода, що немає кнопки RESET і перемичка лише одна на GPIO0.

Правильним буде сказати вам, що немає ідеальної і в той же час універсальної схеми підключення ESP8266. Справа в тому, що дуже багато залежить від прошивки, яку ви збираєтеся туди залити. Наведені вище схеми розраховані на новачків, які тільки починають освоювати ESP8266, для експериментів. Для реальних проектів, можливо, вам доведеться трохи змінити схему. Наприклад, потрібно підключити RTS до GPIO15, а CTS до GPIO13. Також у реальних проектах рекомендую приділити особливу увагу питанню.

Підключення ESP8266 через Arduino

Якщо у вас під рукою не було USB-TTL конвертера на 3,3в, але є Arduino з вбудованим USB-TTL конвертером, то можна використовувати таку схему підключення

На що звернути увагу:

1. Arduino Reset підключений до GND (синій провід) щоб не запускався мікроконтролер на Arduino, в даному виді ми використовуємо Arduino як прозорий USB-TTL конвертер

2. RX і TX підключені не "на перехрест", а прямо - RX - RX (зелений), TX - TX (жовтий)

3. Решту підключено так само, як і в попередніх прикладах

Увага! У цій схемі також потрібно узгоджувати рівні TTL 5 вольт Arduino та 3.3 вольта на ESP8266, проте непогано працює і так.

Увага!На Arduino може бути встановлений стабілізатор живлення, який не витримає струм, необхідний ESP8266, тому перш, ніж робити підключення звірьтеся з даташитом на той стабілізатор, який встановлений саме у вас. Не підключайте інші енергоспоживаючі компоненти одночасно з ESP8266 через ризик виходу з ладу вбудованого в Arduino стабілізатора живлення.

З підключенням до послідовного порту доведеться трохи почаклувати: у зв'язку з різноманітністю прошивок для ESP8266 підключення може здійснюватися на різних швидкостях. Потрібну швидкість можна визначити шляхом простого перебору трьох варіантів: 9600, 57600 та 115200. Як здійснити перебір? Підключаєтеся в термінальній програмі до вашого віртуального послідовного порту виставивши наступні параметри: 9600 8N1, потім перезавантажуєте модуль, відключивши CH_PD (chip enable) від живлення (USB-TTL при цьому залишається підключеним до USB) і знову вмикаєте (тобто просто перекручує CH_PD , чому не пересмикуємо живлення - читаємо, також можна короткочасно замкнути RESET на землю для перезавантаження модуля) і спостерігаєте дані в терміналі. По-перше, світлодіоди на ESP8266 повинні горіти як описано на початку статті у розділі . По-друге, у терміналі ви повинні побачити "сміття" з різних символів, що закінчується рядком "ready". Якщо "ready" ми не бачимо, то перепідключається терміналом на іншій швидкості і знову перезавантажуємо модуль.

На одному з варіантів швидкості «ready» ви таки побачите — вітаємо, ваш модуль готовий до роботи. Якщо ні, то ласкаво просимо - ми постараємося допомогти, але попередньо почитайте.

Трохи докладніше про «сміття». Справа в тому, що при старті прошивки, UART модуля ESP8266 перемикається на швидкість передачі 74 880 (ось такі кумедні ці китайці) видає в UART налагоджувальну інформацію, потім перемикає швидкість порту на 115200 (ну або на 9600 або 57600 в залежності від версії , Так ось налагоджувальна інформація і бачиться нам як сміття, т.к. ми підключаємось до модуля на іншій швидкості. Можете підключитися до ESP8266 на швидкості 74880 ( підтримує цю швидкість) і ви цю налагоджувальну інформацію побачите, буде щось на зразок цього:

wdt reset load 0x40100000, len 25052, room 16 tail 12 chxum 0x 0x 0x0

wdt reset

load 0x40100000 , len 25052 , room 16

tail 12

chksum 0x0b

ho 0 tail 12 room 4

load 0x3ffe8000, len 3312, room 12

Що робити далі

Якщо у вас новий модуль, то, швидше за все, в ньому прошита одна зі старих кастомних прошивок AT. Швидше за все це якийсь AI-THINKER AT v0.16 SDK v0.9.2. Перевірити версію прошивки можна командою «AT+GMR», тобто. прямо в термінальній програмі набираєте AT+GMR без лапок і тиснете Enter. Модуль повинен відповісти "OK" і видати версію прошивки (наприклад, "0016000092" - у різних версіях AT прошивок формат виведення версії відрізняється). Управління модулем ESP8266 AT командами заслуговує на окрему статтю, проте ви легко зможете розібратися з цим і самі, скориставшись одним з наших довідників по AT командам:

На момент написання цієї статті актуальна версія прошивки для ESP8266:

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

Модуль ESP8266 чудовий тим, що не вимагає спеціального програматора - оновлення прошивки проводиться на тому ж залізі, на якому ви підключаєте модуль ESP8266 до комп'ютера, тобто. теж через USB-TTL конвертер (ну чи Arduino чи RPi). Для оновлення прошивки на модулі ESP8266 виконайте наступне:

1. Завантажте нову версію прошивки з нашого сайту з розділу (ось посилання на момент написання цієї статті)

2. Завантажте одну з утиліт для прошивки ESP8266 в залежності від вашої операційної системи з розділу нашого сайту

Китайська компанія Espressif в 2014 році почала продавати Wi-Fi модулі на чіпах ESP8266. який відразу завоював велику популярність у радіоаматорів через свою дешевизну та великі можливості. На сьогоднішній день існує велика кількість різних модулів, заснованих на чіпі ESP8266, в цій статті розповім про ESP-01.

Технічні характеристики

Напруга живлення: 3 В ~ 3.6 В
Максимальний робочий струм: 220 мА
Робоча частота: 2.4 ГГц
Режими: P2P (клієнт), soft-AP (точка доступу)
Кількість GPIO: 2.
Flash пам'ять: 1024 кб.
Вихідна потужність у режимі 802.11b: +19.5dBm
Підтримка бездротового стандарту: 802.11 b/g/n
Габарити: 24.8мм х 14.3мм х 8мм

Загальні відомості про ESP-01

По суті, чіп ESP8266 є мініатюрним мікроконтролером з Wi-Fi передавачем, який може функціонувати в умовах повної автономії, без додаткової плати Arduino. За допомогою модуля ESP-01 можна передавати дані про температуру, вологість, включати реле і так далі. Для зручності використання чіпа ESP8266, виробник виготовив серію модулів від ESP-01 до ESP-14. Перший у цій серії, це модуль ESP-01 (існує ще ESP-01S, про нього трохи пізніше), що є одним з відомим, через свою ціну та невеликі розміри, всього 14,3 мм на 24,8 мм. Але в ньому є два недоліки, це обмежена кількість програмованих висновків GPIO та їх незручне розташування (незручно макетувати).


Модуль ESP-01 є невеликою платою, чорного кольору, на якій розташовані два основних чіпи, це мікроконтролером ESP8266 і flash пам'ять на 1 Мб. Поруч розташований кварцитовий резонатор та надрукована антена. На платі встановлено два світлодіоди, червоний та блакитний. Червоний світлодіод, світиться коли на модулі є живлення, а синій блимає при виконанні команд (NSP-01S видалений червоний світлодіод, через постійне споживання електроенергії). Для підключення модуля ESP-01, передбачено вісім висновків (два ряди по чотири виводи, кроком 2.54 мм), два з готових є цифровим входом-виходом, що підтримують широтно імпульсну модуляцію. Хоча модуль має два виводи GPIO за замовчуванням, можна використовувати інші доступні контакти, якщо у вас є необхідний інструмент для паяння.


Призначення висновків
GND:«-» живлення модуля
GPIO2:(Digital I / O програмований)
GPIO0:(Digital I / O програмований, також використовується для режимів завантаження)
RX: UART прийом
TX: UART передача
CH_PD:(включення / відключення живлення, повинні бути виведені на 3.3 безпосередньо або через резистор)
RST:скидання, необхідно потягнути до 3.3В
VCC:"3.3В" живлення модуля

Підключення модуля
Для роботи модуля ESP-01 необхідне джерело живлення постійного струму, який повинен видавати 3.3 В і струмом не менше 250 мА. На жаль, штатний стабілізатор встановлений на Arduino не здатний видати необхідний струм для роботи ESP-01 (якщо вирішите все одно підключити ESP-01, чекайте на нестабільну роботу і постійне перезавантаження). Крім того, логічні сигнал, даного модуля, розрахований на 3.3, тобто на висновок RX необхідно подавати напругу 3.3В, а з виведення TX буде напруга дорівнює 3.3 (так само і для інших висновків). Якщо необхідно підключити модуль до Arduino або іншим контролерам, які видають на логічний висновок 5, необхідно використовувати резистори або модуль логічних рівнів, якщо підключати безпосередньо, модуль вийде з ладу.

Увага! ESP-01 дуже примхливі до живлення, необхідно використовувати зовнішній стабілізатор напруги на 3.3В, як перший приклад використовуватиму USB адаптер

З таблиці вище, видно, що модуль ESP-01 може працювати в декількох режимах сну, з мінімальним споживанням струму, вони викликаються програмним шляхом, крім останнього «Power Off», щоб задіяти даний режим, необхідно встановити перемичку, між GPIO16 і RST, пізніше наведу приклад.

Установка ESP8266 в IDE Arduino

Завантажуємо із сайту arduino.cc програму IDE Arduino
Далі, необхідно встановити ESP плату в IDE Arduino, для цього запускаємо програму IDE Arduino, відкриваємо: Файл -> Налаштування.
У новому відкритому вікні, в полі Додаткові посилання для Менеджера плат:» додаємо посилання:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

У відкритому вікні, шукаємо « esp8266 by ESP8266 Communit y» та натискаємо « Встановити“. Установка займе кілька хвилин, потім з'явиться напис « Installed", тиснемо " Закрити«

Натискаємо « Інструменти -> Плати -> Generis ESP8266 Module«.

Тепер необхідно підключити модуль ESP-01 до комп'ютера через спеціальний адаптер USB на чипі CH340G


Налаштовуємо частоту процесора CPU Frequency: "80 MHz"", швидкість" Upload Speed: «115200»» та вибираємо « Порт«.

Потім завантажуємо скетч, який змусить ESP8266 блимати світлодіодом.

/* Тестувалося на Arduino IDE 1.8.5 Дата тестування 15.06.2018р. */ #define TXD 1 // GPIO1 / TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay( 1000);

© 2022 androidas.ru - Все про Android