• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

FAR Manager как IDE для Lua.

semper-7

New member
Являясь давним поклонником Far и с недавних пор ESP8266 в виде модулей ESP-12E от китайских товарищей, занялся созданием комфортной для себя среды для программирования последних. Для начала подключил модули через USB-UART адаптер, прошил в ESP8266Flasher прошивкой NodeMCU, предварительно собранной на http://frightanic.com/nodemcu-custom-build/.
Теперь я захотел видеть UART сообщения интерпретатора в Far (при отключенных панелях), не запуская что-то вроде Putty, Teraterm и т.п. Не найдя ничего подходящего, сделал в MASM32 простейший мини-терминал для COM-портов lineterm.exe. Запустил lineterm COM4 115200 - вот и Lua готов исполнять команды, также пишется лог в lineterm.log.
Теперь я захотел прошить в модуль lua-скрипт. Для этого я сделал cmd-скрипт lua_wr.cmd. Запустил lua_wr.cmd init.lua - все получилось. Только как-то построчно и небыстро, но и ESPlorer также загружает.
Теперь я захотел по сети все это делать. Во первых я написал init.lua с поддержкой автозагрузки скриптов, имя которых заканчивается на "~", типа telnet~.lua. Написал на lua telnet сервер с поддержкой простейших UNIX команд: ls, cat, rm, mem, reboot, также написал простой tftp сервер.
Еще написал на MASM32 простейший TCP-терминал nettetm.exe - стандартный WINDOWS telnet клиент не так работал, как мне хотелось, nc в busybox.exe работал нормально, но я все же сделал свой.
Таким образом после прошивки закидываю три небольших файла на каждый модуль: init.lua, telnet~.lua, tftp~.lua. Далее файлы можно гонять по tftp, например, tftp -i 192.168.1.20 PUT main.lua.
Все файлы и исходники на https://github.com/semper-7/esp-12. Здесь также скрипт сетевого термометра с одним датчиком netb20~.lua
 

semper-7

New member
Дополнительно по сетевому термометру. Это простейшая конструкция из зарядки телефона, в корпус которого вставлен модуль ESP-12E и стабилизатор напряжения 3,3В 1117. DS18B20 подключен к GPIO0. В модуль записаны файлы. init.lua, telnet~.lua, tftp~.lua, netb20~.lua. Обращение к термометру по IP, TCP порт 99. Для получения температуры, например, надо набрать из WIN: netterm 192.168.1.21 99 (или из Linux: nc 192.168.1.21 99). Он выдаст: "Temperature NodeMCU is: 23.68". Значение температуры с учетом знака и точки всегда 5 символов.
 

semper-7

New member
Еще у меня модули подключаются по Wi-Fi к роутеру в режиме станции (STA). имя сети (ssid) и пароль (pwd) надо отредактировать в init.lua. В роутере желательно настроить DHCP получение всегда одного и того же IP для определенного модуля.
 

semper-7

New member
По DS18B20 В процессе работы столкнулся с тем фактом, что некоторые партии DS18B20 с паразитным питанием (по двум проводам) не работают. Это не неисправность, а конструктивная особенность, внесенная китайскими товарищами для удешевления производства (скорее всего встроенный в чип конденсатор очень малой емкости). Для подключения по паре проводов надо использовать внешний диод и конденсатор.
 
Сверху Снизу