Professional Documents
Culture Documents
Лек10 WiFi ПрогрМікроконтр (2022)
Лек10 WiFi ПрогрМікроконтр (2022)
У цього МК немає вбудованої flash -пам'яті, тому він працює із зовнішньою flash-пам'ятю по
інтерфейсу SPI. У більшості популярних версій МК її об'єм варіюється від 512 Кбайт до 4
Мбайт.
ESP - 01
Вважається найпопулярнішим з серії. Має 8 контактів (VCC, GND, UTXD, URXD, CH_PD,
GPIO0, GPIO2, GPIO6) і PCB -антенну (друкований провідник на самій платі). З виводів тут є
присутніми тільки 3 GPIO, але не варто бачити в цьому одні мінуси. Якщо треба буде
управляти одним реле або отримувати дані з датчика температури, вам не знадобляться усі
виводи МК, досить буде лише пари. До того ж, існують плати і шилди з можливістю простої
комутації саме до цієї версії МК. Наприклад така:
ESP - 07
У цій версії у вічі відразу впадає металевий екран (який перед цим з'являється на ESP - 06).
На борту керамічна антена і роз'єм для зовнішньої антени.
ESP – 12
У свою чергу, існує декілька варіантів цієї версії : ESP - 12S, ESP - 12F, ESP - 12E. Друга і
третя версії мають на торці додаткові 6 розведених контактів.
Плати
WeMos D1 mini
Має розпайку дев'яти GPIO -контактів. На платі є досить відомий міст CH34x (такі часто
ставлять на клони Arduino). Встановлений МК з 4 Мбайт flash -пам'яті. Недолік для деяких
— доведеться самому паяти контакти на плату (йдуть в комплекті). Конструкційно сумісна з
різними шилдами реле/, що випускаються, датчиками.
NodeMCU v0.9/v1
Фінальна версія плати цієї серії. Існує і v2 «Amica», яка менше по габаритах. v3 носить назву
«LoLin» і відрізняється від попередньої версії тільки розмірами і незначними деталями
(наприклад додатковою розпайкой шини живлення). Окрім традиційного моста
CH340/CH341 на плати ставлять чіп CP2102, так що уважніше з вибором драйвера на них.
Характеристики
Усі ці (і не лише ці) мікроконтролери виконані на чіпсеті ESP8266EX, а отже,
характеристики у них однакові:
Прошивка
У більшості випадків набагато зручніше прошивати МК і працювати з ним зі своєю
прошивкою. Проте тут теж є свої нюанси. Ось 3 варіанти подій :
• У вас «голий» ESP8266, наприклад ESP - 01. Вам знадобиться USB - UART
перехідник, який треба підключити до МК. Цей перехідник обов'язково має бути на
логіці 3-вольта, т. до. інакше можна легко зіпсувати.
• Другий випадок ідентичний першому, крім того, що замість перехідника можна
використати будь-яку плату Arduino. Досить спеціальним чином підключити ESP8266
до UART -контактам Arduino, а її саму «відключити», замкнувши контакт апаратного
скидання (RESET) на землю. Природно, живити ESP8266 треба буде від шини
живлення 3.3 В. В цьому випадку в якості перехідника USB - UART виступатиме міст
(частіше усього CH340) на самій платі Arduino. Цей процес також описаний в статті
вище.
• Кращий варіант — це плата з USB — UART мостом на борту (як NodeMCU, WeMos і
інші). В цьому випадку нічого додаткового робити не треба — просто підключайте
плату через USB.
У чому прошивається?
Існує декілька софтверів для прошивки МК. Наприклад NodeMCU Flasher (яка підходить не
лише для плат NodeMCU) або ESPTool (потрібний Python).
Проте в цій статті робота з МК і процес прошивки будуть розглянуті в Arduino IDE.
Спочатку середовище Arduino IDE не призначене для роботи з МК серії ESP. Щоб це
виправити, йдемо у Файл → Налаштування і в полі Додаткові посилання для Менеджера
плат вставляємо це посилання:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Після установки в списку плат з'явиться чимала кількість плат. Якщо не знайшли свою плату
або не знаєте її назви — вибирайте Generic ESP8266 Module. Тепер можна вибрати свій МК в
списку COM -портов.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup(void){
Serial.begin(115200);
server.on("/inline", []() {
server.send(200, "text/plain", "Відмінна робота"!);
});
// Запускаємо сервер
server.begin();
Serial.println("HTTP-сервер запущений");
}
void loop(void){
server.handleClient();
}
Що робить цей скетч? МК підключається до вашій WiFi -мережі і запускає сервер. У монітор
послідовного порту виведеться локальний IP -адрес (приміром, 192.168.0.105). Забиваємо
цей IP в адресний рядок браузеру, після чого в нім повинен відобразитися рядок «Привіт від
ESP8266»!.
Розподіл пам'яті
Як вже говорилося — вбудованої пам'яті чіпсет не має, а тому використовується зовнішня —
від 512 Кбайт до 4 Мбайт. Ця пам'ять розподілена на наступні розділи:
У зовнішній flash -пам'яті явно є свої «плюшки». Одна з них — файлова система. Як це не
дивно, в неї можна з легкістю записати файли (як на який-небудь накопичувач). На
апаратному рівні це можна було б реалізувати підключивши до МК модуль SD -карт. Проте
це рішення вимагає вільних портів (яких іноді може не бути). Тому SPIFFS є дуже корисним
в цьому плані.
Розмір файлової системи (від 32 Кбайт до 15 Мбайт) залежить від самого об'єму flash -пам'яті
і від конфігурації, виставленої в Інстурменти → Flash size. Наприклад, конфігурація 4M (2M
SPIFFS) призначена для МК із загальним об'ємом flash -пам'яті 4 Мбайт, 2 Мбайт з яких
будуть виділені під файлову систему.
SPIFFS не працює з теками — вона містить тільки список файлів. Відповідно, якщо
завантажити в неї теку style, в якій буде файл header.css, то у файлову систему систему
запишеться файл з ім'ям /style/header.css. Про це варто пам'ятати, тому що довжина
файлового імені не повинна перевищувати 31 символ (читається 32, але символ з кодом 0
відведений під завершення рядка). У цей 31 символ, природно, входять усі слэши, точки
перед розширенням і саме розширення. Тому доведеться утриматися від багаторівневих
структур і довгих імен файлів/тек.
Режим станції
Цей клас оснащений декількома функціями для управління WiFi -соединением. Якщо
з'єднання буде втрачено, ESP8266 автоматично перепідключиться до робочої точки доступу,
коли вона знову буде доступна. Те ж саме відбувається і після перезавантаження модуля. Це
можливо завдяки тому, що ESP зберігає дані про останню робочу точку доступу в flash –
пам’яті, яка при відключенні живлення не стирається. Крім того, збереження даних також
дозволяє ESP8266 перепідключитися до мережі, якщо ви завантажили інший скетч, але WiFi -
мережа і пароль до неї залишилися тими ж.
Рисунок 9.2
Точка доступу (AP) - цей пристрій, який забезпечує доступ до WiFi - мережі для інших
пристроїв (станцій), а потім підключає їх до дротяної мережі. ESP8266 теж може працювати в
режимі точки доступу, але за тим виключенням, що у нього немає інтерфейсу для підключення
до дротяної мережі. Такий режим називають «програмною точкою доступу» або soft - AP.
Максимальна кількість станцій, які можуть бути підключені до ESP8266 в режимі програмної
точки доступу, - п'ять.
Рисунок 9.3
Сканування
Клієнт
Захищений клієнт
Цей клас - розширення класу клієнта. У нім підключення і обмін даними з серверами
здійснюється за допомогою захисного протоколу TLS. Версія TLS 1.1 підтримується, версія
TLS 1.2 не підтримується.
Рисунок 9.5
Сервер
UDP
Generic
Опис класів
Основні з них:
println() - аналогічно print(), від функції print() відрізняється тим, що після даних, що
виводяться, повинен стояти символ нового рядка.