ESP32 · ESP8266 · C++
RisalDash поднимает адаптивный веб-дашборд в фирменном стиле: виджеты на одном экране, real-time по WebSocket, offline-first первое включение и управление через AI. Ноль фронтенд-кода.
RisalUI dash("Greenhouse");
dash.gauge("Voltage", &volts, 0, 14, "V");
dash.chart("Temp", &temp, "°C").history(30);
dash.toggle("Pump", &pump, setPump);
dash.beginAP("Greenhouse", "12345678"); Линковщик вырезает неиспользуемые типы виджетов — 0 байт. Используемый тип добавляет ~1.3–3.4 КБ (CSS + JS + код).
AP + captive portal + Wi-Fi provisioning. Системный шрифт, ноль внешних запросов — работает без интернета.
Пуш только изменившихся значений. Виджеты на одном экране, живые, без перезагрузки.
30+ контролов: metric, gauge, chart, toggle, slider, table, log, d-pad, joystick, map… + пресеты под 73 сенсора.
EN / RU / AR из коробки. При компиляции — только нужные языки. Полная RTL-раскладка.
Каждый виджет — MCP-инструмент. Claude/Cursor читают датчики и щёлкают реле голосом.
Живое демо
Тот самый интерфейс v0.2, что отдаёт ESP — вживую. Свайп вверх — смена страниц; шестерёнка — тема, язык, акцент.
Управление ИИ · MCP
Вызови enableMCP() — и каждый виджет становится инструментом Model Context Protocol: Claude читает датчики и щёлкает реле, голосом или в чате. Дашборд для человека и интерфейс для агента из тех же строк C++.
// on the device — one line:
dash.enableMCP("risal_token");
// connect an agent — point the bridge at it:
RISAL_ESP_URL=http://192.168.1.42 \
RISAL_MCP_TOKEN=risal_token \
npx risal-dash-mcp Library Manager → "RisalDash"
lib_deps =
RisalDash
ESP Async WebServer
AsyncTCP