- Необхідні інструменти
- Перше підключення та перевірка справності нового модуля ESP8266, або плати NodeMCU
- Процедура створеня двійкового файлу прошивки
- Процедура прошивки нового модуля ESP8266 / NodeMCU
- Завантаження і запуск тестового програмного Lua-коду в контролер
5. Завантаження і запуск тестового програмного Lua-коду в контролер
Багато початківців уявляють собі, що embedded програмування контролерів, сенсорів і актуаторів не має ні чим відрізнятися від програмування комп’ютерів. Все вірно, так має бути, але це не зовсім так.
У мікроконтролера зазвичай немає ні вбудованого дисплея, ні клавіатури, ні вайбера, ні спільної мережевої папки. А тому заздалегідь запасіться терпінням і розумінням, а також необхідними знаннями.
З контролером ESP8266, що прошитий і працює під керуванням прошивки NodeMCU, можливо організувати декілька абсолютно різних шляхів комунікації. Але за замовчуванням працює лише один і це основний механізм – консоль розробника, що перенаправляє свій ввід-вивід на/з UART0 ESP8266.
Таким чином, консоль розробника є єдиним засобом вводити команди, отримувати на монітор ПК результати роботи програми, а також завантажувати свої програми в контролер.
У підсумку маємо наступну систему програмування:
- Lua-код пишемо на ПК в будь-якому текстовому редакторі;
- в програмі Lua Loader завантажуємо свій Lua код з ПК у контролер через USB-UART з’єднання;
- код зберігається на внутрішню flash-пам’ять контролера як окремий файл;
- файлова система пласка – скільки місця, стільки будь-яких файлів можливо зберегти у контролері, *.lua в тому числі;
- структура папок не підтримується файловою системою контролера;
- далі прошивка NodeMCU надає нам вибір: запускати lua код на виконання, або ж спочатку виконати компіляцію вихідного *.lua коду в двійковий *.lc код і вже його запускати на виконання.
- Скомпільований код теж зберігається всередині контролера у вигляді окремих файлів.
Що нам знадобиться на цьому етапі:
- тестовий програмний код, наприклад sys-info.lua (див. на початку публікації);
- програма Lua Loader;
- контролер на базі ESP8266EX (модуль ESP8266-12 з зовнішнім UART-USB конвертером чи плата NodeMCU з micro USB роз’ємом).
Увага: завантажувати Lua програми у контролер потрібно лише після того, як успішно виконано прошивку двійковим файлом NodeMCU. Інакше нічого з наведеного нижче не буде працювати як треба.
Перед тим як почати роботу з Lua Loader, бажано виконати наступні налаштування в інтерфейсі цієї програми:
пташки у меню Settings мають стояти як показано на рис.:
Дії, що потрібно виконати:
Дія 1. У програмі Lua Loader, з підключеним com-портом та заживленим контролером, натискаємо кнопку Upload File…
Дія 2. Обираємо потрібний Lua-скрипт і натискаємо кнопку Відкрити.
Раніше ми підготували тестовий файл з програмою на Lua. Вам теж потрібно створити такий:
То ж обираємо цей файл:
Починається завантаження обраного файлу:
Дія 3. Після успішного завантаження файлу lua-програми, її можливо запустити кнопкою інтерфейсу головного екрану програми dofile, обравши спочатку потрібний Lua-файл із списку:
У списку файл з’явиться після того, як він буде завантажений кнопкою Upload File у контролер. Але це не завжди так – файл може бути у списку, навіть якщо він ще не був завантажений у контролер. Такий файл виконати dofile не вийде. Тобто потрібно спочатку його завантажити, а тільки потім виконувати.
Щоб перевірити, чи є реально файл в контролері, потрібно вивести перелік файлів у консоль. Для цього можливо натиснути кнопку file.list.
Дія 4. Приклад виконання файлу кнопкою dofile:
Дія 5. Щоб запустити компіляцію певного коду, потрібно обрати потрібний lua-файл, що вже було завантажено у контролер і натиснути кнопку compile.
Дія 6. Щоб запустити отриманий скомпільований lc-файл на виконання, потрібно обрати *.lua відповідник і натиснути кнопку do(lc).
На цьому дану інструкцію можна було б завершувати, але не можемо не згадати про ще один дуже важливий механізм – автономна робота контролера.
Для того, щоб після прошивки і завантаження програм через консоль, контролер почав виконувати написаний вами код автономно, потрібно створити спеціальний скрипт init.lua.
Цей скрипт буде автоматично виконуватися щоразу після подачі живлення на контролер, або після програмного чи апаратного Reset.
Але це вже інша історія, котра потребує не менш докладного розгляду ніж прошивка.
В будь-якому випадку, перш ніж створювати такий файл, радимо вам ретельно розібратися у всіх механізмах і застереженнях стосовно використання автозапуску за допомогою init.lua.
Бажаємо успіхів!