Питание и первые шаги
- Подайте питание 5 В через USB.
- При первом включении устройство создаёт Wi-Fi-точку вида
luaterm-[серийный номер]. - Пароль сети — последние 8 цифр серийного номера.
- Подключитесь к этой сети и откройте
http://192.168.4.1. - В настройках можно перевести устройство в режим подключения к существующей
Wi-Fi сети.
Назначение выводов

| Группа | Назначение |
|---|
| Out1, Out2, Out3 | гальванически изолированные транзисторные выходы, до 35 В 50 мА |
| In1, In2, In3 | логические входы 0…3,3 В |
| IO1, IO2, IO3 | входы с подтяжкой 4,7 кОм к +3,3 В для датчиков, кнопок, UART и других сценариев |
| USB | питание, мониторинг хоста, программирование и консоль |
Wi-Fi-антенна компактная. Если контроллер ставится внутрь металлического корпуса,
проверьте устойчивость связи на месте установки.
Исполнения
| Артикул | Название | Память ПЗУ/ОЗУ |
|---|
LTM-N4 | LuaTerm Mini | 4 / 0,2 МБ |
LTM-N16R2 | LuaTerm Mini Pro | 16 / 2 МБ |
Расшифровка обозначений памяти и полный список артикулов
приведены в общей таблице.
Pro-версия подходит для более сложных алгоритмов, BLE, SSH и отправки почты.
Веб-интерфейс нужен для штатной настройки, просмотра состояния и редактирования
пользовательской программы. Если браузер блокирует незащищённый WebSocket или
смешанный HTTP/HTTPS-контент, откройте интерфейс устройства по HTTP в доверенной
локальной сети либо подключитесь через USB-консоль. Не ослабляйте глобальные
настройки безопасности браузера.
Основной экран
Показывает состояние устройства и сообщения из пользовательского кода. Это
удобно для сервисного запуска: видно, что скрипт стартовал, сеть поднялась,
датчики читаются, а выходы переключаются.
Настройки
Раздел настроек делится на две группы:
| Группа | Что настраивается |
|---|
| Параметры устройства | Wi-Fi AP/STA, язык, NTP, mDNS, Telnet, SSH в Pro, веб-пароль |
| Параметры пользовательской программы | адрес получателя, часовой пояс, режимы сторожевого таймера, журналирование |
Для разработки временно отключайте внутренний сторожевой таймер устройства,
если код может надолго занять выполнение и не успевает его сбрасывать.
Редактор кода
Редактор изменяет usercode.lua, который стартует автоматически. Для небольших
проектов этого достаточно. Если проект разрастается, используйте USB-консоль и
файловую систему устройства.
Система и обновление
Экран «Система» показывает сведения об устройстве и используется для локального
обновления прошивки. После перезагрузки подождите несколько секунд и обновите
страницу браузера, чтобы она заново установила соединение с контроллером.
Сторожевой таймер для терминала
Базовая программа повторяет логику USB WatchDog: LuaTerm ждёт признак, что
контролируемый объект жив, и при пропаже сигнала нажимает Reset или Power.
Сигналом может быть:
- строка
~U\n по USB; - успешный ping или HTTP-запрос по Wi-Fi;
- дискретный вход, например от лампы HDD или внешнего контроллера.
Если включено несколько условий, ответ считается успешным, когда выполнены все
включённые проверки.
UNITX / телеметрия
Сценарий для сбора температуры и влажности, записи отчётов и отправки данных на
сервер. Его удобно использовать как основу для MQTT, TCP/UDP, Telegram-бота или
локального HTTP API.
GPIO Extender
LuaTerm можно использовать как сетевой или USB GPIO-контроллер: читать 3 входа,
управлять 3 выходами, опрашивать датчики и отдавать состояние по HTTP или USB.
Логика сторожевого таймера
Out1 и Out2 подключаются параллельно контактам Reset/Power материнской платы.
Устройство ждёт контрольный сигнал. Если сигнал не пришёл за заданный период,
LuaTerm подаёт Reset. Если после Reset сигнал не появился, выполняется
последовательность Power: выключить, подождать и включить снова. Алгоритм можно
изменить в редакторе под конкретный терминал или сервер.
Как менять программу
- Откройте веб-интерфейс и перейдите в редактор.
- Измените
usercode.lua. - Сохраните файл и перезапустите программу или устройство.
- Смотрите сообщения на основном экране, в логах или USB-консоли.
Для экспериментов с файловой системой и отладкой используйте терминал по USB:
PuTTY, picocom, minicom, screen или pyserial-miniterm.
Что есть в Lua-среде
- GPIO, таймеры, UART и работа с датчиками;
- сетевые сокеты TCP/UDP;
- HTTP/MQTT-сценарии через библиотеки;
- файловая система и локальные логи;
- дополнительные Lua-файлы, загружаемые вместе с проектом;
- Telnet и SSH в Pro-версии.
Менеджер пакетов repo в прошивку LuaTerm Mini не входит. Загрузите проверенную
библиотеку в файловую систему устройства и подключите через require.
Первые примеры
Каждый фрагмент ниже — самостоятельный usercode.lua. На время первого запуска
отключите внутренний сторожевой таймер в настройках устройства. После проверки
включите его обратно и добавьте сброс в основной цикл рабочей программы.
1. Проверить запуск и посмотреть ресурсы
local board, subtype, brand = cpu.board()
print("usercode.lua started")
print("device:", board, subtype, brand)
while true do
print("uptime_ms:", os.uptime(2), "free_memory:", cpu.memfree())
thread.sleep(10)
end
Сначала убедитесь, что сообщение появляется в консоли, а uptime_ms растёт.
Этот пример не обращается к выводам и безопасен для проверки редактора и
автозапуска.
2. Проверять доступность узла по сети
Замените TARGET на адрес роутера, терминала или сервера в своей сети.
local TARGET = "192.168.1.1"
while true do
local status_ok, connected = pcall(net.connected)
if not status_ok then
print("network status error:", connected)
elseif connected then
local request_ok, response_ms = pcall(net.mping, TARGET)
if request_ok and response_ms > 0 then
print("host online:", TARGET, response_ms, "ms")
elseif request_ok then
print("host did not answer:", TARGET)
else
print("ping error:", response_ms)
end
else
print("network is not ready")
end
thread.sleep(5)
end
Это минимальная основа сетевого сторожевого таймера: сначала добейтесь стабильной
проверки и только затем добавляйте управление Reset или Power.
3. Отправлять состояние по UDP
Параметры хранятся в NVS через модуль settings. Глобальный объект Settings
в этом примере не используется.
local make_settings = require("settings")
local cfg = make_settings("luaterm_heartbeat", {
host = "192.168.1.10",
port = 5555,
interval = 10,
})
local options = cfg.load()
while true do
local payload = string.format(
"uptime_ms=%d free_memory=%d",
os.uptime(2),
cpu.memfree()
)
local sent, err = pcall(
net.udp.sendto,
options.host,
options.port,
payload
)
if sent then
print("sent:", payload)
else
print("UDP error:", err)
end
thread.sleep(options.interval)
end
Значения по умолчанию записываются при первом запуске. Позже меняйте их через
cfg.set("host", "192.168.1.20") и cfg.set("port", 5556) либо вызовите
cfg.restore(), чтобы снова применить значения по умолчанию из программы.
Восстановление доступа
Если устройство стало недоступно из-за неверных настроек или ошибочного кода:
- Выключите питание.
- Замкните контакты
HARD RESET на плате. - Подайте питание, удерживая контакты замкнутыми несколько секунд.
- Устройство создаст Wi-Fi сеть вида
OD-[серийный номер] без пароля. - Откройте
192.168.4.1 и исправьте настройки или код.
Дополнительные материалы
- Справочник CPU — плата, память и
служебные данные.
- Потоки и паузы.
- Сеть — состояние интерфейсов, ping,
HTTP, UDP и TCP.
settings.lua — пользовательские
параметры в NVS.- GPIO — прямое управление пинами;
перед использованием сверяйте их с назначением выводов конкретной платы.