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

Симулятор iDryer

Виртуальная сушилка филамента — полная копия реального устройства, только в браузере. Идеально для знакомства с системой, тестирования и разработки.

Ссылка: sim.idryer.org


Зачем нужен симулятор

Представьте, что у вас на столе стоит сушилка iDryer. Она:

  • Показывает температуру и влажность внутри камеры
  • Взвешивает катушку и отслеживает расход филамента
  • Читает RFID-метки и автоматически определяет материал
  • Сушит по выбранному пресету или вашим настройкам
  • Отправляет все данные в облако

Симулятор делает ровно то же самое — только виртуально. Можно:

  • ✅ Попробовать систему до покупки реального устройства
  • ✅ Научиться работать с порталом
  • ✅ Разрабатывать и отлаживать интеграции

Как всё работает

Точно как настоящая сушилка

Симулятор проходит тот же путь, что и реальное устройство:

  1. Первое включение — устройство не знает своего владельца
  2. PIN-код на экране — 8 цифр, действует 10 минут
  3. Привязка в портале — вводите PIN, даёте имя
  4. Готово! — устройство ваше, можно управлять

После привязки симулятор подключается к серверу через WebSocket — точно так же, как физическая сушилка подключается через WiFi.


Интерфейс симулятора

Панель Configuration

Настройки подключения:

Поле Описание
API Server URL Адрес сервера (по умолчанию http://localhost:3000, на проде — https://api.idryer.org)
Device ID Уникальный идентификатор — появится автоматически после привязки
Device Token Секретный ключ устройства — как пароль, только для машин
RFID Tag Эмуляция RFID-метки на катушке
Initial Weight Начальный вес филамента в граммах

Статусная строка

Показывает текущее состояние:

  • Mode: Normal / Claiming — обычный режим или ожидание привязки
  • Device: Connected / Not Connected — есть ли связь с сервером

Control Panel

Управление режимами работы — как кнопки на реальной сушилке:

Кнопка Что делает
IDLE Режим ожидания — вентиляторы выключены, просто мониторинг
START DRYING Запуск сушки — нагрев до заданной температуры, таймер
STORAGE Режим хранения — поддержание низкой влажности без активного нагрева

Текущие показатели

Живые данные с «датчиков»:

  • Status — текущий режим (IDLE, DRYING, STORAGE)
  • Temperature — температура в камере, °C
  • Humidity — относительная влажность, %
  • Heater Power — мощность нагревателя, 0-100%
  • Fan Status — вентиляторы ON/OFF
  • Weight — вес на весах, граммы
  • Current RFID — какая метка(катушка) сейчас в камере

Real-time Monitoring

Живой график с историей — температура, влажность, мощность нагревателя. Как в реальном устройстве с экраном.

Telemetry Log

Сырые данные для отладки — что именно симулятор отправляет на сервер.


Привязка устройства

Шаг 1: Запуск режима Claiming

Нажмите «Start Claiming» — симулятор переходит в режим ожидания владельца.

Появляется панель с PIN-кодом:

┌────────────────────────────────┐
│      PIN CODE: 12345678        │
│  Expires in: 09:45 (10 min)    │
│  Enter PIN in the web portal:  │
│  Devices → Add Device          │
└────────────────────────────────┘

Это то, что показывает экран реальной сушилки при первом включении.

Кнопки: - Copy PIN — скопировать код в буфер обмена - Refresh PIN — запросить новый код (старый аннулируется) - Cancel Claiming — отменить и вернуться в обычный режим

Шаг 2: Привязка в портале

  1. Откройте portal.idryer.org (или локальный сервер)
  2. Войдите в аккаунт
  3. Перейдите Устройства → нажмите «Добавить устройство»
  4. Введите PIN-код (8 цифр с экрана симулятора)
  5. Придумайте название: «Тестовая сушилка», «Симулятор #1» и т.п.
  6. Нажмите «Добавить»

Шаг 3: Магия происходит

В момент нажатия «Добавить» сервер:

  1. Проверяет PIN — он должен существовать и не быть просроченным
  2. Находит устройство, которое этот PIN запросило
  3. Привязывает устройство к вашему аккаунту
  4. Удаляет PIN — его больше нельзя использовать

Симулятор мгновенно узнаёт об этом:

  • Получает свой Device ID и Token
  • Автоматически переключается в Normal Mode
  • Подключается к WebSocket для обмена данными в реальном времени

Данные сохраняются

Device ID и Token записываются в localStorage браузера. При следующем открытии sim.idryer.org симулятор подключится автоматически — не нужно проходить привязку заново.

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

Про безопасность PIN-кода

  • 10 минут жизни — после этого PIN аннулируется
  • Одноразовый — использовал и забыл, повторно не сработает
  • 8 цифр — 100 миллионов комбинаций, подобрать нереально за 10 минут

Это тот же протокол безопасности, что и в реальных устройствах.


Эмуляция катушек с RFID

Одна из главных фишек iDryer — автоматическое распознавание катушек по RFID-меткам.

Выбор RFID-метки

В выпадающем списке «RFID Tag»:

Опция Что происходит
No RFID Tag Катушки нет — камера пустая
🟢 PLA Green Известная метка — катушка уже в системе, подхватится автоматически
🧪 Test New #1, #2, #3 Новые метки — создадут «непривязанную катушку»
🔴 PLA Red, ⚫ ABS Black... Разные тестовые материалы

Сценарий: новая катушка

  1. Выберите Test New #1 (или любую тестовую метку)
  2. Симулятор отправляет эту метку в телеметрии
  3. В портале на Dashboard появляется предупреждение: «Обнаружена неизвестная RFID-метка»
  4. Нажмите «Привязать RFID метку»
  5. Выберите катушку из списка (или создайте новую)
  6. Готово — теперь при установке этой катушки система её узнает!

Это точная копия реального сценария: вставили новую катушку с RFID-меткой → сушилка её не знает → привязываете через портал → всё работает.


Физика симуляции

Симулятор не просто показывает случайные числа — он имитирует реальные физические процессы:

Параметр Поведение Как в реальности
Температура +1°C каждые ~7.5 секунд при нагреве ТЭН греет камеру постепенно
Вес филамента -1 грамм каждые 15 секунд при сушке Влага испаряется, катушка легчает
Влажность Реалистичные кривые снижения Чем горячее — тем суше
Мощность нагревателя Автоматическая регулировка ПИД-контроллер поддерживает температуру

Это позволяет тестировать логику пресетов, отслеживание веса и другие функции — всё будет работать почти как на реальном устройстве.


Quick Actions

Кнопки быстрого доступа вверху интерфейса:

Кнопка Действие
Reset All Полный сброс — очистка localStorage, все данные устройства удаляются
Open Portal Открыть портал в новой вкладке
Instructions Показать/скрыть встроенную инструкцию

Консольный запуск

Для автоматизации и CI/CD есть консольная версия симулятора.

Режим Claiming

cd simulator
./start-claiming-mode.sh

С RFID-меткой и начальным весом:

./start-claiming-mode.sh 1DCBA522091080 752

Режим Normal (уже привязанное устройство)

node index.js <device-id> <token>

Device ID и Token берутся со страницы устройства в портале → раздел «Device Token (для симулятора)».


Типичные проблемы

«Invalid PIN code»

  • PIN истёк (прошло больше 10 минут)
  • PIN уже использован
  • Опечатка при вводе

Решение: нажмите Refresh PIN для генерации нового кода.

Устройство показывает Disconnected

  • Сервер недоступен — проверьте API Server URL
  • Токен невалидный — попробуйте Reset All и повторную привязку
  • Браузер заблокировал WebSocket — проверьте консоль разработчика

Телеметрия не обновляется в портале

  • Проверьте индикатор Connected в симуляторе
  • Проверьте чип Connected/Disconnected на Dashboard портала
  • Обновите страницу портала

После Reset All нужно заново привязывать

Это ожидаемое поведение — Reset All удаляет все данные устройства из браузера. Как если бы вы сбросили реальную сушилку к заводским настройкам.


Для разработчиков

Исходники

Код симулятора: simulator/ (Node.js + vanilla JS для веб-версии)

Переменные окружения

API_URL=https://api.idryer.org ./start-claiming-mode.sh

WebSocket события

Симулятор использует Socket.IO и поддерживает все события реального устройства:

  • authenticate — аутентификация по токену
  • telemetry — отправка телеметрии каждые 2-5 секунд
  • command — получение команд от портала (START_DRYING, STOP и т.д.)
  • status — обновление статуса устройства