- Необхідні інструменти
- Перше підключення та перевірка справності нового модуля ESP8266, або плати NodeMCU – читати
- Процедура створення двійкового файлу прошивки – читати
- Процедура прошивки нового модуля ESP8266 / NodeMCU – читати
- Завантаження і запуск тестового програмного Lua-коду в контролер – читати
1. Необхідні інструменти
В той чи інший спосіб ми будемо застосовувати наступні інструменти::
- 30-45 хвилин вільного часу на виконання всіх етапів інструкції;
- ПК чи ноутбук з ОС Windows з доступом до Інтернет;
- Обліковий запис з правами адміністратора на вашому комп’ютері;
- Контролер NodeMCU/ESP8266 (ESP8266-12) (бажано поцікавитися у продавця, який саме чіп UART-інтерфейсу є на борту обраної вами плати NodeMCU);
- Дріт USB <-> microUSB (для приєднання контролера до вашого ПК як під час прошивки, так і програмування, а також у процесі його експлуатації);
- Якщо у вас немає апаратної плати NodeMCU з модулем ESP8266 та вбудованим UART, і натомість ви використовуєте лише модуль ESP8266, вам додатково знадобиться зовнішній USB-UART конвертер, що дозволить підключити модуль контролера до ПК;
- Текстовий редактор для написання скриптів Lua (Notepad, Sublime Text, Notepad++, чи інший);
- Драйвер віртуального Com-порту (має відповідати чіпу UART-інтерфейсу на NodeMCU чи зовнішнього UART конвертера) встановлений в операційній системі ПК;
- Спеціальна термінальна програма ESP8266 LuaLoader;
- Спеціальний програмний засіб для прошивки контролера (NodeMCU PyFlasher 4.0, або ESP8266 Flasher);
- Спеціальний двійковий файл типу (firmware.bin) прошивки NodeMCU що згенеровано на сайті NodeMCU-build.com. Як згенерувати цей файл ми докладно розглянемо далі;
- Текстовий файл з текстом першої програми. Далі наводимо приклад такого файлу.
Розглянемо деякі з цих інструментів докладніше:
Апаратні засоби:
- Плата NodeMCU з micro USB або модуль контролера ESP8266 з підключеними кнопками Flash та Reset;
- Кабель USB – micro USB (для плати NodeMCU) або USB – UART конвертер для модуля контролера ESP8266;
- Комп’ютер з OS Windows 7 і вище.
Програмні засоби:
- USB драйвер com-порта для CP2102 або аналогічного конвертера;
Драйвер віртуального com-порта потрібен як у випадку плати NodeMCU з вбудованим чіпом UART, так і якщо використовується зовнішній UART конвертер. Операційна система в більшості випадків автоматично встановлює потрібний драйвер, але іноді це потрібно робити самостійно, в ручному режимі.
Якщо драйвер не встановився автоматично після підключення NodeMCU (чи USB-UART конвертера) до ПК через USB, вам потрібно знайти і скачати потрібний драйвер в інтернет.
Для CP2102 драйвер тут: CP210x USB to UART Bridge VCP Drivers
Для CH340/CH341 драйвери є тут: How to Install CH340 Drivers
або на сайті оригінального виробника тут (сайт довго завантажується, але працює): CH341SER.ZIP
- ESP8266 Lua Loader
Download: http://benlo.com/esp8266/LuaLoader.zip
Потрібно скачати і встановити програму на ПК.
- NodeMCU PyFlasher
Download: NodeMCU-PyFlasher-4.0
Потрібно скачати і встановити програму на ПК.
- Файл прошивки двійковий (файл прошивки)
Файл прошивки ми створимо у наступних розділах даної інструкції.
УВАГА: модулі ESP8266 постачаються з базовою прошивкою Espressif (чи виробника модуля, на кшталт AI-THINKER). Ця початкова прошивка нам не потрібна і ми її замінюємо на прошивку NodeMCU. Але базова прошивка теж дозволяє перевірити, чи робочий контролер.
- Текстовий процесор (редактор).
Необхідно встановити зручний для вас текстовий редактор чи середовище розробки. Бажано, щоб цей інструмент підтримував синтаксис мови Lua.
Ми користуємося в залежності від задач Notepad++ або Sublime Text.
Тестовий програмний код Lua:
У якості тестового програмного коду згодиться будь-який скрипт написаний на Lua, але ми пропонуємо свій приклад:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
-- sys-info.lua -- print('Boot reason:') print('Raw: 1 PwrOn; 2 Rst(sw?); 3 HWRst; 4 WDT') print('Ext: 0 PwrOn; 1 HW WD; 2 Exception; 3 SW WDT; 4 SW restart; 5 wakeup DS; 6 Ext rst') print(node.bootreason()) print('Chip ID:') print(node.chipid()) print('Flash ID:') print(node.flashid()) print('EGC meminfo:') print(node.egc.meminfo()) print('Node Heap:') print(node.heap()) print('CPU Freq:') print(node.getcpufreq()) print('Software info:') for k,v in pairs(node.info("sw_version")) do print(k,v) end print('Hardware info:') for k,v in pairs(node.info("hw")) do print(k,v) end print('Build config:') for k,v in pairs(node.info("build_config")) do print(k,v) end print('WiFi default mode:') print('wifi.STATION, wifi.SOFTAP, wifi.STATIONAP or 0 - wifi.NULLMODE') print(wifi.getdefaultmode()) -- end -- |
Цей код є дуже простим, але дозволяє дізнатися багато діагностичних даних про контролер: версії програмного забезпечення, кількість пам’яті тощо.
Деякі команди з даного прикладу можуть не підтримуватися ранніми версіями прошивки NodeMCU. Але якщо ваша прошивка буде побудована засобами сайту nodemcu-build.com, то там автоматично буде застосована остання версія прошивки 3.0.0 і вище. А значить і з наведеним кодом проблем не виникне.