Як підключити Wifi модуль до Ардуіно — прошивка та налаштування

ESP8266 — це популярний контролер, здатний організувати бездротовий зв’язок при проектуванні системи «Розумний дім». Його «будова» дозволяє йому забезпечувати обмін даними за стандартами Wifi. Це забезпечує проектам, створеним на Arduino, доступ в інтернет для дистанційного збору та обміну інформацією. На основі цього чіпа створені такі популярні плати, як WeMos і NodeMcu, а також саморобні технології. У цьому матеріалі буде розібрано, що таке Arduino Wifi ESP8266, як налаштувати ардуіно вайфай модуль і його взаємодію з іншими засобами.

ESP8266ESP8266

Опис ESP8266

ESP8266 — це контролер, який працює зі стандартом безпровідного зв’язку Wifi і здатний виконувати код програм з вбудованої флеш-пам’яті. Чіп був розроблений і випущений китайською компанією Espressif і моментально став одним з найпопулярніших для даних цілей.

Сам вай фай модуль для ардуіно Wifi досить дешевий і містить невелику кількість зовнішніх елементів, маючи наступні технічні характеристики:

  • Підтримка протоколів стандарту Wifi b/g/n з алгоритмами шифрування і захисту даних WEP, WPA, WPA2;
  • Чотирнадцять портів вводу і виводу, послідовного периферійного інтерфейсу SPI, I2C, UART і 10-бітний аналого-цифровий перетворювач;
  • Підтримка зовнішньої пам’яті до 16 Мб;
  • Достатню для живлення напруга від 2.2 до 3.6 Вольт і споживання струму до 300 мА, яке залежить від режиму роботи.

Важливо! Мікроконтролер не має настроюваної енергонезалежною пам’яттю. Всі програми виконуються з зовнішніх постійних запам’ятовуючих пристроїв і завантажуються динамічним чином. Доступ до внутрішніх інтерфейсів здійснюється через API набір бібліотек, а не з допомогою документації. Кількість оперативної пам’яті дорівнює приблизно 50 Кб.

Особливості плати

Контролер володіє наступними особливостями:

  • Зручність підключення до ПК через інтерфейс USB. Через нього ж виконується і живлення;
  • Вбудований перетворювач напруги на 3.3 Вольта;
  • 4 Мб флеш-пам’яті;
  • Наявність кнопок перезавантаження і перепрошивки;
  • Порти виведені на контролер у два ряди з кроком у 2.5 мм.

Сфери застосування

Модуль часто застосовують у різних проектах у зв’язці з іншими пристроями для:

  • Автоматизації процесів;
  • Створення систем «Розумний будинок» своїми руками, які включають управління умовами в будинку (температура і світло), сигналізації і відеокамери, бездротове управління приладами;
  • Мобільних приладів;
  • Мітки з допомогою ідентифікаторів ID;
  • Іграшок для дітей;
  • Мережі Mesh типу.

Терморегулятори

Важливо зрозуміти, що варіацій модуля існує чимало. На малюнку в кінці попереднього підрозділу представлені лише деякі з них. Особливу популярність здобув контролер ESP-01. Виконання коду програми визначається станом портів GPIO0, GPIO2 і GPIO15: включенням і вимиканням подачі живлення на них. Існує два важливих режиму роботи:

  • Код виконується з універсального асинхронного приймача (UART) з комбінацією GPIO0 = 0, GPIO2 = 1 і GPIO15 = 0. Ці дії виконуються для перепрошивки флеш-накопичувача;
  • Код виконується з зовнішнього ПЗП з комбінацією GPIO0 = 1, GPIO2 = 1 і GPIO15 = 0 для роботи в штатному режимі.

Наводиться офіційне опис всіх контактів:

  • 1 — заземлення, а 8 — живлення плати. Напруга необхідно подавати до 3.6 На відміну від ардуіно, в який подають 5В;
  • 6 — кнопка Reset, необхідна для перезавантаження чіпа;
  • 4 — CP_PD — переводить чіп у режим енергозбереження;
  • 7 або 0 — RXD0 і TXD0 апаратні піни для універсального асинхронного приймача, необхідні для перепрошивки;
  • 2 — TDX0, до якого підключають світлодіод, що спрацьовує у разі передачі даних по УАПП або при підключенні на низькому логічному рівні;
  • 5 — GPI0, що дозволяє здійснювати вхід і висновок, а також переводити контролер у режим програмування;
  • 3 — GPIO2 — стандартний порт вводу/виводу.

Основні відмінності ардуіно від ESP8266

Від не менш популярного Arduino Wifi модуль ESP відрізняється наступними рисами:

  • Наявністю більшого обсягу флеш-пам’яті і відсутністю енергонезалежній пам’яті;
  • Більш швидким процесором;
  • Наявністю Wifi модуля;
  • Споживанням більшої сили струму, ніж ардуіно

Програмування ESP8266 Arduino IDE

Для зручності програмування на мікроконтролері в комплекті йдуть:

  • Компілятор коду програми типу GNU;
  • Бібліотеки для роботи зі стандартами Wifi і TCP/IP;
  • Програмні засоби для завантаження даних в пам’ять чіпа;
  • Інтегроване середовище розробки програм.

Важливо! Стандартна прошивка модуля дозволяє йому керувати модулем з іншого контролера і організувати роботу з Wifi і модемом. Крім заводської прошивки є також маса інших готових рішень, що настроюються за допомогою веб-интрефейса.

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

Функції, підтримувані мікроконтролером:

  • Більшість функцій мови програмування Wiring;
  • Управління таймінгом та delay, що дозволяють передати час, що минув зі старту запуску чіпа, завершити або призупинити виконання коду;
  • Функції Serial, Serial1, які аналогічно ардуіно працюють з даними та блокують їх запис або читання за необхідності;
  • PROGMEM-макрос, що дозволяє переміщувати дані для читання flash-пам’ять;
  • Шина I2C, яку потрібно вибирати з допомогою функції Wire.pins(int sda, int scl);
  • SPI та OneWire бібліотеки.

Використання ESP8266 для радіозв’язку ардуіно по WiFi

За допомогою ESP можна влаштувати підключення Arduino або реле до Wifi. Важливий момент зв’язку полягає в тому, що напруга, що подається для цих мікроконтролерів, різне, і їх з’єднання повинно відбуватися через резистивні дільники. Загальна схема підключення виглядає так: сін 3.3 Вольта від ардуіно підключається до CH_PD на ESP, а заземлення з ардуіно підключається до заземлення на ЕЅР. 0 на ТХ, а 1 на RХ.

Подальше підключення виконується за інструкцією:

  1. Підключення USB-TTL до USB порту і ESP;
  2. Запуск середовища розробки Arduino;
  3. Вибір у налаштуваннях необхідних параметрів для пам’яті, порту та плати;
  4. Перехід у Файл — Приклади — ESP — WifiServer;
  5. Запис SSID та захисного коду бездротової мережі;
  6. Запуск компіляції і завантаження;
  7. Очікування завершення прошивки і від’єднання контакту GPI0 від заземлення;
  8. Установка швидкості в районі 115 200;
  9. Підключення та отримання нового IP-адреси;
  10. Далі потрібно відкрити інтернет-браузер і ввести в рядок пошуку Номер IP/gpio/1;
  11. Промоніторити порт і перевірити, загорівся світлодіод, якщо він підключений.

NodeMCU на базі esp8266

NodeMCU — одна з найбільш популярних платформ, заснованих на чіпі ESP. Вона найчастіше використовується, щоб управляти схемами на відстані за допомогою бездротового зв’язку Wifi. Сама плата коштує недорого, важить мало і має порт USB. З боків від нього розташовані кнопки для перезавантаження та налагодження платформи. Живлення найкраще подавати до 12, але не менше 10.

Важливо! Найбільша перевага плати — її низьке енергоспоживання. Саме тому NodeMCU часто застосовують у схемах на автономному живленні від батареї. Більш того, NodeMCU має набір API для введення і виведення в апаратному режимі, що дозволяє мінімізувати кількість дій при налаштуванні і роботі.

WeMos на базі ESP8266

Друге популярне рішення на базі ESP — WeMos. Він також підтримує зв’язок по WiFi, розробку на Arduino IDE і навіть містить роз’єм для зовнішньої Wifi антени. Максимальна напруга становить 3.3 Ст. На платі розташовано 11 портів для введення і виведення, що підтримують стандартні для ESP і Arduino технології. Як і в NodeMCU, у WeMos є USB-порт. Щоб працювати з платформою, необхідно встановити драйвер CH340 і налаштувати IDE від ардуіно на роботу з ESP.

Приклади використання та передачі даних з AArduino на AArduino або ПК по Wifi

Як приклад можна навести створення програми для NodeMCU в середовищі ардуіно. Для цього на ПК встановлюється для модуля Arduino Wi fi, яке налаштовується на роботу з ESP8266.

Далі, наприклад, плата NodeMCU підключається до аналогового фоторезистору і відправляє дані на сервер по протоколу MQTT. Схема з’єднання представлена нижче.

Щоб написати і запустити код, знадобиться бібліотека pubsubclient. Скачавши її, потрібно помістити файли з архіву в папку бібліотек IDE і відкрити в середовищі скетч _2.ino. Щоб все працювало як треба, необхідно внести в код наступні зміни (SSID і пароль):

const char* ssid = «your_wifi_hotspot»
const char* password = «your_wifi_password»

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

Після всього цього плата підключається по Wi-fi до MQTT і він буде відображати дані фоторезистора.

Wifi сервер на ардуіно на базі ESP організовується аналогічним чином. Для нього можна використовувати мову скриптів LUA. Скрипт, представлений нижче, створює найпростіший сервер, який відображає інформацію при зверненні пристроїв на платі:

Код зберігається у файлі server1.lua, після чого запускається. Щоб перевірити роботу, можна підключитися до точки доступу та набрати в браузері IP-адресу 192.168.4.1:

Елементи плати

Детальніше про функції та склад контролера було написано вище. Узагальнено модуль містить наступні елементи:

  • Сам чіп WiFi ESP;
  • Флеш-пам’ять;
  • Кварцовий резонатор;
  • Світлодіодні індикатори;
  • Антену для лову Wifi.

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

NodeMCU і Arduino IDE. Керування по WI-FI: Відео