ESP8266 в Lua соусе

Некоторые результаты работы с ESP8266 с NodeMCU прошивкой, но сначала озвучу тот факт, что с Arduino+ESP8266 не вышло ровным счётом ничего, кроме положительного опыта дебага работы железа, конструктивно имеющего один UART канал. 
Т.е. для моделей на основе ATMega328 общение с UART2WIFI модемом осуществляется через единственные UART пины: PIN2 и PIN3. При этом нельзя осуществить дебажный вывод через Serial.
Сначала пробовал использовать светодиод, мигающий по разному, в зависимости от ошибки — получил увеличение кода в полтора раза, а информативность статуса работы только на 10%. 
Но, к счастью, встретилось более корректное решение в виде SoftwareSerial библиотеки, которая позволяет сэмулировать UART на произвольные пины при некотором снижении скорости потока данных. Теперь оставалось только подключить  USB2RS232 преобразователь, чтобы сконфигурированный на него терминал начал чётко отображать дебажные данные.
Но, как уже было отмечено, дело не сдвинулось ни на шаг — прошивка автоперезагружалась едва достигнув инициализации модема.

  Это и послужило причиной отложить в сторону этот вариант подключения устройства и попробовать NodeMCU — проект прошивки, исполняющей загруженные Lua скрипты!
Необходимые инструкции взяты с geektimes. Устройство подключается через  USB2RS232 преобразователь, а его "прошивочный" пин GPIO0 замыкается на землю. В NodeMCU Flasher выставляется нужный порт и, с существующими настройками по умолчанию — жмётся FLASH кнопка.



После окончания процесса прошивочный пин освобождается и запускается ESP8266 Lua Loader, в котором также надо настроить порт и установить соединение через пункт меню Connect. При удачном соединении фоновая окраска верхней секции справа будет зелёной.



Далее, создаются необходимые скрипты (примеры их написания также широко доступны), которые довольно скоро закачиваются в чип с помощью кнопки Upload File в нижней секции справа.
При коррекции кода нужный файл выбирается в чекбоксе, удаляется с помощью remove и после этого закачивается обновлённая версия(возможно получится закачать поверх, но я не пробовал).
Иногда скрипт начнёт сыпать сообщениями об ошибках — в этом случае проще удалить все файлы сразу с помощью кнопки Format и исследовать логи через пункт меню — история сообщений может быть сохранена в текстовый файл. 

Таким образом, взяв за основу пример работы с датчиком температуры DS18B20, но используя вместо него DHT-22 (и соответствующий Lua модуль), после некоторого бодания с парой неочевидных ошибок в коде — удалось передать значение температуры и влажности через GET запрос на внешний сервер. Кстати, вот ещё способ решения подобной температурно-отсылающей задачи, попавшийся уже на момент оформления статьи.
Однако, поделка не заработала под wifi с WPK2 шифрованием. Продолжительное гугление и анализ кода выявили отсутствие подобного режима коннекта для данной прошивки.
Поэтому придётся разбираться и в остальных способах подключения, а именно — сборка полной прошивки с помощью родного SDK.