ESP8266 и прошивка NodeMcu

esp8266 nodemcu

esp8266 nodemcu

Глючность прошивок с AT командами многих разочаровывает, в том числе и меня. Но я оптимистично смотрю в будущее и вижу … NodeMcu. Итак, что ЭТО может?  Эта прошивка может интерпретировать команды языка Lua. Причем не просто команды в терминале, как AT команды, а может создавать файлы во флеш памяти ESP8266 и выполнять их. Autorun, разумеется тоже есть — здесь это init.lua. С помощью lua-команд мы можем:

  • подключаться к WiFi точке доступа
  • выступать в роли WiFi точки доступа
  • уходить в глубокий сон для снижения энергопотребления (недоступно для AT команд)
  • привязать lua-функцию к кнопке на GPIO16 (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
  • включать/выключать светодиод на  GPIO16 (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
  • перенаправлять вывод, в примерах есть telnet сервер (недоступно для AT команд)
  • создавать/записывать/читать/выполнять/искать/удалять/выводить списком файлы во флеш памяти (недоступно для AT команд)
  • в режиме startsmart автоматически находить открытую WiFi сеть и подключаться к ней (недоступно для AT команд)
  • выводить свой MAC адрес (недоступно для AT команд в стандартной прошивке, доступно в некоторых кастомных)
  • управление пользовательским таймером (недоступно для AT команд)
  • управлением таймером WatchDog (недоступно для AT команд в стандартной прошивке, частично доступно в некоторых кастомных)
  • управление (запись/чтение/триггер) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
  • PWM (ШИМ) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15 (недоступно для AT команд)
  • TCP/IP сокеты
  • режим WEB сервера
  • I2C — адресация/запись/чтение (недоступно для AT команд)
  • АЦП 10 бит на пине TOUT (недоступно для AT команд)

Полное описание команд на github

Итак, как это все попробовать?

1. Качаем прошивку

2. Прошиваем ESP8266 любой утилитой, например XTCOM UTIL

3. Качаем luautil, или ESPlorer

автором которых является ваш покорный слуга (для luatool требуется установленный python 2.7, pyserial — гугл вам в помощь, для ESPlorer требуется JAVA )

4. Прописываем в файле init.lua SSID и PASSWORD вашей точки доступа (lua файлы открывайте чем угодно, хоть блокнотом)

5. Заливаем lua скрипт init.lua в ESP8266 с помощью luatool командой

6. Заливаем lua скрипт main.lua (это имя файла по-умолчанию, поэтому его можно не указывать)

7. Подключаемся терминалом к ESP8266, делаем

init.lua автоматически стартует после перезагрузки

все готово, теперь можем запускать основной скрипт

Если все сделали правильно, то через cекунду вы увидите в терминале

В чем ложка дегтя? Большой черпак дегтя в том, что прошивка очень сырая. Часть команд, описанных в документации в данный момент вообще не работает. Уходит в exception при ошибках переполнения таймера, переменных и много чего еще. Радует то, что разработчики (китайские товарищи, кстати) активно над ней работают. Сообщество им активно помогает. Потенциал этой прошивки огромен — полнейшая круть!