ESP8266 (технічно ESP8266EX) - це модуль WiFi, що базується на 32-розрядному MCU Cadence Tensilica L106. ESP8266 SoC містить повністю функціональний стек Wi-Fi та TCP/IP, який дозволяє будь-якому мікроконтроллеру підключатися до мережі Wi-Fi.
За допомогою комплекту програмного забезпечення (SDK) ви можете безпосередньо програмувати мікроконтроллер мікроконтролера ESP8266, не потребуючи зовнішнього мікроконтролера так само як Arduino.
Виходячи з ESP8266 SoC, деякі виробники виробляють індивідуальні плати. Перша плата, виготовлена компанією Ai-Thinker, - це ESP-01 (яка є тією ж платою, що використовується в цьому проекті), і вона с- досить популярна.
На підставі успіху модуля ESP-01 декілька інших модулів, таких як ESP-02, ESP-07, ESP-12 тощо, були випущені Ai-Thinker. Всі ці плдати засновані на ESP8266 SoC, але основна відмінність - кількість GPIN Pins.
Існують і інші модулі, такі як ESP-WROOM від Espressif Systems, NodeMCU, WeMOS, SparkFun ESP8266 та ін.
ESP8266 ESP-01
У цьому проекті ми будемо використовувати модуль ESP-01 Ai-Thinker. Він містить 8 штифтів, а на наступному зображенні показані різні компоненти плати. Pin Опис модуля ESP-8266 ESP-01
VCC : це сигнал, через який подається 3.3 В.
GND : це земля шпилька.
TX : Цей контакт використовується для передачі послідовних даних на інші пристрої.
RX : ПІК RX використовується для отримання серійних даних з інших пристроїв.
RST : Це Pin Reset Pin, і це активна LOW Pin. (ESP8266 скине, якщо RST-штифт отримає сигнал LOW).
CH_PD : це пік включення чіпа, і це активний високий контакт. Зазвичай він підключений до 3,3 В.
GPIO0 : гвинт GPIO0 (General Purpose I / O) Pin має подвійні функції - один для звичайного режиму GPIO Operation та інший для активації режиму програмування ESP8266.
GPIO2 : це гніздо GPIO.
ВАЖЛИВЕ ПРИМІТКА : ESP8266 не сумісний з 5В, а модуль ESP-01 не має регуляторів напруги на борту. Переконайтеся, що джерело живлення до ESP8266 становить 3,3 В, переважно від спеціального джерела живлення, а не від патрона 3.3 В з Arduino.
Інтерфейс Arduino ESP8266
Перш ніж побачити інтерфейс Arduino ESP8266, вам потрібно знати кілька речей про модуль ESP8266. Модуль WiFi ESP8266 поставляється з прошивкою за замовчуванням, що підтримує команди AT.
Після взаємодії модуля Wi-Fi ESP8266 з Arduino та завантаженням власної програми оригінальна прошивка буде стерта. Ми побачимо в окремому проекті про те, як інтерфейс модуля ESP8266 для AT-команд, а також про те, як спалахнути оригінальне прошивку за допомогою Arduino.
Тепер ми побачимо, як програмувати ESP8266 за допомогою Arduino та отримати доступ до її контактів GPIO. По-перше, ми побачимо схему інтерфейсу.
Діаграма схеми інтерфейсу Arduino ESP8266
Програма Arduino IDE готова для програмування ESP8266!
Модуль WiFi ESP8266 можна запрограмувати за допомогою IDE Arduino, і для цього вам потрібно внести кілька змін до IDE Arduino. Спочатку перейдіть до розділу Файл -> Параметри в IDE Arduino та у розділі URL додатків диспетчерів додатків, введіть таку URL-адресу.
http://arduino.esp8266.com/stable/packa ... index.json
далі ПРИМІТКА . Ви можете додати багато таких URL-адрес, але вони повинні бути розділені комами.
Тепер перейдіть до Інструменти -> Дошка -> Менеджер дощок і знайдіть ESP8266 у полі пошуку. Виберіть ESP8266 спільнотою ESP8266 та натисніть "Встановити". ПРИМІТКА . Ця можливість додавання сторонніх платівок через диспетчер дошки доступна для Arduino IDE версії 1.6.4 і вище. Отже, переконайтеся, що ви маєте останню версію IDE Arduino.
Програмування ESP8266
Для того, щоб програмувати ESP8266 Module, потрібно підключити його до комп'ютера. Оскільки послідовний зв'язок є єдиним доступним повідомленням на модулі ESP-8266 ESP-01, нам потрібен USB-послідовний адаптер, такий як FTDI, CH340 або FT232RL.
Якщо у вас немає спеціального USB-послідовного адаптера, не хвилюйтеся. Arduino UNO має вбудований адаптер USB для послідовного інтерфейсу (який використовується для програмування Arduino). Ми будемо використовувати це для програмування ESP8266.
Ми будемо використовувати TX і RX Pins Arduino для підключення до модуля ESP8266, а для того, щоб переконатися, що Arduino не використовує ці шпильки, ми можемо завантажити мінімальний ескіз до Arduino.
ПРИМІТКА . Незначний мінімальний ескіз складається з функцій налаштування та циклу без будь-яких даних у них.
У моєму випадку, у мене є додатковий Правління UNDO Arduino з непрацюючою ATmega328p IC. Отже, я зняв IC Microcontroller з Arduino UNO і почав використовувати його як USB для послідовного конвертера.
Схема для програмування ESP8266 за допомогою Arduino
Ви вже бачили необхідні компоненти та схему проекту. Тепер спробуємо зрозуміти дизайн схеми.
Перш за все, модуль ESP8266 працює на блоці живлення 3.3 В, і щось більше, ніж, наприклад, 5 В, наприклад, буде вбивати SoC. Отже, контакт VCC Pin і PIN-код CH_PD модуля ESP-8266 ESP-01 підключено до джерела живлення 3.3 В.
Наступним важливим моментом є те, що модуль WiFi ESP8266 має два режими роботи: режим програмування та нормальний режим.
У режимі програмування ви можете завантажити програму або прошивку на модуль ESP8266 і в нормальному режимі, завантажена програма або прошивка буде працювати нормально.
Щоб увімкнути Режим програмування, PIN-код GPIO0 повинен бути підключений до GND. На схемі, я підключив перемикач SPDT до контакту GPIO0. Перемикання важіль SPDT переключить ESP8266 між режимом програмування (GPIO0 підключено до GND) та нормальним режимом (GPIO0 виступає як гвинт GPIO).
Крім того, RST (Reset) відіграватиме важливу роль у активації режиму програмування. Штепсель RST є активним LOW-штифтом, і, отже, він з'єднаний з GND через кнопку Push. Таким чином, кожного разу, коли натискатиме кнопку, модуль ESP8266 буде скинуто.
Шпильки RX і TX модуля ESP8266 підключені до RX та TX Pins на платі Arduino. Оскільки ESP8266 SoC не може переносити 5 В, RX Pin Arduino з'єднується через перетворювач рівня, що складається з резистора від 1KΩ і 2.2KΩ.
Нарешті, PIN-код GPIO2 підключений до світлодіода для перевірки роботи програми. Нижче наведено всі необхідні підключення для ввімкнення режиму програмування в ESP8266.
VCC - -> 3.3 Вт
GND - -> GND
- 3.3 Вт
RST - -> нормально відкритий; GND для скидання
GPIO0 - -> GND
TX - -> TX від Arduino
RX - -> RX Arduino (через перетворювач рівня)
Робота інтерфейсу Arduino ESP8266
Переконайтеся, що всі перелічені вище підключення правильно виконані. Після підключення та настроювання ESP8266 в режимі програмування (GPIO0 підключено до GND), підключіть Arduino до системи.
Коли модуль ESP8266 увімкнено, натисніть кнопку RST та відкрийте IDE Arduino. У розділі "Правління" (Інструменти -> Рада) виберіть "Загальні ESP8266". Виберіть відповідний номер порту в IDE.
Тепер відкрийте приклад Blink та змініть LED Pin to 2. Тут 2 означає контакт GPIO2 модуля ESP8266. Перш ніж натиснути завантаження, переконайтеся, що спочатку GPIO0 підключено до GND, а потім натисніть кнопку RST.
Код: Виділити все
void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}