Первый и второй экземпляры
Что должно быть готово после каждого шага?
Каждый этап заканчивается работающей проверкой. Нельзя переносить неизвестную проблему в следующий слой конструкции.
Сборка движется короткими законченными циклами. Один датчик стабильно выдаёт наблюдение. Один исполнитель реагирует и сохраняет кнопку без сети. Затем станция связывает их в правило, а приложение объясняет результат.
Второй экземпляр проверяет не только электронику, но и полноту нашей инструкции. Если для его запуска требуется помнить незаписанную правку первого стенда, проект ещё не воспроизводится. Эти скрытые зависимости нужно устранить до дальнейшего расширения.
Первый экземпляр E0 — открытый лабораторный стенд. E1 — самостоятельная станция в корпусе с теми же логическими контрактами. E2 — повторяемая сборка по документации, выполненная без памяти автора о «секретном проводке». Это не массовое производство, а последовательное снижение инженерной неопределённости.
Этап 0. Подготовка среды#
Создать репозиторий документации, каталог аппаратных ревизий и единый журнал измерений. На имеющемся ПК поднять Linux-окружение, Rust toolchain и симулятор устройств. До подключения реального реле должны работать ID команды, журнал результата и сценарий потери соединения.
Результат этапа — воспроизводимый запуск и сохранённый манифест. Если сборка работает только из незадокументированной домашней директории, переходить к изготовлению корпуса рано.
Этап 1. Один датчик#
Проверить ESP32 без периферии, затем один SHT-модуль. Снять питание, прозвонить, проверить напряжения, прочитать ID/результат и только потом добавить второй сенсор. Для VEML7700 проверить raw и настройки gain/integration, а не сразу график в приложении.
Результат — корректные наблюдения с единицами, возрастом и флагами. Сбой сенсора должен быть виден как сбой, не как нулевое значение. Фотография проводов и таблица соединений сохраняются.
Этап 2. Один исполнитель#
Сначала релейный модуль без нагрузки, затем 12-вольтовая лампа через предохранитель. Проверить кнопку и стартовый уровень. Подключить протокол, повтор команды и потерю подтверждения. Только после этого вводить автоматическое управление.
Результат — set(on/off) с известным состоянием при перезапуске и без опасного импульса. Измеритель тока добавляется как независимое расширение, чтобы можно было сравнить поведение до и после него.
Этап 3. Presence и замкнутый световой сценарий#
В E0 подключить PIR и проверить включение при темноте, состояние UNKNOWN и ручной ManualOverride до явного освобождения. По отсутствию движения автоматический OFF запрещён. Проверить, что собственная лампа не вызывает самопереключение, а следующий вход не снимает ручной запрет. Для расширения E1 добавить радар, собрать размеченные эпизоды и отдельно допустить Presence-qualified: только этот профиль может выключать свет после подтверждённого ухода.
Результат — работающий кабинет на имеющемся ПК. Интернет отключается на время проверки. Это первый полноценный экземпляр экосистемы, даже если корпус станции ещё не изготовлен.
Этап 4. Мобильное управление и подключение#
Для пользовательского управления определить Client API Core и минимальные экраны: инсталляции, добавление, комната, узел, намерение и результат, диагностика. Доверенный локальный bootstrap нужен первому стенду; BLE-onboarding и целевой KMP-клиент Android/iOS развиваются в E1. До их допуска выполнить проверки на реальных телефонах, включая отказ разрешений, прерывание и смену сети. Выбранный интерфейс E0 должен быть прямо указан в манифесте стенда.
Результат — пользователь управляет системой из обычной домашней сети и понимает состояние ошибки. Точный визуальный стиль приложения разрабатывается отдельно по правилам KMP-проекта.
Этап 5. Голос и выбор вычислителя#
Записать RU/EN-корпус и сравнить модели на ПК. Проверить намерения, отрицания и неоднозначные имена. Измерить память и задержку под одновременной нагрузкой Core. По результатам выбрать H1/H2/H3/H4.
Результат — аппаратный выбор с измерительным основанием. Отдельный хаб устанавливается открыто на столе и повторяет прежние тесты до переноса в корпус.
Этап 6. Самостоятельная станция E1 и выбранный корпус#
Для H2 собрать раму, габаритный макет и поддон; установить штатное питание, плату, кулер и вентиляторы. Сначала проверить открытый стенд, затем панели и фильтр. Антенны и микрофон должны оставаться доступными для перенастройки. При выборе готового H1 испытать его в штатном корпусе; изготовление куба в этом случае является отдельной веткой проекта.
Результат — исправная вентиляция, доступ к обслуживанию, отсутствие проблем радио и сохранение задержек. Декоративное покрытие и окончательная сетка ставятся после технической проверки, затем тест повторяется.
Этап 7. Обновление и удалённый доступ#
Проверить локальную установку подписанного пакета, отказ подписи и откат. Настроить первый WireGuard-путь и отдельный SSH. Отключить VPS и убедиться, что кабинет остаётся управляемым локально.
Результат — станция обслуживается без разборки, а владелец имеет план восстановления без внешнего сайта. Ключи и backup не хранятся только на одном устройстве.
Этап 8. Второй экземпляр E2#
Повторить сборку по ведомости и инструкции, желательно с участием другого человека. Различия в комплектующих записываются. Если требуется устное пояснение, оно переносится в схему или шаг проверки. Только такой повтор показывает, что инженерная основа действительно готова к нескольким первым экземплярам.
| Gate | Что должно быть доказано | Что нельзя переносить дальше |
|---|---|---|
| Электрика | Питание, уровни, стартовые состояния | Случайные перезапуски и горячие соединения |
| Протокол | Повторы, сроки, восстановление | Неизвестная семантика успеха |
| Физика | Свежесть, размещение, обратная связь | Ложный световой цикл и незаметный уход в UNKNOWN |
| Корпус | Температура, радио, обслуживание | Перегрев, экранирование и закрытые разъёмы |
| Эксплуатация | Обновление, backup, отзыв | Единственная копия ключей и ручные недокументированные правки |
Что является началом изготовления#
Разметка и сверление выполняются по согласованной аппаратной ревизии, а не по иллюстрации из книги. Атлас даёт исходные размеры и расчёты; комплект рабочего выпуска дополняется фактическими CAD, распиновками купленных модулей и результатами стенда.
Первый этап связывает достоверные наблюдения с малым замкнутым циклом. Обучение более сложной модели начинается после проверки этого основания.
Исследовательская ветка: от наблюдения к допуску модели#
| Шаг | Рабочий результат | Условие перехода |
|---|---|---|
| 1. Наблюдение | Каналы света, температуры, присутствия с качеством и временем | Потеря данных видна; измерение не подменяется кешем |
| 2. Объекты | Карта кабинета, связь реле с лампой, профиль ручного режима | Нет неоднозначных нагрузок и единиц |
| 3. Эталон | Конечный автомат, журнал, физическое подтверждение | Проходит обязательные сценарии отказа |
| 4. Модель | Оценка вклада света и состояния присутствия | Проверена на отложенных эпизодах |
| 5. AI в тени | Типизированные предложения и сравнение с эталоном | Измерен выигрыш без ухудшения критических ошибок |
| 6. Ограниченный допуск | Один пакет процесса с возможностью отката | Пользователь понимает пределы; защита независима |
Что зафиксировать до программирования#
Нужны схемы логических объектов, контракт наблюдения, контракт предложения, таблица ошибок, семантика времени и список инвариантов. В архиве приложены примеры JSON и проверяемая учебная схема; они не объявлены окончательной бинарной спецификацией KQIP.
Для первой модели фиксируем условия сбора, разделение эпизодов и эталон сравнения. Аппаратуру собираем по монтажным картам главы 16 и процедуре первого включения. Исследование модели не требует перепаять рабочий узел ради нового программного названия.
Что сознательно не включать в первый runtime#
Первый runtime сохраняет ограниченный набор полномочий. Обязательный видеопоток, автономный online-RL на исполнительных устройствах, универсальное выполнение shell-команд, распределённый консенсус хабов, обучаемое отключение защит и магазин произвольных плагинов в него не входят. Каждое из этих расширений требует отдельной задачи и проверки риска после базового сценария.
Не требуется и собственное ядро Linux. Собственная часть проекта — физические контракты, модель мира, управление процессами и исполнение. Разработка драйвера оправдана реальным устройством без подходящей поддержки, а не желанием назвать весь стек авторским.
Пять исследовательских гипотез#
Переносимость. Пакет света связывается со второй комнатой без изменения ядра; измеряем число ручных операций и время настройки.
Меньше ошибок. Гибридный оценщик уменьшает ложные выключения относительно согласованного эталона на независимых эпизодах; отслеживаем цену дополнительных включений.
Полезное самоизмерение. Активный запрос данных сокращает неопределённые решения при ограниченной дополнительной энергии и трафике.
Независимость от AI. Отказ worker не нарушает сроков базового цикла и не теряет ручное управление.
Понятность. Пользователь по карточке решения верно объясняет, что известно и что ещё не подтверждено. Это отдельная проверка интерфейса, не эстетическая оценка.
Первое практическое занятие#
Не покупать GPU. Запустить прилагаемую симуляцию, изучить CSV и изменить вклад лампы. Затем подготовить сборку сенсорного и релейного узла по монтажным картам главы 16, без опасной нагрузки. Первое программное действие — записать полноценное наблюдение и показать его свежесть. Первое физическое действие — безопасно включить лампу вручную и проверить, какие каналы действительно меняются.
Готовность первого экземпляра подтверждает воспроизводимый цикл наблюдения, решения, ограничения и проверки. На этой основе можно оценить пользу следующего AI-расширения.
Начинаем с измерительного и исполнительного стенда, фиксируем контракты, собираем собственные эпизоды и проверяем эталон. Новая AI-модель получает место в системе только после такого сравнения; красивое название не даёт ей права на физическое действие.
Первый маршрут с условиями остановки#
| Этап | Результат | Стоп-условие |
|---|---|---|
| 0. Контракты | Референсные трассы command/time/manual/restore | Стороны по-разному трактуют одно событие |
| 1. MCU-совместимость | Зафиксированные SDK/TLS/BLE/OTA и измеренные ресурсы | Нет безопасного rollback или кнопка блокируется |
| 2. Точный E0 | Одна BOM, низковольтная нагрузка, карта питания | Неизвестный IN/VIN, КЗ, импульс при старте |
| 3. Ограниченное управление | PIR-only, ручной режим, неизменяемые команды | Необъяснимое действие или нарушение ручного OFF |
| 4. KMP и восстановление | Два телефона, отзыв, смена сети, резервная копия | Старая станция/сессия получает прежние права |
| 5. E1 и исследование | Корпус по замерам, голос, квалифицированное присутствие | Расширение ухудшает проверенный базовый контур |
Одновременно ведётся одна рискованная аппаратная ветка и одна связанная программная проверка; новые ML-эксперименты не блокируют завершение E0. Трудоёмкость фиксируется по фактическим опытам и пересматривается после этапа 1. Из количества глав нельзя вывести достоверные сроки одного автора. Учебная ценность широкого проекта сохраняется, но условия первого успеха остаются узкими.