Что можно сделать на LILYGO T-Dongle S3: 10 практических проектов

10 практических идей для LILYGO T-Dongle S3: мониторинг сервера, Home Assistant, MQTT, USB HID, 3D-принтер, сетевые инструменты и другие проекты на ESP32-S3.
LILYGO T-Dongle S3 — одна из тех плат, которые сначала хочется купить просто потому, что выглядит она необычно. По размерам и формату это практически USB-флешка с цветным экраном, но внутри находится полноценный ESP32-S3 с Wi-Fi, Bluetooth и возможностью работать как настоящее USB-устройство.
Именно формат здесь решает очень многое. Обычную ESP32 DevKit нужно куда-то положить, подключить кабелем, при необходимости добавить дисплей и подумать о корпусе. T-Dongle S3 просто вставляется в USB-порт компьютера, одноплатника, зарядного устройства или пауэрбанка.
А ещё у него уже есть маленький цветной экран, RGB-светодиод и слот для карты памяти.
Возникает вполне закономерный вопрос: а что полезного на нём вообще можно сделать?
Я собрал десять проектов, для которых формат T-Dongle S3 действительно имеет смысл.
Что находится внутри LILYGO T-Dongle S3
Основой платы служит ESP32-S3 — двухъядерный микроконтроллер Espressif с Wi-Fi 2,4 ГГц и Bluetooth LE.
У актуальной базовой версии T-Dongle S3 производитель указывает:
- ESP32-S3;
- 16 МБ Flash;
- 512 КБ SRAM;
- Wi-Fi 802.11 b/g/n;
- Bluetooth 5 LE;
- цветной дисплей ST7735 диагональю 0,96";
- разрешение 160×80;
- RGB-светодиод APA102;
- слот TF/microSD;
- кнопку BOOT;
- разъём QWIIC;
- USB Type-A.
Отдельно стоит обратить внимание на память. У базовой актуальной версии T-Dongle S3 нет PSRAM. В интернете можно встретить характеристики старых или других вариантов платы с упоминанием PSRAM, поэтому при покупке и поиске примеров всегда смотрите на конкретную ревизию.
Самая интересная возможность ESP32-S3 здесь — нативный USB. Микроконтроллер способен представляться компьютеру не только последовательным портом, но и HID-устройством, MIDI, USB Mass Storage и другими типами USB-устройств.
Добавляем к этому экран, Wi-Fi и microSD — и получается довольно универсальная маленькая штука.
1. USB-индикатор состояния домашнего сервера
Начнём с проекта, который мне кажется практически идеальным для T-Dongle S3.
Представим Raspberry Pi, Orange Pi, Rock Pi или любой другой домашний Linux-сервер без монитора.
T-Dongle постоянно находится в его USB-порту и показывает:
- загрузку процессора;
- использование RAM;
- температуру CPU;
- свободное место;
- IP-адрес;
- uptime;
- сетевой трафик;
- состояние важных сервисов.
В простейшем варианте на сервере работает небольшой скрипт, который формирует JSON:
{
"cpu": 18,
"ram": 43,
"temp": 51,
"disk": 67,
"uptime": "14d"
}
ESP32 периодически получает его по HTTP через локальную сеть.
На экране можно вывести что-то вроде:
SERVER
CPU 18% 51C
RAM 43%
SSD 67%
Кнопкой переключаем страницы, а RGB-светодиод превращаем в индикатор состояния.
Например, при нормальной работе он выключен, при высокой температуре начинает светиться, а если один из контролируемых сервисов перестал отвечать — мигает.
Самое приятное, что никакого отдельного дисплея рядом с сервером уже не требуется. Вставили T-Dongle S3 в свободный USB и получили миниатюрную панель мониторинга.
Если сервер работает на Raspberry Pi, сначала можно подготовить сам одноплатник по инструкции Headless Raspberry Pi: настройка без монитора через SSH.
2. Карманный Wi-Fi монитор
Второй вариант — маленький диагностический инструмент для собственной сети.
После подключения к Wi-Fi T-Dongle S3 может определять и отображать:
- SSID;
- полученный IP;
- шлюз;
- DNS;
- RSSI;
- доступность интернета;
- доступность локального сервера;
- задержку до нескольких узлов.
Получится примерно такой экран:
HOME-WIFI
IP 192.168.1.54
RSSI -58 dBm
GW OK
Нажимаем кнопку:
SERVICES
HA OK
NAS OK
DNS OK
WEB OK
Такой прибор особенно удобен, если дома много сетевого оборудования и хочется быстро проверить, что именно сейчас доступно.
Причём подключать его к компьютеру необязательно. Обычный USB-пауэрбанк превращает T-Dongle S3 в автономное устройство.
Можно пойти дальше и сделать автоматическую проверку нескольких своих серверов по TCP или HTTP. Тогда маленькая «флешка» становится портативным монитором домашней инфраструктуры.
3. Физический информер Home Assistant
T-Dongle S3 очень хорошо вписывается в Home Assistant.
ESP32 подключается к домашнему Wi-Fi и получает нужные значения через MQTT или API Home Assistant.
На экран можно вывести:
- температуру;
- влажность;
- CO₂;
- потребление электроэнергии;
- состояние сигнализации;
- открытые окна;
- состояние отопления;
- доступность важных устройств.
Например:
HOME
23.7 C
CO2 612
POWER 380W
Нажимаем кнопку:
SECURITY
DOOR CLOSED
WINDOWS OK
ALARM OFF
А RGB-светодиод можно использовать для действительно важных событий.
Получается простой физический индикатор умного дома, которому не нужен браузер или отдельный планшет.
Если данные уже передаются через MQTT, T-Dongle вообще не обязательно напрямую связывать с Home Assistant. Достаточно подписаться на необходимые топики брокера.
О том, как устроен сам MQTT-брокер, я отдельно рассказывал в статье MQTT Broker Mosquitto: основа умного дома своими руками.
4. USB HID-пульт для компьютера
А вот здесь начинает раскрываться именно ESP32-S3.
Он имеет встроенную поддержку USB и может работать как USB HID-устройство. Для компьютера такой ESP32 способен выглядеть, например, как клавиатура или мышь.
Значит, кнопку T-Dongle можно превратить в аппаратную горячую клавишу.
Например:
- Play/Pause;
- отключение микрофона;
- запуск программы;
- блокировка компьютера;
- переключение сцены OBS;
- выполнение комбинации клавиш;
- управление презентацией.
Экран при этом показывает выбранное действие:
MEDIA
PLAY / PAUSE
или:
OBS
NEXT SCENE
Можно различать короткое, двойное и долгое нажатие.
Тогда одна физическая кнопка выполняет уже несколько команд.
Но можно пойти ещё дальше. ESP32-S3 поддерживает составные USB-устройства, поэтому один T-Dongle теоретически способен одновременно выполнять несколько USB-функций.
Это уже намного интереснее обычной кнопки на GPIO.
Важно: USB HID стоит использовать только на собственных компьютерах и устройствах, где вы понимаете, какие команды выполняет прошивка.
5. Мини-монитор Windows или Linux
Похожая идея на серверный монитор, только теперь T-Dongle постоянно живёт в USB-порту рабочего компьютера.
На ПК работает небольшой агент, собирающий системные показатели:
- CPU;
- RAM;
- GPU;
- температуру;
- загрузку видеопамяти;
- свободное место;
- сетевой трафик.
На дисплее можно сделать несколько страниц.
Первая:
PC
CPU 12%
RAM 47%
Вторая:
GPU
LOAD 63%
TEMP 61C
Третья:
NET
DOWN 82M
UP 14M
Особенно такой вариант интересен для мини-ПК или домашнего сервера, у которого вообще нет собственного дисплея.
При этом никто не заставляет обновлять данные десять раз в секунду. Для такого маленького экрана вполне достаточно обновления раз в секунду или даже реже.
6. Автономный логгер на microSD
В T-Dongle S3 есть слот TF, то есть microSD.
Поэтому устройство можно использовать как компактный регистратор данных.
Через внешний датчик или UART можно собирать:
- температуру;
- влажность;
- давление;
- концентрацию CO₂;
- напряжение;
- ток;
- данные другого микроконтроллера;
- диагностические сообщения оборудования.
На карту всё записываем обычным CSV:
timestamp,temp,humidity
12:00:00,23.4,41
12:01:00,23.5,41
12:02:00,23.5,42
Экран в это время показывает текущие значения:
LOGGER
23.5 C
41% RH
SD: REC
RGB может сигнализировать об ошибке карты памяти.
Такой логгер можно питать от обычного USB-адаптера или пауэрбанка и оставить работать автономно.
Если проект должен писать данные месяцами, имеет смысл заранее подумать о частоте записи и ресурсе карты памяти. Постоянно перезаписывать файл десятки раз в секунду совершенно необязательно.
7. Универсальный MQTT-индикатор
Этот проект хорош своей простотой.
T-Dongle подключается к MQTT-брокеру и подписывается на несколько топиков:
home/temperature
home/co2
server/cpu
server/temp
printer/status
Дальше ему совершенно неважно, кто публикует эти данные.
Это может быть:
- Home Assistant;
- Raspberry Pi;
- ESP32;
- сервер;
- система мониторинга;
- 3D-принтер;
- другой микроконтроллер.
Например, сервер публикует:
server/status = online
server/cpu = 23
server/temp = 48
T-Dongle показывает:
SERVER OK
CPU 23%
TEMP 48C
Если новые данные перестали приходить в течение определённого времени:
SERVER
NO DATA
и одновременно включается RGB-индикатор.
Плюс MQTT-подхода в том, что прошивку самого дисплея можно сделать практически универсальной.
Сегодня он показывает сервер, завтра температуру в гараже, а через неделю состояние 3D-принтера.
8. Мини-информер погоды
Более простой, но вполне законченный проект.
ESP32 подключается к Wi-Fi, получает прогноз из погодного API и выводит:
- текущую температуру;
- ощущаемую температуру;
- давление;
- влажность;
- осадки;
- время.
Например:
WEATHER
+12 C
RAIN
18:42
Для экрана 160×80 этого более чем достаточно.
Главное — не пытаться нарисовать интерфейс смартфона на дисплее размером с ноготь. Крупные цифры, короткие подписи и простые пиктограммы здесь выглядят намного лучше.
Время можно синхронизировать через NTP, и тогда одновременно получится маленький сетевой USB-часы.
Если добавить несколько страниц, кнопкой можно переключать текущую погоду, прогноз и время.
9. Монитор 3D-принтера
Ещё одно применение, которое отлично подходит маленькому экрану.
Если 3D-принтер работает через Klipper/Moonraker, OctoPrint или другой API, ESP32 может получать его состояние по локальной сети.
Например:
- состояние печати;
- температуру сопла;
- температуру стола;
- процент выполнения;
- оставшееся время;
- имя текущего файла.
На экране:
QIDI
PRINTING
67%
01:24 LEFT
Следующая страница:
NOZZLE 245C
BED 80C
И здесь снова проявляется преимущество Wi-Fi: электрически связывать T-Dongle с принтером вообще не обязательно.
Он может получать всё по сети.
USB нужен только для питания.
Если печать закончилась, экран показывает DONE, а RGB начинает мигать.
10. Универсальный USB-информер
Наконец, зачем выбирать только один проект?
На мой взгляд, самое интересное применение T-Dongle S3 — объединить сразу несколько предыдущих вариантов.
После загрузки устройство показывает:
SERVER
CPU 21%
RAM 38%
TEMP 49C
Нажимаем кнопку:
HOME
23.6 C
CO2 580
POWER 412W
Ещё раз:
PRINTER
PRINTING
72%
00:58 LEFT
Ещё:
NETWORK
WAN OK
DNS OK
PING 42ms
Получается маленький информационный терминал, который постоянно находится в USB-порту.
Причём источники данных могут быть совершенно разными.
Серверную статистику забираем по HTTP.
Home Assistant — через MQTT.
Погоду — через внешний API.
3D-принтер — через Moonraker.
Всё это сводится на один экран размером 160×80.
Хватит ли экрана 160×80?
Сначала разрешение кажется смешным.
На практике проблема начинается только тогда, когда хочется впихнуть на экран слишком много информации.
Например, так делать не стоит:
Processor utilization: 18.42 percent
Memory utilization: 43.17 percent
Temperature: 51.23 degrees Celsius
Гораздо лучше:
CPU 18%
RAM 43%
TEMP 51C
Одна страница — три-четыре показателя.
Нужно больше информации — делаем следующую страницу.
Для подобного интерфейса полезны крупные цифры, простые иконки и цветовая индикация. Именно поэтому даже крошечный дисплей T-Dongle S3 вполне может оказаться полезным.
С чего начать прошивку T-Dongle S3
Самый простой путь — Arduino IDE или PlatformIO.
У LILYGO есть официальный набор примеров для платы, в котором уже реализована базовая работа с дисплеем, TF-картой, RGB и QWIIC.
Для Arduino IDE актуальная документация LILYGO рекомендует Arduino ESP32 Core 3.3.0 или новее.
В качестве платы выбирается:
ESP32S3 Dev Module
Для обычной разработки USB Mode используется:
Hardware CDC and JTAG
А если запускается пример, использующий USB-функции ESP32-S3, LILYGO отдельно указывает переключить USB Mode в:
USB-OTG (TinyUSB)
Это понадобится, например, для экспериментов с HID.
Если после экспериментов с USB прошивка перестала нормально загружаться, T-Dongle можно принудительно перевести в режим загрузчика.
Для этого:
- Отключаем устройство от USB.
- Зажимаем кнопку BOOT.
- Не отпуская BOOT, вставляем T-Dongle S3 в компьютер.
- Загружаем прошивку.
- После завершения отключаем устройство и подключаем снова уже без зажатой BOOT.
Для первой проверки платы я бы вообще не начинал со сложного проекта.
Сначала экран.
Потом Wi-Fi.
Потом получение простого JSON по HTTP.
А уже после этого можно собирать полноценный серверный информер.
Несколько нюансов T-Dongle S3
У платы есть особенности, о которых лучше знать заранее.
Нет PSRAM
У актуальной базовой версии T-Dongle S3 производитель указывает 16 МБ Flash и отсутствие PSRAM.
Для обычного интерфейса 160×80 это не проблема, но при использовании тяжёлых библиотек, больших буферов и сложной графики про ограничение памяти забывать не стоит.
Также существуют другие варианты семейства T-Dongle S3, поэтому характеристики из чужого проекта могут не совпадать с вашей платой.
QWIIC не совсем обычный
Разъём QWIIC на T-Dongle S3 по умолчанию используется как последовательный интерфейс.
Если подключать через него I2C-датчики, LILYGO указывает на необходимость внешних подтягивающих резисторов.
То есть слепо подключать любой QWIIC-модуль и ожидать, что всё сразу заработает, не стоит.
USB здесь действительно нативный
Это не просто встроенный USB-UART преобразователь.
ESP32-S3 имеет собственный USB-периферийный блок, благодаря которому микроконтроллер может работать как USB-устройство.
Espressif официально поддерживает, среди прочего:
- CDC;
- HID;
- MIDI;
- MSC;
- составные USB-устройства.
Именно поэтому T-Dongle S3 особенно интересен для USB-проектов.
Что я бы сделал первым
Из всех десяти вариантов я бы начал с монитора домашнего сервера.
Во-первых, для него почти не требуется дополнительного железа.
Во-вторых, маленький экран здесь действительно полезен.
В-третьих, проект можно постепенно развивать.
Сначала выводим:
CPU
RAM
TEMP
Потом добавляем IP.
Потом состояние Docker.
Потом проверку сайтов.
Потом MQTT.
В результате из небольшой ESP32-флешки получится полноценный индикатор всей домашней инфраструктуры.
А если хочется построить сам домашний сервер на одноплатнике, можно посмотреть Raspberry Pi как домашний сервер: что на нём можно запустить или Rock 3A: бюджетный одноплатник для домашнего сервера.
Стоит ли вообще покупать T-Dongle S3?
Если нужен просто ESP32 для подключения реле или датчика температуры — скорее нет.
Обычная ESP32 DevKit для этого проще.
Смысл T-Dongle S3 именно в его компоновке.
В одном маленьком корпусе уже находятся:
- ESP32-S3;
- USB Type-A;
- цветной дисплей;
- RGB;
- microSD;
- кнопка;
- Wi-Fi;
- Bluetooth.
Поэтому особенно хорошо плата подходит для устройств, которые должны постоянно торчать непосредственно из USB-порта.
Серверные индикаторы, сетевые мониторы, USB HID, небольшие логгеры, панели Home Assistant — здесь необычный форм-фактор уже становится преимуществом, а не просто дизайнерской фишкой.
И, пожалуй, это тот редкий случай, когда очередную ESP32-плату действительно можно купить сначала потому, что она прикольная, а применение придумать уже потом.
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
ESP32 и MQTT: Подключаем датчик к Home Assistant за вечер
ESP: как Espressif переписала правила DIY-электроники
ESPHome: прошиваем ESP32 без единой строки кода. Визуальный путь к умному устройству
Tasmota на ESP8266: Прошивка умных розеток и выключателей своими руками
LILYGO T-Display S3: настройка, распиновка и проекты
ESP32 vs ESP8266: Что выбрать для своего DIY-проекта в 2024 году