Я взяв у руки модулі ESP8266 - 12E з продажу. З самого початку про це я знав лише те, що він підходить для IOT - Інтернету речей. Суть IoT полягає в тому, що ви можете підключити будь-який пристрій до Інтернету. Чому? Ну, щоб ви могли отримати інформацію, наприклад про температуру, вологість, чи зберігається він у коробці, чи відкритий холодильник і як часто, як довго, контролювати центральне опалення та багато іншого. Модуль малий, щоб його можна було використовувати в будь-якому існуючому пристрої.

Це модуль, який має модуль Wi-Fi з мікропроцесором та простою пам’яттю. Він підключається через послідовний інтерфейс. Згідно з цим описом, він цілком нагадує іншу відому дошку для побудови прототипів - arduino. І не випадково. Середовище програмування Arduino IDE було змінено, щоб програми могли завантажуватися в модулі ESP. Сам модуль ESP відрізняється від Arduino не тільки тим, що він не має USB-порту, лише послідовний рядок, але і способом завантаження програми. Модуль ESP має стандартний режим, в якому він завантажується при підключенні живлення, і режим програмування, в якому він завантажується після підключення живлення. Напруга живлення для ESP становить 3,3 В! Крім того, сигнали на виводах вводу-виводу використовують логічне значення 0-3,3 В. Подача напруги 5 В на джерело живлення або на деякі входи призведе до пошкодження самого модуля ESP. Для цих модулів існує специфічне споживання, яке вони зазвичай мають і може сягати 800 мА. Тому під час програмування та розгортання необхідно забезпечити достатньо розмірене джерело. Часто простого порту USB від ПК/ноутбука недостатньо для роботи або програмування. Ці порти USB здатні забезпечити максимум 500 мА (і це займе щось із конвертером/arduino).

технічні
Основне підключення ESP-12E

На малюнку вище показано підключення ESP12E, згідно з яким після підключення джерела живлення він переходить у стандартний режим. Якщо ми підключимо джерело живлення, натискаючи кнопку S1, ESP завантажиться в режим програмування, і ми зможемо завантажити програму через підключені IDD-висновки TXD і RXD через arduino IDE.

В Інтернеті є багато інструкцій щодо завантаження програми на ESP за допомогою перетворювачів USB-TTL. Також можливо записати програму за допомогою плати arduino. Не має значення, яку з них ви вирішите, чи це буде arduino uno, nano чи mega.

Просто підключіть RXD на ESP до RXD на платі arduino, а також висновки TXD. УВАГА! не навпаки. Зв'язок між RX і TX та TX з RX є неправильним, і запис із таким з'єднанням не вдасться. Тоді все, що вам потрібно зробити, це встановити плату через менеджер дошки в IDE arduino, і програма завантажується так само, як і на платі arduino. Однак необхідно звернути увагу на правильний підбір плати та додаткові параметри модуля. Я використав параметри, зображені на малюнку для моїх модулів ESP12, і їх можна використовувати для початкового налаштування.

Налаштування параметрів модуля ESP-12E

Я додаю одне зі своїх знань із роботи з цими модулями. Якщо ви використовуєте переривання (зовнішні або внутрішні), функції для обробки цих переривань повинні бути визначені як "void ICACHE_RAM_ATTR function ();". Це фактично для того, щоб робочі функції знаходились у частині RAM RAM ICACHE, а не у частині Flash. Без цього визначення переривання призведе до постійного скидання, і модуль не завантажиться або не запустить завантажену програму.

Я протестував arduino на прототипі разом із датчиком DHT22, який вимірює вологість та температуру повітря. Разом з бібліотекою thingspeak ці дані регулярно завантажувались на віддалений сервер thingspeak, де я міг їх переглядати або додатково обробляти через веб-сайт або мобільний додаток. У Google Play є безліч додатків, які підтримують сервер thingspeak. Сервер Thingspeak розроблений спеціально для цих програм IoT. Звичайно, є й інші подібні сервери, вибирайте їх лише для вас.

ESP12E на прототипі плати і датчик DHT22.