Комната, которая отвечает
Как выглядит один законченный цикл работы?
Koobique связывает измерения, модель физического объекта и управляемое действие. Первый проверяемый контур работает в одном кабинете.
В обычное утро человек входит в кабинет и садится за стол. Если комнате разрешено автоматическое управление и света недостаточно, система включает нужную лампу. Ручное выключение сохраняет приоритет человека. Потеряв датчик, система сообщает о нехватке данных и сохраняет предусмотренное для этого случая поведение.
В этом сценарии встречаются электрическая схема, радиосвязь, время, права доступа, человеческое намерение и физический результат. Книга разбирает эти слои по очереди и соединяет их в проверяемый рабочий цикл.
Человек входит в кабинет. При разрешённой автоматике датчик фиксирует движение, станция проверяет свежесть наблюдений и освещённость, выбирает светильник, отправляет команду релейному узлу и проверяет сообщённый результат. Физический эффект подтверждается отдельно. В голосовом расширении человек говорит «выключи подсветку»: система отличает её от основного освещения и уточняет неоднозначный объект. Локальное управление сохраняется без интернета. При недоступной станции физическая кнопка исполнительного узла продолжает работать в пределах своего питания и локального режима.
В этом примере уже есть почти вся будущая экосистема: измерение, модель помещения, имена устройств, полномочия пользователя, доставка команды, физический выход, обратная связь и отказоустойчивость. Именно эту цепочку имеет смысл довести до качества, прежде чем добавлять десятки протоколов или рисовать сложную панель управления.
Состав первого комплекта#
Станция Koobique Hub — отдельный Linux-компьютер, преимущественно подключённый к домашнему роутеру по Wi-Fi. На нём работают Rust-ядро, локальное хранилище, службы управления и, когда выбрана подходящая конфигурация, обработка голоса. Ethernet сохраняется как дополнительный интерфейс. Приложение не требует переключать телефон в отдельную сеть станции.
Sense — узел освещённости и температуры. Для первого стенда это отладочная плата ESP32-C6 и готовые сенсорные модули. Сенсоры располагаются вне горячего вычислительного корпуса. В дальнейшем температурный и оптический каналы можно разделить, если одной точкой установки не удаётся корректно измерять обе величины.
Presence — узел присутствия. Начальный вариант использует PIR, расширенный — PIR и радар. Это не устройство определения личности и не достоверный счётчик людей: система хранит оценку занятости комнаты с понятными ограничениями.
Actuator — исполнительный узел с физической кнопкой и реле. Первая нагрузка — низковольтный светильник 12 В. Измерение тока добавляется отдельным этапом. Работа с открытыми сетевыми цепями 230 В не нужна для проверки архитектуры и не входит в предлагаемый учебный стенд.
Koobique App — пользовательский клиент; целевое мобильное приложение строится на KMP для Android и iOS. Оно подключает станцию и устройства, показывает состояние, передаёт намерения и может служить голосовым пультом. Клиент обращается к API Core. KQIP описывает отдельную связь Core с узлами; общий формат данных не означает общий набор полномочий. Платформенные библиотеки выбираются после проверки на реальных телефонах.
Три понятия, которые нельзя смешивать#
| Понятие | Что оно означает | Что не следует из него |
|---|---|---|
| Автономность | Основные функции выполняются без внешних серверов | Что радио работает без роутера или питания |
| Собственный протокол | Свои сообщения, состояния, правила совместимости и восстановления | Что нужно заменить TLS собственной криптографией |
| Масштабируемость | Новые возможности добавляются без нарушения прежних контрактов | Что первой комнате нужны кластер и микросервисы |
Локальная система должна обходиться без облачной регистрации, внешнего DNS, сервера лицензий и CDN для обычного управления. Но удалённый пользователь физически зависит от существования доступного канала до дома. Протокол не может гарантировать доставку через полностью заблокированную сеть. Поэтому локальная работоспособность и доступность удалённого канала проверяются раздельно.
Что означает «готово к первому экземпляру»#
Эта книга задаёт инженерную основу, сравнение деталей, схемы соединений, расчётные примеры и программу проверок. Она не выдаёт предполагаемую совместимость за испытанную. До заказа окончательных панелей необходимо измерить реальные компоненты; до переноса релейного узла с макета на плату — проверить электрическую схему; до использования постоянного автономного управления — прогнать отказные сценарии.
В тексте используются три вида утверждений. Документированный факт сопровождается ссылкой вида [14]. Проектное решение описывает предложенную архитектуру Koobique. Расчёт или цель опирается на явно названные исходные данные и ещё требует измерения. Это позволяет менять детали, не разрушая логику системы.
Первое практическое решение#
Не покупать всю станцию сразу. Сначала запустить ту же серверную архитектуру на имеющемся ПК и собрать три низковольтных узла. Отдельный вычислитель выбирается после измерения нагрузки и голоса. Это не упрощённый «одноразовый прототип»: формат сообщений, модель устройств и проверка прав остаются теми же.
Как устроена эта книга#
Сначала мы проследим один сценарий кабинета и разберём устройство станции. Затем соберём корпус, питание, измерительные и исполнительные узлы. После этого пройдём программный путь от загрузки Linux и прошивки микроконтроллера к протоколу, данным, моделям и решениям. Приложение, голос, обновления и испытания замыкают эту цепочку.
Для последовательного изучения сохранены все 51 глава. Во время сборки удобно идти по маршруту E0 и возвращаться к монтажным картам, расчётам и проверкам. Разработчику Core/MCU и исследователю данных доступны собственные маршруты через те же полные главы. Учебные источники собраны в конце книги. Проектные размеры и настройки сверяются с приобретёнными деталями перед изготовлением.
Один первый результат — без сокращения горизонта проекта#
Профиль E0 — одна комната, один активный Core, один владелец, измерение температуры и света, PIR-only и одна низковольтная лампа. Успех означает: свет можно предсказуемо включить, ручное решение не отменяется само, отказ виден, а после перезапуска есть понятный путь восстановления. Пакеты процессов, голос, радар и AI остаются в книге, но не становятся обязательными зависимостями этого первого результата.
| Сейчас: E0 | Следом: E1 | Исследование / E2 |
|---|---|---|
| H0 на ПК, низковольтные узлы, ручной режим | Автономный Hub, измеренные OTA и восстановление | Вторая комната без изменения Core |
| Статический паспорт процесса и автомат входа | Проверенный PIR + радар; голос с телефона | Модели мира, MPC и обучение — по отдельным метрикам |
| Тесты повтора, времени, выхода и отказов | Отзыв телефона, защита ключей, KMP Android/iOS | Собственный корпус и плата по проверенным деталям |
«Зафиксировано проектом» в этой редакции означает выбранное поведение, а не проведённое испытание. Нормативные пункты E0, примеры и будущие варианты визуально разделены. Для замены компонента не требуется переписывать всю книгу, но требуется заново пройти затронутую проверку.
Физический цикл: Sense → State → Model → Decision → Act#
Sense получает наблюдение с временем, единицей и качеством. State сохраняет то, что сейчас известно об объекте, включая пропуски и неопределённость. Model описывает связи и ожидаемый эффект действия. Decision выбирает разрешённое намерение с учётом цели и ограничений. Act проверяет условия, исполняет команду и возвращает результат, который следующий Sense сопоставляет с физическим миром. В E0 некоторые шаги выполняет простой автомат; отдельная нейросеть для каждого шага не требуется.