Перейти к содержанию

RTOS

В этом разделе описаны низкоуровневые API Lua RTOS: работа с периферией, интерактивной консолью, файловой системой, сетевыми службами и системными модулями.

Проект основан на Lua RTOS от Whitecat, но содержит существенные изменения API и реализации. При работе с устройством ориентируйтесь на документацию из этого раздела.

Датчики

Примеры для датчиков температуры, влажности, расстояния, положения и освещённости.

Indication

Индикация и мелодии Модуль indication управляет RGB-светодиодами, двухцветными индикаторами, зуммерами и мелодиями. Доступны классы RGBLeds, RGLeds, Leds, Buzzer и Sound.

OS module

os.version() Возвращает сведения о версии прошивки. Аргументы: нет Возвращает четыре значения: название системы, версию, время создания прошивки в формате Unix time и идентификатор …

PCA9555

Модуль PCA9555 Модуль управляет 16-битным расширителем портов ввода-вывода PCA9555 по шине I2C. Назначение PCA9555 — это микросхема расширения портов с двумя 8-битными портами …

ADC

Модуль измеряет аналоговое напряжение с помощью встроенного или внешнего аналого-цифрового преобразователя (АЦП). АЦП преобразует напряжение между VRef- и VRef+ в число. Например, …

BLE

Модуль принимает и передаёт широковещательные пакеты Bluetooth Low Energy (advertising). Сканер распознаёт Eddystone UID, URL и TLM, iBeacon и BTHome v2. Пакеты неизвестного …

BNO085

Модуль управляет девятиосевым инерциальным датчиком BNO085. Обзор BNO085 поддерживает несколько интерфейсов и режимов работы: Интерфейсы UART — режим RVC или SHTP; I2C — только …

CAN

Этот модуль содержит функции для доступа к Controller Area Network (CAN). В ESP32 доступен только один модуль CAN, который определен константой can.CAN0.

COBS

Модуль для кодирования и декодирования данных с использованием алгоритма COBS (Consistent Overhead Byte Stuffing). COBS используется для фреймирования бинарных данных при передаче …

CPU

cpu.model() Получить название процессора и номер ревизии, установленные на вашей плате. Аргументы: нет Возвращает: строку с названием процессора, установленного на вашей плате.

CRC

Этот модуль содержит функции для создания CRC контрольной суммы для строки Lua. В настоящее время поддерживаются следующие различные типы контрольных сумм CRC:

Cutils

Модуль cutils предоставляет набор утилит для работы с кэшами, логами, бинарными данными, таблицами и путями файловой системы. Модуль также доступен под именем cacheutils для …

Emmarine

Модуль для работы с RFID-метками EM4100 (125 кГц) Модуль emmarine считывает RFID-метки формата EM4100 на частоте 125 кГц. Для T5555/T5577 он также предоставляет активное чтение …

Event

События используются для обмена сообщениями между потоками: один поток сигнализирует о событии, другой обрабатывает его. Пример 1: В MP3-плеере один поток сканирует набор клавиш, в …

GPIO

Модуль pio управляет выводами GPIO по отдельности или целыми портами. Для отдельных выводов используются функции pio.pin, для портов — pio.port.

Heatshrink

Модуль сжатия данных для встраиваемых систем. Использует алгоритм LZSS и поддерживает как одноразовую, так и потоковую обработку. Heatshrink особенно полезен для:

HID Prox

Модуль для работы с RFID-метками HID Prox (125 кГц) Модуль hid считывает RFID-метки HID Prox на частоте 125 кГц. Одновременно можно использовать до трёх считывателей.

I2C

I2C (Inter-Integrated Circuit) — синхронная последовательная шина для связи микроконтроллера с датчиками, памятью и другими микросхемами. Она использует две линии с открытым …

JSON

Для работы с JSON используется библиотека lua-cjson, разработанная Mark Pulford. Официальные страницы библиотеки: Домашняя страница Документация Исходный код

Luasocket

Lua RTOS включает в себя порт известной библиотеки luasocket, разработанной Diego Nehab. Официальная документация luasocket: Домашняя страница Описание Исходный код

LVGL

Модуль для работы с графической библиотекой LVGL (Light and Versatile Graphics Library). Позволяет создавать графические интерфейсы на дисплеях, подключенных к ESP32.

M*LIB

Модуль mlib предоставляет контейнеры на основе M*LIB — библиотеки контейнеров для C, состоящей только из заголовочных файлов. Модуль включает следующие контейнеры:

MCP2515

Модуль управляет внешним CAN-контроллером MCP2515 через интерфейс SPI. MCP2515 поддерживает CAN 2.0B и позволяет подключить шину CAN к ESP32 через внешний модуль.

MessagePack

Модуль для сериализации и десериализации данных в формате MessagePack. MessagePack - это эффективный бинарный формат сериализации, похожий на JSON, но более компактный и быстрый.

MFRC522

Модуль управляет RFID/NFC-считывателем MFRC522 и работает с картами на частоте 13,56 МГц. Поддерживаемые типы карт MIFARE Classic (1K, 2K, 4K, Mini) MIFARE Plus (SL0, SL1, SL2, …

Microtar

Модуль для работы с TAR архивами. Позволяет читать и создавать tar файлы как из файловой системы, так и в памяти.

Modbus

Модуль Modbus Модуль поддерживает ведомое устройство Modbus RTU, сервер Modbus TCP, прозрачный шлюз Modbus TCP и ведущее устройство Modbus RTU. Серверы RTU и TCP используют общую …

Neopixel

Этот модуль содержит функции для работы со светодиодами, подключенными к однопроводной шине, такими как светодиод WS2812B. Каждый светодиод в шине известен как пиксель.

NVS

Этот модуль содержит функции для сохранения пар ключ-значение во флеш-памяти без необходимости использования файловой системы. Использование модуля NVS может быть полезным для …

OSC

Модуль для генерации сообщений в OSC-формате. Основан на коде TinyOSC. make(addr, format, data..) Генерация строки согласно формату osc. Аргументы: addr - путь osc format - формат …

OSDP

OSDP в Lua RTOS Модуль поддерживает обе роли OSDP: контроллер доступа Control Panel (CP) и периферийное устройство Peripheral Device (PD). В штатной прошивке ODNFC-RS485 доступны …

OTA-обновления

OTA (Over-the-Air) обновляет прошивку устройства через сеть без физического подключения к компьютеру. Перед обновлением обеспечьте стабильное питание и не отключайте устройство от …

Pack

Этот модуль содержит функции для упаковки данных в строку Lua и распаковки данных из строки Lua. Данные кодируются в виде строки с шестнадцатеричным представлением (например, …

PWM

Этот модуль описывает работу с ШИМ (PWM). Чтобы использовать этот модуль, необходимо учитывать следующее: Подключите устройство к выводу PWM, используя функцию pwm.attach, и …

Shell

Встроенная командная оболочка Lua RTOS запускает системные команды из приглашения Lua. Чтобы открыть её программно, вызовите os.shell(true), например из файла system.lua.

Sound

Этот модуль содержит функции для генерации звуковых тонов, подключая пьезо зуммер или динамик к выходному GPIO. Модуль можно использовать двумя способами:

SPI

SPI — синхронный последовательный интерфейс для связи микроконтроллера с периферийными устройствами. Lua RTOS работает ведущим и использует четыре сигнала: SCK (CLK) — тактовый …

SSH

Заметки о порте dropbear: Разрешено только одно клиентское соединение. Разрешен только пользователь root. Ключи сервера создаются при первом запуске dropbear. Передачи SCP пока не …

Stepper

Модуль stepper управляет драйверами шаговых двигателей по сигналам STEP и DIR. Он поддерживает до восьми двигателей и строит для каждого перемещения симметричный S-образный профиль …

Thread

Функции управления потоками thread.list([table, monitor, all]) Вывести список всех потоков. Аргументы: table (необязательно): если true, список потоков возвращается в виде таблицы …

Timer

tmr.delay(seconds) Ожидание указанного количества секунд, затем возвращение. Аргументы: seconds: количество секунд ожидания. Возвращает: ничего или исключение. …

TinyCBOR

Модуль для сериализации и десериализации данных в формате CBOR (Concise Binary Object Representation). CBOR - это компактный бинарный формат данных, стандартизированный в RFC 7049, …

UART

UART-устройства кодируются в байт и зависят от платформы. Модуль UART определяет числовую константу для каждого доступного UART-устройства. Например, на ESP32 UART1 определяется …

ULP

Модуль ulp управляет ULP FSM-сопроцессором ESP32. Он может выполнять измерения и обращаться к RTC_SLOW_MEM, пока основные процессоры находятся в глубоком сне. Инструкции и ячейки …

uMQTT

Простой MQTT клиент на базе протокола MQTT 3.1.1. Особенности Минималистичная реализация MQTT 3.1.1 Поддержка QoS 0 и QoS 1 SSL/TLS для защищённых соединений Last Will and …

VL53L1X

Модуль для работы с лазерным датчиком расстояния VL53L1X (Time-of-Flight). vl53l1x.init(i2c, scl, sda [, range [, freq]]) Инициализация датчика VL53L1X. Аргументы:

WebSocket Client

Модуль клиента WebSocket для подключения к удаленным WebSocket/WSS серверам. Поддерживает как незащищенные (ws://), так и защищенные (wss://) соединения. Особенности Поддержка …

Загрузка

Когда плата ESP32 включается, она выполняет следующие шаги: Сначала выполняется загрузчик esp-idf. Выполняется esp-idf start_cpu. Выполняется инициализация системы: Инициализация …

Исключения

Модули Lua могут вызывать исключения (аномальные или исключительные условия, требующие специальной обработки). В общем случае исключение нарушает нормальный ход выполнения и …

Передача файлов

Файлы можно передавать через последовательный интерфейс, веб-среду разработки или расширение для VS Code. YMODEM в терминале Для этого способа нужен терминал с поддержкой YMODEM.

Сервоприводы

Сервоприводы подключаются через стандартное трёхпроводное соединение: питание — обычно красный провод, подключённый к подходящему источнику питания; земля — обычно чёрный или …

Сеть

Настройка и включение сети Настройте интерфейс. -- Настройка Wi-Fi net.wf.setup(...) Запустите интерфейс. -- Запуск Wi-Fi net.wf.start() Взаимодействуйте с сетью, например, …

Файловая система

Поддерживаемые файловые системы ROMFS ROMFS содержит файлы, поставляемые вместе с прошивкой. Она доступна только для чтения и подходит для библиотек, примеров и других ресурсов, …