Встретил очень удобное в некоторых случаях решение — «WebIDE» под NodeMCU:
nodemcu-web-ide - Simple IDE running on NodeMCU Lua
// github.com
Фактически просто
ide.lua
-файлик, заливаемый на устройство. Запускаем, цепляемся по сети по IP-адресу и прямо из браузера, из любого места, на ESP8266/NodeMCU можем создавать новые файлы, редактировать и запускать имеющиеся. Ну и удалять/компилировать, понятно. Вот и весь небогатый функционал, но он сильно облегчает жизнь при работе с устройствами, не требуя их «снимать с дежурства» и подцеплять к компьютеру.
Оперативки жрёт килобайт 20, это многовато, так что нужно быть осторожнее. Например, я запускаю
ide.lua
не прямо в
init.lua
автостартом, а отложенным запуском, через 15-30 секунд:
tmr.alarm(5, 15000, 0, function()
dofile("ide.lua")
end)
Это позволяет, если перемудрил и из-за нехватки памяти ESP'шка войдёт в вечную перезагрузку, успеть грохнуть файл или даже обновить
init.lua
на компьютере без перепрошивки/форматирования всего микроконтроллера.
Ещё хинт — я по MQTT при каждом обновлении параметров мониторинга заодно посылаю IP-адрес устройства. Позволяет не ломать голову, на каком IP повисла нода
local ip, nm, gw = wifi.sta.getip()
client:publish("/mhz19/ip", ip, 0, 1)
WebIDE оказалось бесценным решением для запуска ноды с
датчиком углекислого газа MH-Z19. Оно требует последовательного порта и поэтому традиционным способом, через подключение к компьютеру, отлаживать было очень сложно. А так — отладил всё «по воздуху».