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 любой утилитой, например [wpfilebase tag=fileurl id=18 linktext=’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 при ошибках переполнения таймера, переменных и много чего еще. Радует то, что разработчики (китайские товарищи, кстати) активно над ней работают. Сообщество им активно помогает. Потенциал этой прошивки огромен — полнейшая круть!