Докладна інструкція з програмування ESP8266 з прошивкою NodeMCU / Lua під Windows: 5. Запуск тестового Lua-коду

Вступ

  1. Необхідні інструменти
  2. Перше підключення та перевірка справності нового модуля ESP8266, або плати NodeMCU
  3. Процедура створеня двійкового файлу прошивки
  4. Процедура прошивки нового модуля ESP8266 / NodeMCU
  5. Завантаження і запуск тестового програмного 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 мають стояти як показано на рис.:

Рис. Налаштування програми Lua Loader

Дії, що потрібно виконати:

Дія 1. У програмі Lua Loader, з підключеним com-портом та заживленим контролером, натискаємо кнопку Upload File…

Рис. Кнопка Upload File… в програмі Lua Loader

Дія 2. Обираємо потрібний Lua-скрипт і натискаємо кнопку Відкрити.

Раніше ми підготували тестовий файл з програмою на Lua. Вам теж потрібно створити такий:

Рис. Вигляд тестового коду Lua в редакторі Sublime Text

То ж обираємо цей файл:

Рис. Lua Loader. Вибір потрібного lua-файлу для завантаження у контролер

Починається завантаження обраного файлу:

Рис. Процес завантаження Lua-файлу з ПК в контролер в Lua Loader

Дія 3. Після успішного завантаження файлу lua-програми, її можливо запустити кнопкою інтерфейсу головного екрану програми dofile, обравши спочатку потрібний Lua-файл із списку:

Рис. Вибір і виконання Lua-файлу що було завантажено в контролер

У списку файл з’явиться після того, як він буде завантажений кнопкою Upload File у контролер. Але це не завжди так – файл може бути у списку, навіть якщо він ще не був завантажений у контролер. Такий файл виконати dofile не вийде. Тобто потрібно спочатку його завантажити, а тільки потім виконувати.

Щоб перевірити, чи є реально файл в контролері, потрібно вивести перелік файлів у консоль. Для цього можливо натиснути кнопку file.list.

Рис. Вивід переліку файлів у контролері в консоль Lua Loader

Дія 4. Приклад виконання файлу кнопкою dofile:

Рис. Виконання файлу в Lua Loader

Дія 5. Щоб запустити компіляцію певного коду, потрібно обрати потрібний lua-файл, що вже було завантажено у контролер і натиснути кнопку compile.

Дія 6. Щоб запустити отриманий скомпільований lc-файл на виконання, потрібно обрати *.lua відповідник і натиснути кнопку do(lc).

На цьому дану інструкцію можна було б завершувати, але не можемо не згадати про ще один дуже важливий механізм – автономна робота контролера.

Для того, щоб після прошивки і завантаження програм через консоль, контролер почав виконувати написаний вами код автономно, потрібно створити спеціальний скрипт init.lua.

Цей скрипт буде автоматично виконуватися щоразу після подачі живлення на контролер, або після програмного чи апаратного Reset.

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

В будь-якому випадку, перш ніж створювати такий файл, радимо вам ретельно розібратися у всіх механізмах і застереженнях стосовно використання автозапуску за допомогою init.lua.

Бажаємо успіхів!