Программируем NodeMcu с ESP-12F на борту

Общие сведения о том, как проверить работоспособность отладочной платы NodeMcu, я уже приводил в статье о тестировании через терминал. Настало время заставить эту железяку делать то, чего хочется нам, а не ей. И тут, как правило, ожидают первые разочарования: информации в сети много, а ни один из вариантов не работает.

Есть немало статей о модуле ESP8266, где авторы добились результата, но всё это было несколько лет назад, и относилось к версиям с 512 килобайтами флеш-памяти на борту. Разумеется, сегодня сборки обзавелить четырьмя мегабайтами де-факто, обновились прошивки, и старые описания не дают результата. Более того, уже появились ESP-32, которые обещают быть ещё круче, но для начального обучения сойдёт и младшая версия.

Итак, на столе модуль NodeMcu с ESP-12F на борту, купленный в 2017 году в чайной стране за смешные 2,8 убитых енотов доллара. На команды АТ он отвечает, но при холодном рестарте вываливает в терминал какие-то кракозябы, а пробиться к заветному init.lua, чтобы написать свой код не выходит вообще никак.

Кроме того, традиционные надписи на обратной стороне платы сбивают с толку — ничего такого теперь делать не нужно:

Хотя нет: под Виндоуз драйвер ком-порта CP2102 установить всё-таки придётся. Качается с официального сайта Silicon Labs.

Перепрошивка

Кратчайший путь (найденный пробами и ошибками за один вечер) — собрать свою прошивку. Звучит страшно, а на самом деле нужно просто зайти на nodemcu-build.com, указать свою электропочту и в самом низу нажать заветную кнопку «Start your build». Галочки пока можно оставить как были (о них чуть позже). Придёт письмо, что процесс пошёл, а вскоре — со ссылками на два бинарных файла: для математики с плавающей запятой и целочисленной. Для начала можно использовать любой целочисленный вариант. Кроме того, в письме будет ссылка на программу-прошивальщик nodemcu-pyflasher. Поверьте — это самая простая утилита в своём роде, если у вас установлен Python.

Об установке Питона большого смысла писать нет, ссылка на тему «install python ubuntu» гуглится за две секунды, под Виндоуз аналогично.

Распаковываем архив с прошивальщиком, запускаем nodemcu-pyflasher.py

Тут помимо понятного — указать порт, выбрать файл прошивки — важно указать режим флеш-памяти dio, ну и стереть её на всякий случай. Скорость по умолчанию установлена правильно. Жмём Flash NodeMCU, смотрим отчёты, радуемся помигиванию светодиода в процессе.

Первая программа

Модуль готов. Осталось найти, в чём писать код и чем заливать его в камень. Здесь производитель, как и в случае с заливкой прошивок, даёт свободу полёта фантазии, и найти что-то конкретное удаётся не сразу. Мой выбор пал, опять же, на мультиплатформенный ESPlorer. Взять его можно в исходниках на GitHub-е, а можно готовую сборку с esp8266.ru. По последней ссылке найдётся также краткое описание рабочей среды (англ.).

Из недостатков — для работы нужна виртуальная жаба Java-машина, jvm. Но думаю, и это не препятствие. Тем более, что в качестве бонусов программа даёт возможность оперативно работать и с АТ-командами через понятные формы. Правда, запустив Lua, возвращаться к ним вряд ли есть смысл.

Запускаем java -jar «ESPlorer.jar»

В правой части вверху выбираем порт, жмём большую кнопку «Открыть». Здесь лично у меня процесс останавливается в ожидании ответа контроллера, и я жму RST на плате, после чего они начинают дружить.

Ну что — пора уже что-то сделать! Тем более, что вывод терминала в правой части явно приглашает к этому.

Код пишется в левой части окна. Я взял самую банальную «мигалку»:

lighton=0
pin=4
gpio.mode(pin,gpio.OUTPUT)
tmr.alarm(1,1000,1,function()
   if lighton==0 then
      lighton=1
      gpio.write(pin,gpio.HIGH)
   else
      lighton=0
      gpio.write(pin,gpio.LOW)
   end
end)

Осталось нажать «Save to ESP» в левом нижнем углу. Код построчно зальётся в контроллер и через пару секунд светодиод оживёт, показывая, что всё получилось. Теперь можно изучать Lua и писать свой код.

В следующих публикациях я постараюсь описать процесс приручения отдельных модулей ESP-12F, — там тоже есть подводные камни.

П.С.: Чуть не забыл о галочках для сборки своей прошивки. По умолчанию там включены блоки, необходимые для самых распространённых реализаций: таймер, Wi-Fi, порты ввода-вывода. Если понадобятся какие-то особые функции, например, расширенный таймер с возможностью «умно» засыпать, продолжая счёт времени, но не включая радио при каждом событии, — нужно посмотреть на этот перечень галочек ещё раз и почитать, что пишут к каждой из них (ссылка там рядом).


Protected by Copyscape Online Plagiarism Test
Вы не можете высказаться или оставить ссылку здесь...

Обсуждение закрыто.

Powered by WordPress | Thanks to NewWpThemes | Александр Божок